Premature¶
期望的长期名称
请不要链接到这个未完成的页面
使用 dnsmasq¶
dnsmasq 为小型网络提供网络基础设施:DNS、DHCP、路由器通告和网络启动。它可以配置为支持 iPXE。
dnsmasq 使用文件 /etc/dnsmasq.conf 进行配置。你可以使用 dhcp-boot 指令指示 iPXE 启动:
dhcp-boot=pxelinux.0
或
dhcp-boot=http://boot.ipxe.org/demo/boot.php
TFTP 服务器¶
要启用 TFTP 服务器,设置:
# Enable dnsmasq's built-in TFTP server
enable-tftp
# Set the root directory for files availble via FTP.
tftp-root=/var/lib/tftpboot/
PXE 链式加载¶

要使用 PXE 链式加载,你需要设置 dnsmasq 向传统 PXE 客户端分发 undionly.kpxe,然后只向 iPXE 客户端分发"真正的"启动配置。你可以通过告诉 dnsmasq 根据 DHCP 用户类使用不同的配置来做到这一点:
dhcp-boot=undionly.kpxe
dhcp-match=set:iPXE,175
dhcp-boot=tag:iPXE,http://my.web.server/real_boot_script.php
这将确保 iPXE 镜像(undionly.kpxe)只在 DHCP 请求来自传统 PXE 客户端时分发。一旦 iPXE 被加载,DHCP 服务器将引导它从 http://my.web.server/real_boot_script.php 启动。你应该把 filename "http://my.web.server/real_boot_script.php" 替换为你希望 iPXE 启动的任何内容。
iPXE 特有的选项¶
有几个 DHCP 选项是 iPXE 特有的,标准的 ISC dhcpd 安装无法识别它们。要添加对这些选项的支持,请把以下内容放在你的 /etc/dhcpd.conf 的开头:
dnsmasq 可以使用配置项 dhcp-option 进行"封装"。
Work in progress WIP FIXME text to REMOVE
ISC dhcpd 语法:
option space ipxe;
option ipxe-encap-opts code 175 = encapsulate ipxe;
option ipxe.priority code 1 = signed integer 8;
option ipxe.keep-san code 8 = unsigned integer 8;
option ipxe.skip-san-boot code 9 = unsigned integer 8;
option ipxe.syslogs code 85 = string;
option ipxe.cert code 91 = string;
option ipxe.privkey code 92 = string;
option ipxe.crosscert code 93 = string;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
option ipxe.bus-id code 177 = string;
option ipxe.san-filename code 188 = string;
option ipxe.bios-drive code 189 = unsigned integer 8;
option ipxe.username code 190 = string;
option ipxe.password code 191 = string;
option ipxe.reverse-username code 192 = string;
option ipxe.reverse-password code 193 = string;
option ipxe.version code 235 = string;
option iscsi-initiator-iqn code 203 = string;
# Feature indicators
option ipxe.pxeext code 16 = unsigned integer 8;
option ipxe.iscsi code 17 = unsigned integer 8;
option ipxe.aoe code 18 = unsigned integer 8;
option ipxe.http code 19 = unsigned integer 8;
option ipxe.https code 20 = unsigned integer 8;
option ipxe.tftp code 21 = unsigned integer 8;
option ipxe.ftp code 22 = unsigned integer 8;
option ipxe.dns code 23 = unsigned integer 8;
option ipxe.bzimage code 24 = unsigned integer 8;
option ipxe.multiboot code 25 = unsigned integer 8;
option ipxe.slam code 26 = unsigned integer 8;
option ipxe.srp code 27 = unsigned integer 8;
option ipxe.nbi code 32 = unsigned integer 8;
option ipxe.pxe code 33 = unsigned integer 8;
option ipxe.elf code 34 = unsigned integer 8;
option ipxe.comboot code 35 = unsigned integer 8;
option ipxe.efi code 36 = unsigned integer 8;
option ipxe.fcoe code 37 = unsigned integer 8;
option ipxe.vlan code 38 = unsigned integer 8;
option ipxe.menu code 39 = unsigned integer 8;
option ipxe.sdi code 40 = unsigned integer 8;
option ipxe.nfs code 41 = unsigned integer 8;
Work in progress WIP FIXME text to REMOVE
代理 DHCP¶
Work in progress WIP FIXME text to ADD
dhcp-range=proxy
加快 DHCP 速度¶
Work in progress WIP FIXME
注意这是又一次:dnsmasq 能否在选项 175 中封装更多选项?
PXE 规范要求 iPXE 在启动前等待 ProxyDHCP 服务器的回复。如果你没有使用 ProxyDHCP 服务器,这会造成几秒钟的不必要延迟。你可以使用以下命令消除这种延迟:
option ipxe.no-pxedhcp 1; FIXME
(如果你正在使用 ProxyDHCP 服务器,请不要这样做;这将导致 iPXE 忽略 ProxyDHCP 服务器发送的任何内容!)
测试特定特性¶
FIXME
注意又一个封装选项……
你可以使用特性指示选项来确定 iPXE 是否支持特定特性。例如,
if exists ipxe.fcoe {
option root-path "fcp:20:00:52:54:00:aa:b7:01:0";
}
只会向启用了 FCoE 支持的 iPXE 客户端分发 FCoE 根路径。