public:tech:debian-netboot
Table of Contents
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