Я настраиваю вычислительный кластер с намерением использовать его для некоторых параллельных вычислительных экспериментов. У меня есть единственный исполняемый файл, который я хотел бы запустить в этом кластере.
Из-за операционных ограничений указанного кластера я могу развернуть этот исполняемый файл только как загрузочный образ PXE. К сожалению, единственные «готовые» образы, которые мне удалось найти, - это установочные, предназначенные для установки определенного дистрибутива. Их нелегко изменить.
Может кто-нибудь, возможно, подскажет, как я могу создать образ pxelinux, который загружает ядро Linux и впоследствии запускает исполняемый файл?
Используя ubuntu-18-x86_64-initrd.gz:
wget http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz
gzip -d initrd.gz
mkdir image
cd image
cpio -idmv < ../initrd
Теперь скопируйте исполняемый файл, необходимые общие библиотеки и другие файлы, необходимые для вашего исполняемого файла, в image/
. редактировать etc/inittab
. Вы, наверное, хотите удалить ::sysinit:
. + Изменить ::respawn:
быть вызовом вашего исполняемого файла.
find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initrd-bionic-foo.gz
Копировать initrd-bionic-foo.gz
на ваш tftp-сервер. Пример записи pxelinux.cfg:
default foo
label foo
kernel boot/Ubuntu-18.04-x86_64-linux
append initrd=boot/initrd-bionic-foo.gz