作为基础,我开始配置TFTP-PXE 启动服务器。但是现在我也想使用 PXE 启动 SystemRescueCD(版本 2017-06-11)。
我下载了 ISO 映像,然后在 TFTP 服务器上将 ISO 安装为images/sysresccd
。按照PXE@sysresccd 手册我在菜单中添加了以下内容:
LABEL SysRescCd
MENU LABEL SysRescCd
KERNEL images/sysresccd/isolinux/rescue32
APPEND initrd=images/sysresccd/isolinux/initram.igz dodhcp netboot=tftp://MY_SERVER_IP/images/sysresccd/sysrcd.dat
菜单项显示在菜单中,当我选择它时,一开始一切看起来都很好。但在书中,当它尝试下载 sysrcd.dat 时,下载速度非常慢,当它达到 7% 时,下载就会停止,然后重新启动,并无限循环。出了什么问题?
我不想启动另一项服务(如 NFS)。
答案1
正如链接的论坛帖子中所述,有一种解决方法,即修改 initram.igz,以便它支持通过 TFTP 传输更大的文件。如何做到这一点并不十分明显,尽管关于自己内核的手册和关于如何更改 cpio 档案的问题可以帮助把事情整理好。以下是您需要做的:
# Temp dir to store the extracted initram.igz
mkdir /tmp/initram
cd /tmp/initram
# otherwise you'll get errors extracting the archive
fakeroot
# extract the initram.igz:
cat /mnt/sysresccd/isolinux/initram.igz | xz -d | cpio -id
# add the workaround parameter to init
sed -i 's/\/bin\/busybox tftp/\/bin\/busybox tftp -b 10000/' init
# create a new initram.igz
find . | cpio -H newc -o | xz --check=crc32 --x86 --lzma2 > /tmp/sysresccd-initram.igz
然后在 pxelinux.cfg/default 配置文件中使用新的 initram.igz 并启动。