网络启动找不到内核映像
我有PXE启动问题。 我在Ubuntu帮助维基上按照这些说明操作 。 但是我在客户机上遇到错误:
Could not find kernel image: vmlinuz-3.13.0-24-generic
现在,问题。 这个图片应该在pxelinux.cfg
文件夹中,对不对?
内核映像(和initrd)必须相对于根文件夹定位。 如果您按照该方法操作,那么您已配置以下参数:
- DHCP服务器配置为使用
/tftpboot/
- 引导映像是
/pxelinux.0
(相对于TFTP根目录,所以实际路径是/tftpboot/pxelinux.0
) - PXELinux(syslinux的一部分)在
/pxelinux.cfg/
目录中查找其配置。 如果找不到与客户端MAC地址或GUID匹配的文件,则它将回/tftpboot/pxelinux.cfg/default
您的案例中名为default
(/tftpboot/pxelinux.cfg/default
)的文件。 -
该文件应包含以下内容:
LABEL linux KERNEL vmlinuz INITRD initrd APPEND root=...
然后,相对于TFTP根目录查找
vmlinuz
和initrd
文件,因此请确保文件/tftpboot/vmlinuz
和/tftpboot/initrd
存在。 您可以在/boot/
找到这些文件。
我还建议不要将/tftpboot/
用作TFTP文件的根目录,而是/srv/tftpboot/
。 对于特定于站点的数据,这是一个更合适的位置。
要进行调试,请务必查看您的syslog。 我使用了dnsmasq DHCP服务器将其日志发送到syslog( /var/log/syslog
)。 ISC的DHCP服务器应该做类似的事情。
我知道这个线程比污垢更老但我想补充一点,我的问题是SELinux / Apparmour相关。 请注意,TFTP PXE启动不会说“权限被拒绝”。 相反,它会说“找不到”可能令人困惑。 确保权限正确,包括SELinux和Apparmour。