web-dev-qa-db-ja.com

純粋なTFTP(HTTPまたはNFSなし)でSystemRescueCDをPXEブートするにはどうすればよいですか?

ベースとして、 TFTP-PXE-Boot-Server の構成から始めました。ただし、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
yankee

あなた その問題を抱えているのはあなただけではありません

リンクされたフォーラムの投稿に書かれているように、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を使用すると、起動が機能します。

1
yankee