调试环境

虚拟机一个,选择VMware个人免费版,这个版本不能直接设置UEFI启动,但是可以修改虚拟机的配置文件添加配置,在虚拟机存放目录里面一个后缀是 vmx 的文件,添加下面配置,默认是没有这个选项的,直接添加到末尾就可以。虚拟机多余的磁盘声卡全部删除,然后只留下一张网卡用来启动。

firmware = "efi"

启动Arch

根据Arch官方的教程,很容易就能引导起来,tftp服务器只是用来加载内核和微码镜像,rootfs 并没有使用tftp传输,因此启动完之后,会让你选择 http/nbd/nfs 其中的一种方式加载rootfs。

另外还有一个问题,把 dnsmasq 直接绑定在物理网卡上面,DHCP 始终无法正常工作,需要创建一个网卡,然后把物理网卡桥接到刚刚创建的网卡上面,然后将 dnsmasq 的 DHCP 监听端口绑定到这个桥接网卡上。最后还需要手动给网卡配置 IP 地址,就是网关的地址192.168.100.1

# disable dns server
port=0

# enable tftp server
enable-tftp
tftp-root=/srv/tftp

interface=br0
bind-interfaces
dhcp-range=lan,192.168.100.100,192.168.100.120,255.255.255.0,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=option:tftp-server,192.168.100.1
dhcp-option=option:router, 192.168.100.1

关于选项中代码和别名的对照表可以执行命令dnsmasq --help dhcp获取到,其中 209 是config-file,210 是 path-prefix这两个是pxelinux自身的参数。