无硬盘服务器纯网络引导需固件与服务端协同:一、BIOS/UEFI中启用Network Stack、设网卡为首选启动项、关闭Secure Boot;二、DHCP按option arch分流返回pxelinux.0(arch=00:00)或bootx64.efi(arch=00:07/09);三、TFTP根目录正确部署对应引导文件及配置。

无硬盘服务器做纯网络引导,关键不在“有没有硬盘”,而在于固件(BIOS/UEFI)能否正确加载网络启动模块,并与PXE服务器协同完成引导链路。配置本质是固件设置 + 网络服务端适配,两者缺一不可。
一、确认并启用固件层的网络启动能力
不同品牌服务器进入 BIOS/UEFI 设置方式略有差异(常见为开机按 F2、Delete 或 Esc),但核心路径一致:
- 找到 Boot 或 Startup 菜单 → 进入 Network Stack Configuration 或 UEFI Network Stack → 确保设为 Enabled
- 在 Boot Order 或 Boot Priority 中,将 UEFI: LAN(UEFI 模式)或 Network Boot / PXE Boot(BIOS 模式)拖至首位
- 若为 UEFI 服务器,还需检查 Secure Boot:纯 PXE 引导通常需 Disabled,否则可能因签名验证失败中断 bootx64.efi 加载
- 部分服务器(如 Intel M50CYP)需额外进入 Advanced → PCIe Configuration → UEFI Option ROM Control,为对应网卡启用 UEFI 网络堆栈
二、区分模式配置 DHCP/PXE 服务端
无硬盘不代表服务端可随意配置——DHCP 必须能识别客户端固件类型,并返回匹配的引导文件。核心靠 option arch 字段判断:
- BIOS 客户端发送 DHCP 请求时,
vendor-class-identifier = "PXEClient",且option arch = 00:00→ 服务端应返回pxelinux.0(放在 tftp 根目录) - UEFI x86-64 客户端,
option arch = 00:07或00:09→ 应返回uefi/bootx64.efi(路径需与 DHCP 的filename字段严格一致) - 推荐在 dhcpd.conf 中用条件判断分流:
if option arch = 00:07 { filename "uefi/bootx64.efi"; } else { filename "pxelinux.0"; }
三、确保 TFTP 与引导文件结构就绪
TFTP 是 PXE 引导阶段唯一依赖的传输协议,所有引导文件必须放对位置、权限开放、格式正确:
- BIOS 所需:
/var/lib/tftpboot/pxelinux.0(来自 syslinux 包)、/var/lib/tftpboot/pxelinux.cfg/default(菜单配置) - UEFI 所需:
/var/lib/tftpboot/uefi/bootx64.efi(GRUB2 编译版或官方 shim)、配套的grub.cfg和内核/initrd 需放在 HTTP/NFS 路径下,由 grub.cfg 中linuxefi和initrdefi指向 - 注意:
bootx64.efi必须是 UEFI 可执行格式(PE32+),普通 ELF 或 BIOS 二进制无法运行;可用file bootx64.efi验证
四、验证与排错要点
启动时观察屏幕输出比查日志更直接:
- BIOS 模式下看到
PXE-E61: Media test failure→ 网卡未获 IP 或 DHCP 未响应,优先抓包看是否收到 DHCPOFFER - UEFI 模式卡在
Loading bootx64.efi... failed→ 检查 tftp 路径、文件权限(tftp 默认不支持目录遍历)、SELinux 是否拦截(setsebool -P tftp_anon_write 1) - 成功获取 IP 但后续 HTTP 下载失败 → 确认 pxelinux.0 或 grub.cfg 中写的内核 URL 是客户端能访问的地址(不能写 127.0.0.1 或私有 DNS 名)
- 终极验证法:在客户端启动后快速按 F12(多数服务器支持临时强制网络启动),绕过 Boot Order 判断是否为配置顺序问题


















