網絡引導 - Arch Linux 中文维基

跳至內容

# 網絡引導

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Netboot，最近一次同步於 2024-4-21，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

網絡引導映像是小型 （< 1 MiB） 映像，可用於在系統啟動時即時下載最新的 Arch Linux 版本。無需更新網絡引導映像，最新版本將自動可用。網絡引導鏡像可以從 Arch Linux Netboot 頁面下載。

注意：您需要足夠的內存（可能是 1.5GiB 甚至更多）來存儲和運行實時系統，否則您可能會在啟動時遇到內核崩潰。

## BIOS引導

若要在基於 BIOS 引導的計算機上使用網絡引導，需要 `ipxe.lkrn` 或 `ipxe.pxe` 映像。

### 使用 ipxe.lkrn

`ipxe.lkrn` 映像可以像 Linux 內核一樣引導。任何 Linux 引導加載程序（如 GRUB 或 Syslinux）都可用於從硬碟驅動器、CD 或 USB 驅動器加載它。例如，Syslinux wiki 提供了在可引導介質上安裝 [1]和配置[2] Syslinux 的說明。

您可以通過以下步驟製作啟動 `ipxe.lkrn`的快閃記憶體驅動器：

- 使用 lsblk 找出您的設備路徑。讓我們假設它是 `/dev/sdc` 。
- 在設備上創建MBR分區表。
- 使用 FAT32文件系統創建主分區並將其標記為活動。
- 掛載分區，在那裡創建 `boot/syslinux` 目錄並複製 `ipxe.lkrn` 到該 `boot` 目錄。

    # mount /dev/sdc /mnt
    # mkdir -p /mnt/boot/syslinux
    # cp ipxe.lkrn /mnt/boot

- 創建 syslinux 配置

    /mnt/boot/syslinux/syslinux.cfg

    DEFAULT arch_netboot
       SAY Booting Arch over the network.
    LABEL arch_netboot
       KERNEL /boot/ipxe.lkrn

- 卸載分區

    # umount /mnt

- 安裝 Syslinux MBR 和 Syslinux 本身

    # dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdc
    # syslinux --directory /boot/syslinux/ --install /dev/sdc1

- 現在，您應該能夠使用ipxe.lkrn啟動USB盤。

或者，您也可以通過運行以下命令來嘗試使用 QEMU 的映像：

    $ qemu-system-x86_64 -enable-kvm -m 2G -kernel ipxe.lkrn

### 使用 ipxe.pxe

`ipxe.pxe` 映像是 PXE 映像。它可以從現有的 PXE 環境進行鏈式加載。這允許配置一個 DHCP 伺服器，以便從網絡引導將始終引導到 Arch Linux 網絡引導。 或者，您也可以從現有的 pxe 加載器（如 pxelinux）鏈式加載它。這是一個菜單條目示例：

    LABEL arch_netboot_chain
      COM32 pxechn.c32
      APPEND ipxe.a56af4e6a9a9.pxe

要使此示例正常工作，您必須將 pxechn.c32 複製到 pxelinux.0 所在的目錄中。

## UEFI引導

ipxe-arch.efi 鏡像可用於在 UEFI 模式下啟動 Arch Linux 網絡引導。僅支持 64 位 UEFI。可以通過 efibootmgr 將映像添加為引導選項，從引導管理器（如 systemd-boot 或 rEFInd）啟動，或直接從 UEFI shell 啟動。您也可以從 UEFI 系統上的獨立 U 盤啟動它。

### 使用 efibootmgr 安裝

首先安裝 efibootmgr包 軟體包。假設您的 EFI 系統分區（ESP） 位於 `/dev/sdd1` 並掛載在 `esp` 下，您應該按如下方式移動它 - 讓我們也給它一個更友好的名稱：

    # mkdir esp/EFI/arch_netboot
    # mv ipxe.*.efi esp/EFI/arch_netboot/arch_netboot.efi

然後，您可以按如下方式創建啟動項：

    # efibootmgr --create --disk /dev/sdd --part 1 --loader /EFI/arch_netboot/arch_netboot.efi --label "Arch Linux Netboot" --unicode

### 從U盤啟動

如果要從 USB 快閃記憶體驅動器啟動 Netboot EFI 二進制文件，請將其複製到FAT格式分區上的默認/回退啟動路徑 (`/EFI/BOOT/BOOTx64.EFI`)。然後，UEFI 系統應自動加載映像。

這篇文章的某些內容需要擴充。

原因：Add instructions for Windows, similarly to how it is done in USB flash installation medium. (在 Talk:網絡引導 中討論)

#### 在GNU/Linux裡

例如，假設 `/dev/sdX` 作為快閃記憶體驅動器，按如下方式準備 USB 快閃記憶體驅動器：

1. 如果尚未完成，請在設備上 `/dev/sdX` 創建分區表，並在設備上創建分區 (`/dev/sdXn`)。
   提示：提示：最兼容的設置是將 MBR 分區表與類型 `0c` 為「W95 FAT32 （LBA）」的單個活動（可引導）主分區一起使用[3]
2. 如果尚未完成，請將分區格式化為 FAT32：

       # mkfs.fat -F 32 /dev/sdXn

3. 掛載文件系統：

       # mount /dev/sdXn /mnt

4. 在掛載的文件系統上創建一個 `/EFI/BOOT` 目錄：

       # mkdir /mnt/EFI /mnt/EFI/BOOT

5. 複製 `pxe-arch.efi` 到 x64 UEFI 的默認引導路徑：

       # cp pxe-arch.efi /mnt/EFI/BOOT/BOOTx64.EFI

6. 卸載文件系統。

注意：您需要禁用安全啟動才能啟動。即使使用自定義密鑰對 Netboot EFI 二進制文件進行簽名，也不會對從鏡像下載的內核進行簽名。

## 故障排除

### 引導 EFI 二進制文件給出「device error」

如果引導 EFI 二進制文件導致 `Failed to execute ... device error` ，請確保在 UEFI 設置中啟用了網絡堆棧。它可能需要初始化網絡接口控制器 （NIC） 選項 ROM，因此此外還要查找「板載 LAN 引導 ROM」、「啟動 PXE OpROM 策略」或類似設置。

分類：​

- 安裝過程
- Arch 項目

隱藏分類：​

- 有藍鏈卻未移除內部連結助手模板的頁面

網絡引導
新增話題