网络启动
网络启动镜像文件很小(小于 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” 或类似的设置。