User Tools

Site Tools


public:tech:debian-netboot

Debian netboot, nfsroot

Instalace Debianu

# mkdir -p /srv/debian
# cd /srv/debian
# debootstrap trixie . https://deb.debian.org/debian

# chroot .
(chroot) # apt-get install linux-image-amd64

upravit /etc/initramfs-tools/initramfs.conf:
MODULES=netboot
FSTYPE=nfs4

(chroot) # update-initramfs -u

nezapomenout nastavit heslo abychom se pak mohli přihlásit
(chroot) # passwd

Volitelně pokud chceme mountovat read-only a mít overlay:

(chroot) # apt-get install overlayroot

upravit /etc/overlayroot.conf:
overlayroot="tmpfs"

Nastavení NFS

# apt-get install nfs-server

upravit /etc/exports:
/srv/debian 192.168.100.0/24(rw,no_root_squash,subtree_check,insecure)

(insecure = povolí připojení z portů >1024, což je potřeba pokud to testuju v qemu, klient je za NATem/VPN atd.)
(a pokud používáme overlay, můžeme zde dát ro)

# systemctl restart nfs-server.service

Bootování

Nebudeme řešit GRUB, vyrobíme rovnou EFI binárku kernelu.

# ukify build -o linux.efi --linux=boot/vmlinuz-6.12.17-amd64 --initrd=boot/initrd.img-6.12.17-amd64 --cmdline='console=ttyS0,115200n8r console=tty1 root=/dev/nfs nfsroot=192.168.100.114:/srv/debian,rw ip=dhcp ---'

Otestování v qemu

# qemu-system-x86_64 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd -enable-kvm -net user,hostfwd=tcp::10022-:22 -net nic -m 2048 -kernel linux.efi

Jak přímo v qemu požádat o DHCP a stáhnout si to přes TFTP nevím, a bohužel nastavení sítě pro tohle (bridge atd.) vypadá tak složitě, že to stejně nemůžeme pro otestování při servisním zásahu dělat.

Nastavení dnsmasq aby to bootovalo po síti

/etc/dnsmasq.conf:

enable-tftp
tftp-root=/srv/debian
dhcp-boot=linux.efi
public/tech/debian-netboot.txt · Last modified: 2025/03/16 23:42 by jenda

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki