How can I PXE-boot SystemRescueCD with pur TFTP (no HTTP or NFS)?

1

As a base I started with the configuration of TFTP-PXE-Boot-Server. But now I also want to boot SystemRescueCD (version 2017-06-11) with using PXE.

I downloaded the ISO image and then on the TFTP-Server mounted the ISO as images/sysresccd. Following directions found in the manual for PXE@sysresccd I added to my menu this:

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

The menu item shows up in the menu and when I select it then at first everything looks fine. But during the book, when it tries to download the sysrcd.dat, the download is very slow and when it reaches 7%, then the download stalls and then restarts and it does so in endless loops. What is wrong?

I don't want to start yet another service (like NFS).

yankee

Posted 2017-06-27T14:28:40.253

Reputation: 595

Answers

1

You are not the only one with that problem.

As written in the forum post linked, there is a workaround by modifying the initram.igz, so that is supports larger files over TFTP. It is not quite obvious how to do that, although the manual about own kernels and this question on about how to change a cpio archive can help to put things together. Here is what you need to do:

# 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

Then use the new initram.igz in the pxelinux.cfg/default config file and booting works.

yankee

Posted 2017-06-27T14:28:40.253

Reputation: 595