我正在设置一个计算集群,目的是用它进行一些并行计算实验。我有一个可执行文件,我想在这个集群上运行它。
由于上述集群的操作限制,我只能将此可执行文件部署为 PXE 启动映像。不幸的是,我能找到的唯一“现成”映像是用于安装特定发行版的安装映像。它们似乎并不容易修改。
有人可以提供一些指点,告诉我如何创建一个可以加载 Linux 内核并随后运行可执行文件的 pxelinux 映像吗?
答案1
使用 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