Usando o 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
Agora copie seu executável, as bibliotecas compartilhadas necessárias e outros arquivos necessários para o seu executável em image/
. Edite etc/inittab
. Você provavelmente deseja remover ::sysinit:
. Altere ::respawn:
para ser uma invocação do seu executável.
find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initrd-bionic-foo.gz
Copie initrd-bionic-foo.gz
para o seu servidor tftp. Exemplo de entrada pxelinux.cfg:
default foo
label foo
kernel boot/Ubuntu-18.04-x86_64-linux
append initrd=boot/initrd-bionic-foo.gz