网络启动
网络启动镜像文件很小(小于 1 MiB),可用于在系统启动时动态下载最新的 Arch Linux 发行版。无需更新网络启动镜像文件,最新的发行版将自动可用。可以从Arch Linux 网络启动页面下载网络启动镜像文件。
- 您需要足够的内存(可能 1.5GiB 甚至更多)来存储和运行 live 系统,否则您可能会在启动时遇到内核 panic。
- 它主要用于有线连接:Wi-Fi 支持有限,并且高度依赖固件[1]。
BIOS
要在基于 BIOS 的计算机上使用网络启动,您需要 ipxe.lkrn
或 ipxe.pxe
镜像文件。
使用 ipxe.lkrn
ipxe.lkrn
镜像文件可以像 Linux 内核一样启动。任何 Linux 引导加载程序(如 GRUB 或 Syslinux)都可用于从您的硬盘驱动器、CD 或 USB 驱动器加载它。例如,Syslinux wiki 提供了在可启动介质上安装[2]和配置[3] 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 系统上从独立的 USB 驱动器启动它。
使用 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
从 USB 闪存驱动器启动
如果您想从 USB 闪存驱动器启动网络启动 EFI 二进制文件,请将其复制到 FAT 格式化分区上的默认/备用启动路径 (/EFI/BOOT/BOOTx64.EFI
)。它不需要在驱动器上创建 EFI 系统分区,因为所有 UEFI 都很乐意从 USB 闪存驱动器启动任何 FAT 卷。最兼容的设置是使用 MBR 分区表,其中包含一个类型为 0c
“W95 FAT32 (LBA)” 的活动(可启动)主分区。[4]
然后,UEFI 系统应自动加载该镜像文件。
在 GNU/Linux 中
例如,假设 /dev/sdX
作为闪存驱动器,请按如下方式准备 USB 闪存驱动器
- 如果尚未完成,请在
/dev/sdX
上创建分区表,并在设备上创建分区 (/dev/sdXn
)。 - 如果尚未完成,请将分区格式化为 FAT32
# mkfs.fat -F 32 /dev/sdXn
- 挂载文件系统
# mount /dev/sdXn /mnt
- 在挂载的文件系统上创建
/EFI/BOOT
目录# mkdir /mnt/EFI /mnt/EFI/BOOT
- 将
pxe-arch.efi
复制到 x64 UEFI 的默认启动路径# cp pxe-arch.efi /mnt/EFI/BOOT/BOOTx64.EFI
- 卸载文件系统。
在 Windows 中
请按如下方式准备 USB 闪存驱动器
- 如果尚未完成,请对 USB 闪存驱动器进行分区并将其格式化为 FAT32。
- 导航到 USB 闪存驱动器的根目录,并在其中创建一个
EFI
文件夹,然后在EFI
文件夹内创建一个BOOT
文件夹。 - 将
pxe-arch.efi
复制到EFI\BOOT
文件夹。 - 将
pxe-arch.efi
文件重命名为BOOTx64.EFI
。 - 完成后,弹出 USB 闪存驱动器。
故障排除
启动 EFI 二进制文件时出现 “device error”
如果启动 EFI 二进制文件导致 Failed to execute ... device error
,请确保在您的 UEFI 设置中启用了网络堆栈。它可能需要初始化网络接口控制器 (NIC) 的选项 ROM,因此请额外查找诸如 “OnBoard LAN Boot ROM”、“Launch PXE OpROM Policy” 或类似的设置。