网络启动无法找到内核映像

网络启动无法找到内核映像

我在 PXE 启动时遇到问题。我按照这些说明在 Ubuntu 帮助 wiki 上。但我在客户端机器上收到错误:

Could not find kernel image: vmlinuz-3.13.0-24-generic

现在,问题是。这张图片应该在pxelinux.cfg文件夹中,对吗?

答案1

内核映像(和 initrd)必须位于相对于根文件夹的位置。如果您按照该操作方法操作,则您已配置以下参数:

  • DHCP 服务器配置为使用/tftpboot/
  • 启动映像是/pxelinux.0(相对于 TFTP 根目录,因此实际路径是/tftpboot/pxelinux.0
  • PXELinux(syslinux 的一部分)在目录中查找其配置/pxelinux.cfg/。如果它找不到与客户端 MAC 地址或 GUID 匹配的文件,那么它将回退到名为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/。对于特定于站点的数据来说,这是一个更合适的位置。

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

答案2

我知道这个帖子已经过时了,但我想补充一点,我的问题与 SELinux / Apparmour 有关。请注意,TFTP PXE 启动不会显示“权限被拒绝”。相反,它会显示“无法找到”,这可能会令人困惑。确保权限正确,包括 SELinux 和 Apparmour。

相关内容