PXE 启动有操作系统映像大小 1GB 的限制吗?

PXE 启动有操作系统映像大小 1GB 的限制吗?

根据我的经验,如果操作系统映像太大,PXE 启动将会失败。

我不确定哪个尺寸是限制。

参考: https://www.syslinux.org/archives/2002-March/000249.html

iPXE 是否解决了图像大小限制问题?

答案1

您链接的消息是20多年前写的,关于Linux中内存空间的“内核”部分的评论指的是32位x86 内核。如果您使用的是 64 位硬件,则这应该无关紧要,尤其是当您在 UEFI 模式而不是传统 BIOS 模式下进行 PXE 引导时。

我在工作中尝试使用 PXE 和大图像已经很多年了,但我认为这可能取决于用于加载图像的协议。我似乎记得发现某些 TFTP 实现(不记得服务器或客户端是否有故障,抱歉)在传输非常大的文件时可能会出现问题。如果这是问题所在,iPXE 可以使用 HTTP 来代替,现代 HTTP 服务器在发送大文件时肯定没有问题。

即使您不使用 HTTP,iPXE 的 TFTP 实现也可能比默认 PXE 启动固件中的实现更好。

我记得我发现使用某些固件 TFTP 实现传输大映像非常慢:切换到 iPXE 和 HTTP 使得网络启动时使用大映像很多快点。

我找到了一个列出 TFTP 限制的来源:https://www.compuphase.com/tftp.htm

RFC 1350 定义的基本 TFTP 协议具有 512 字节的默认数据包大小和 16 位数据包计数器,这将在大约 32 MB 大小时导致问题,除非正确实现计数器翻转。

RFC 2348 和 2349 中定义的扩展允许协商更大的数据包大小,最高可达最大 UDP 数据包大小限制,通常计算为每个数据包 1468 字节,导致数据包计数器翻转为 91 MB 左右。

这两个是 TFTP 协议可能导致的“预期”可能的大小限制。

相关内容