網絡引導

出自 Arch Linux 中文维基

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

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

BIOS引導[編輯 | 編輯原始碼]

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

使用 ipxe.lkrn[編輯 | 編輯原始碼]

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

您可以通過以下步驟製作啟動 ipxe.lkrn的閃存驅動器:

  • 使用 lsblk 找出您的設備路徑。讓我們假設它是 /dev/sdc
  • 在設備上創建MBR分區表。
  • 使用 FAT32英語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英語efibootmgr 將映像添加為引導選項,從引導管理器(如 systemd-bootrEFInd)啟動,或直接從 UEFI shell英語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. If not done yet, create a partition table on /dev/sdX and a partition (/dev/sdXn) on the device.
    提示:提示:最兼容的設置是將 MBR 分區表與類型 0c 為「W95 FAT32 (LBA)」的單個活動(可引導)主分區一起使用[3]
    如果尚未完成,請在設備上 /dev/sdX 創建分區表,並在設備上創建分區 (/dev/sdXn)。
  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 策略」或類似設置。