Linux

如何創建在啟動時執行單個執行檔的 PXE 啟動映像?

  • July 13, 2018

我正在建立一個計算集群,旨在將其用於一些並行計算實驗。我有一個我想在這個集群上執行的執行檔。

由於上述集群的操作限制,我只能將此執行檔部署為 PXE 引導映像。不幸的是,我能找到的唯一“現成”圖像是用於安裝特定發行版的安裝圖像。它們看起來並不特別容易修改。

有人可以提供一些關於如何創建載入 linux 核心並隨後執行執行檔的 pxelinux 映像的指示嗎?

使用 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

引用自:https://serverfault.com/questions/920849