网络启动找不到内核映像

我有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根目录查找vmlinuzinitrd文件,因此请确保文件/tftpboot/vmlinuz/tftpboot/initrd存在。 您可以在/boot/找到这些文件。

我还建议不要将/tftpboot/用作TFTP文件的根目录,而是/srv/tftpboot/ 。 对于特定于站点的数据,这是一个更合适的位置。

要进行调试,请务必查看您的syslog。 我使用了dnsmasq DHCP服务器将其日志发送到syslog( /var/log/syslog )。 ISC的DHCP服务器应该做类似的事情。

我知道这个线程比污垢更老但我想补充一点,我的问题是SELinux / Apparmour相关。 请注意,TFTP PXE启动不会说“权限被拒绝”。 相反,它会说“找不到”可能令人困惑。 确保权限正确,包括SELinux和Apparmour。