PXE 启动服务器失败

PXE 启动服务器失败

我一直在遵循有关如何设置 PXE 启动服务器以进行 kickstart 自动安装的教程。我非常确定我已经正确设置了所有内容,但是当我启动第二台服务器并启动自动安装时,它失败了(详情如下)。

以下是我的配置以及尝试启动新服务器时的一些错误截图(顺便说一下,这是使用 Virtualbox 的)

/etc/dhcp/dhcpd.conf-https://pastebin.com/NjeuQvjH

/var/ftp/pub/ks.cfg-https://pastebin.com/MHCdvKrh

/tftpboot/pxelinux.cfg/默认-https://i.stack.imgur.com/XxSxL.jpg

/etc/sysconfig/网络脚本/ifcfg-enp0s3-https://pastebin.com/r3UUVumb

ifconfig 输出:

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.50  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::c4da:66e1:b02f:9ec  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:74:4c:65  txqueuelen 1000  (Ethernet)
        RX packets 2463  bytes 507124 (495.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1406  bytes 238379 (232.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1  bytes 76 (76.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 76 (76.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

屏幕截图(2 次启动尝试)-https://i.stack.imgur.com/OQYVy.jpg

顺便说一下,这是在带有 2 个 Centos7 VM 的 Virtualbox 中。

我应该补充一下,我可以访问 ftp://192.168.1.50/pub/通过我的浏览器就可以正常查看虚拟机上的所有文件。

对于 Virtualbox 和 VM 设置,我将网络启动顺序作为优先级,同时将桥接适配器选项(我使用 USB 设备)设置为两个 VM 的混杂模式都设置为“全部允许”,对于第二个 VM,我将其设置为“服务器”适配器类型,如视频所建议的那样。

编辑:看完我一直关注的视频后,我发现我忘记在 /etc/xinetd.d/tftp 中将“禁用”选项从“是”更改为“否”,但这没有任何帮助。

编辑2:

这也是 /etc/xinetd.d/tftp 的内容 -https://pastebin.com/E1Zaa0Xb

我还有一个目录设置 /tftpboot,其中包含从 /usr/share/syslinux 复制的各种文件,如教程中所述:

chain.c32  mboot.c32  memdisk  menu.c32  netboot  pxelinux.0  pxelinux.cfg

以及 /tftpboot/netboot 中的文件,这些文件是从已挂载的 Centos iso 映像复制而来的:

initrd.img  vmlinuz

xinetd、dhcpd 和 vsftpd 均处于运行状态并已启用。

/mnt/.treeinfo 的内容

[general]
name = CentOS-7
family = CentOS
timestamp = 1525379658.57
variant =
version = 7
packagedir =
arch = x86_64

[stage2]
mainimage = LiveOS/squashfs.img

[images-x86_64]
kernel = images/pxeboot/vmlinuz
initrd = images/pxeboot/initrd.img
boot.iso = images/boot.iso

[images-xen]
kernel = images/pxeboot/vmlinuz
initrd = images/pxeboot/initrd.img

答案1

第一次尝试失败,因为 PXE 固件尝试 TFTP 连接超时。TFTP 不是 FTP,而是一个完全独立的服务。192.168.1.50 的 UDP 端口 69 中的 TFTP 服务没有响应。

第二次尝试时,next-serverDHCP 服务器只提供了选项,但没有提供启动文件名。两者都是必需的。因此,iPXE 输出“无可启动”错误。

启用 后/etc/xinetd.d/tftp,您是否killall -HUP xinetd重新启动了xinetd或以任何其他方式使其重新读取其配置?您的/etc/hosts.allow和/或 是否/etc/hosts.deny包含适用于 的任何限制tftp?(例如,ALL: ALL的最后一行/etc/hosts.deny会阻止它,除非有更具体的设置允许它。)

请注意,VirtualBox 的 PXE 启动固件实际上是来自http://ipxe.org它也可以使用 HTTP。它可以接受 URL 作为启动文件名,因此如果您只使用 VirtualBox VM,则可以避免使用 TFTP。但您的目标是最终通过 PXE 启动真实硬件,那么您需要让 TFTP 正常工作。

要指定 stage2 文件的位置,请将启动选项添加到 APPEND 行/tftpboot/pxelinux.cfg/default

APPEND ... inst.stage2=http://192.168.1.50/pub

安装程序会自动为其添加后缀。它通过读取安装集的文件/LiveOS/squashfs.img来获取后缀,如果文件的 URL 选项设置正确,则后缀应该位于。.treeinfohttp://192.168.1.50/pub/.treeinfoks.cfg

我猜测操作该.treeinfo文件可能会允许将squashfs.img文件放到不同的路径,但我还没有测试过。

相关内容