我有以下 pxelinux 配置:
DEFAULT vesamenu.c32
PROMPT 0
MENU TITLE In The Moon Network
LABEL install1404server
MENU LABEL Install Ubuntu 14.04.1 Server AMD64
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
所有提到的文件均由 tftpd 访问。
当我进行网络启动时,会出现我的菜单。当我选择(单个)项目时,出现以下错误消息:
Failed to load COM32 file ubuntu-installer/amd64/boot-screens/vesamenu.c32
加载发生在虚拟机上。
发生了什么导致此错误消息?
答案1
我刚刚遇到了这个,我必须重新下载“ubuntu-installer”目录下的所有内容。我不知道它们是否应该是二进制的,并且它们是 ascii 或相反,或者它们是否只是损坏了。一旦我将新下载的文件放入我的 tftp 目录中,pxe 启动就工作得很好。
答案2
该错误消息意味着PXELINUX
引导加载程序正在尝试 TFTP 下载文件ubuntu-installer/amd64/boot-screens/vesamenu.c32
但失败。
可能是文件权限问题,或@clickwir 建议的文件损坏问题。
如果 TFTP 服务器软件设置为记录所有请求,则检查其日志可能会有所帮助:如果 TFTP 服务器记录了错误,则可能是服务器上的文件权限问题,但如果 TFTP 下载成功,则该文件已成功下载。服务器上可能已损坏。
答案3
当 com32 模块与您使用的 PXELINUX 版本不兼容时,也会显示此错误消息。
Debian 可能还有 Ubuntu 都包含一个网络启动 tarball 作为每个网络启动版本的安装程序的一部分。如果您不使用 tarball 中提供的 PXELINUX 版本,您可能会遇到不兼容问题,正如我所发现的。
服务器发送正确的文件并且校验和全部匹配,但错误与原始问题相同。使用提供的发行版 pxelinux.0 可以解决该问题。
看:https://wiki.syslinux.org/wiki/index.php?title=Common_Problems#Modules