我的 TFTP 服务器如何托管大于 2GB 的文件?

我的 TFTP 服务器如何托管大于 2GB 的文件?

我在 Ubuntu 16.04(32 位)安装中通过软件包建立了一个可用的 TFTP 服务器tftp-hpa。如果操作系统大小小于 2GB,它可以为通过网络进行 PXE 引导的操作系统提供服务。

当我尝试通过网络从较大的 ISO 启动时,启动 PXE 客户端报告:

loading big.iso failed. no such file or directory

big.iso文件确实存在,因此我尝试使用 tftp 服务器调试该问题:

me@box$ tftp 192.168.1.1
tftp> get pxelinux.cfg/default
sent RRQ <file=pxelinux.cfg/default, mode=netascii>
received DATA <block=1, 512 bytes>
sent ACK <block=1>
received DATA <block=2, 512 bytes>
sent ACK <block=2>
received DATA <block=3, 305 bytes>
Received 1329 bytes in 0.0 seconds
tftp> get big.iso
tftp: big.iso: Value too large for defined data type
tftp>

这让我想起了在使用旧程序处理超过 2GB 的文件时遇到的错误。有没有办法让它在我的 32 位系统上tftp-hpa运行?big.iso

答案1

您可以使用 获取 HPA tftp/tftpd 的源代码apt source tftpd-hpa

您是否尝试过使用 hpa tftp 客户端传输大于 2G 的文件?如果成功,则问题出在 PXE 启动代码上,您对此无能为力。

无论如何,PXE 不应该加载整个文件系统映像;它应该只加载内核和 initrd,并使用 NFS 访问文件系统映像。

相关内容