====== 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