我一直在遵循有关如何设置 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-server
DHCP 服务器只提供了选项,但没有提供启动文件名。两者都是必需的。因此,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 选项设置正确,则后缀应该位于。.treeinfo
http://192.168.1.50/pub/.treeinfo
ks.cfg
我猜测操作该.treeinfo
文件可能会允许将squashfs.img
文件放到不同的路径,但我还没有测试过。