Как я могу PXE-загрузить SystemRescueCD с чистым TFTP (без HTTP или NFS)?

766
yankee

В качестве основы я начал с настройки TFTP-PXE-Boot-Server . Но теперь я также хочу загрузить SystemRescueCD (версия 2017-06-11) с использованием PXE.

Я скачал образ 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

1 ответ на вопрос

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 

Затем используйте новый файл initram.igz в файле конфигурации pxelinux.cfg / default, и загрузка начнется.