服务器报错“PXE-E61”的意思是:网卡通过PXE协议启动时,TFTP服务器返回了“文件未找到”的响应,简单说就是客户端找到了启动服务器,但没拿到启动文件。这个错误几乎天天都在机房和运维群里出现,处理思路不复杂,但涉及网络、DHCP、TFTP配置的联动排查,下面把机制和步骤拆开讲清楚。
PXE-E61错误机制:启动过程卡在了哪一步
PXE启动有固定流程:网卡发起广播找DHCP服务器,拿到IP地址和TFTP服务器地址,然后从TFTP下载引导文件。PXE-E61属于第二阶段失败,DHCP已经给了IP,TFTP也能连通,但请求的文件在服务器上不存在或路径不对。
从错误码看,E61对应TFTP的“file not found”响应,常见触发场景有两类:一类是Legacy BIOS模式的网卡固件下载pxelinux.0失败,另一类是UEFI模式下载grubx64.efi或bootx64.efi失败,两者的处理思路一致,但文件名和目录结构不同。
排查前先确认一个事实:PXE-E61不等于网卡坏、不等于网线断,它说明链路层和IP层是通的,否则会报PXE-E51(没有收到DHCP响应)或PXE-E53(广播超时),所有排查精力应该集中在TFTP服务端的配置上,不要一上来就换网卡。
PXE-E61错误排查:从客户端到服务端的五个检查点
检查点一:确认客户端请求的文件名到底是多少
打开路由器的DHCP日志或Windows Server的DHCP审计日志,能看到客户端请求的文件名,找不到日志就在TFTP服务器上开抓包,用Wireshark过滤tftp.opcode == 1(读请求包),直接看Requested File字段,这一步能省掉大量猜谜时间。
常见的文件名对应关系表:
| 客户端固件类型 | 常见请求文件名 | 说明 |
|---|---|---|
| Legacy BIOS | pxelinux.0 |
最常见,几乎所有发行版都提供 |
| UEFI x64 | grubx64.efi / bootx64.efi |
Windows部署常用后者 |
| UEFI ARM | grubaa64.efi |
鲲鹏、飞腾等ARM服务器专用 |
| 特定网卡固件 | undionly.kpxe |
iPXE引导链的入口文件 |
请求文件名截获后,去TFTP服务器上检查这个文件是否存在,以及文件名是否被TFTP服务端的访问规则拦截。
检查点二:TFTP根目录和文件权限对不对
业内专家指出,八成以上的PXE-E61错误是TFTP根目录配错导致的,TFTP服务(比如Windows上的TFTPD64、Linux上的tftp-hpa)有一个根目录概念,所有文件路径都是相对于根目录计算的。
具体操作步骤:
- 在TFTP服务器上找到配置文件,确认根目录设置,Linux下通常是
/etc/default/tftpd-hpa里的TFTP_DIRECTORY字段。 - 用命令行测试:Linux下执行
tftp 127.0.0.1 -c get pxelinux.0,Windows下在tftp客户端输入get pxelinux.0。能秒下说明服务端正常,返回“File not found”说明根目录或文件名有问题。 - 检查根目录的读权限,TFTP服务通常以专用用户运行,比如
tftp或nobody,需要用chmod 644给启动文件设置读权限,chmod 755给目录设置进入权限。
检查点三:DHCP的Option 67是否填了绝对路径
有些部署方案在DHCP的Option 67(启动文件名)里填了带路径的写法,比如/boot/pxelinux.0。TFTP的路径语义和HTTP不同,它没有“绝对路径”概念,文件名里带斜杠会被当作根目录下的子目录,所以填pxelinux.0和填/pxelinux.0在多数TFTP实现里有微妙差异。
检查DHCP作用域选项:Windows DHCP服务器在“服务器选项”或“作用域选项”里找“067 引导文件名”,Linux的dnsmasq查找dhcp-boot字段,把值改成和TFTP根目录相对路径完全一致的写法,比如根目录下第一层就填pxelinux.0,如果文件在/efi/boot/子目录下就填efi/boot/bootx64.efi

。
检查点四:防火墙有没有放行TFTP端口
TFTP协议使用UDP 69端口(默认),但数据传输时会切换到随机高端口,所以只放行UDP 69不够。很多情况下E61是因为数据包被防火墙丢弃,而不是文件真的不存在。
操作路径:在TFTP服务器所在系统上临时关闭防火墙(Linux执行systemctl stop firewalld,Windows在高级安全防火墙里禁用“TFTP客户端”阻止规则),然后重试PXE启动,如果错误消失,说明防火墙规则需要调整,放行UDP 69口并启用FTP风格的动态端口支持。
检查点五:PKE(预启动执行环境)模式下UEFI安全启动的额外限制
现在的新服务器默认开启UEFI安全启动,就算TFTP文件和DHCP都正确,安全启动会拒绝加载未签名的引导文件,报错信息也可能表现为PXE-E61之后的黑屏或者直接跳Boot Manager。
处理办法有两种:
- 在BIOS里暂时关闭Secure Boot,测试能否正常引导。
- 使用经微软签名的引导文件,比如
shimx64.efi(适用于CentOS/RHEL系)或grubaa64.efi(ARM平台)。
PXE-E61和PXE-E51的区别:两个相近报错的对照
PXE-E51是DHCP阶段失败,PXE-E61是TFTP阶段失败,两项部署问题经常一起出现,但原因不同,处理方式也不同。
| 错误码 | 含义 | 常见原因 | 排查方向 |
|---|---|---|---|
| PXE-E51 | 没有收到DHCP响应 | DHCP服务未启动、IP地址池耗尽、VLAN隔离 | 检查DHCP服务器可用性、地址池容量 |
| PXE-E61 | TFTP返回文件未找到 | 文件名错误、TFTP根目录错误、路径过滤器 | 核对客户端请求文件名、检查TFTP目录 |
了解这个区别能帮你快速判断问题方向:看到E51先查网络和DHCP,看到E61先把注意力放到TFTP服务端。
服务器PXE启动失败原因排查:从网络到系统的完整链路

如果PXE-E61反复出现,且TFTP测试下载正常,那就需要拔高视角做全链路检查,行业共识认为,这类问题往往不是单点故障,而是配置组合错误。
排查清单:
- 网卡PXE固件版本过旧(可以在网卡固件设置里更新)
- DHCP作用域启用了DHCP中继代理,但中继服务器上的Option 67未设置
- TFTP服务器时间校正问题(极少见,但在特定安全策略下会出现)
- 交换机开启了DHCP Snooping,导致DHCP响应被丢弃
- 服务器安装的网卡驱动与PXE固件不兼容(多数情况下出现在雷电转千兆网卡或USB网卡适配器上)
- 在虚拟化环境中,虚拟机网卡类型为Intel E1000或VMXNET3时,PXE启动文件的架构要求不同
实际案例中,最常见的是一个环境里混用了多个Linux发行版的PXE文件,比如CentOS的pxelinux.0被放进了根目录,但客户端是Ubuntu系统,请求的是grubx64.efi,两者启动路径不同,就会在E61的报错中反复跳转。
Q&A
服务器pxe-e61怎么解决最快?
最快的方式是三步走:先在TFTP服务器上用命令行模拟客户端请求,确认文件本身可下载;再核对DHCP的Option 67值与文件名是否完全匹配;最后检查客户端固件类型并确保对应引导文件存在于TFTP根目录,多数情况下,问题出在文件名大小写或目录层级上。
pxe-e61错误和网卡硬件损坏有关系吗?
没有直接关系,PXE-E61表明网卡已经完成了链路层和数据链路层通信,也发送了TFTP请求,只是服务端没有返回有效文件,因此网卡物理链路是通的,如果网线断或网卡故障,PXE会在DHCP阶段报PXE-E51或直接卡在开机自检阶段。
pxe-e61报错常见于哪些服务器型号?
戴尔PowerEdge R740、R750,惠普ProLiant DL380 Gen10,联想ThinkSystem SR650等主流x86服务器都会遇到,一个特殊性在于,部分国产生态服务器(如基于鲲鹏920或飞腾S2500)的网卡固件对TFTP实现有额外的时间限制,TFTP服务器响应超时也会被报告为PXE-E61。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/853944.html


评论列表(3条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于比如的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
@kind422man:读了这篇文章,我深有感触。作者对比如的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
@kind422man:读了这篇文章,我深有感触。作者对比如的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!