-
Notifications
You must be signed in to change notification settings - Fork 2
Netboot debug checklist
Carl Karsten edited this page Mar 26, 2026
·
2 revisions
Things I have done to verify all the parts are in place.
val2:~$ cat /etc/dnsmasq.d/rpi.conf
pxe-service=0,"Raspberry Pi Boot"
val2:~$ tftp 10.21.0.1
tftp> get /srv/tftp/f1b7bb5a/config.txt
tftp> get /srv/tftp/f1b7bb5a/cmdline.txt
tftp> quit
val2:~$ cat cmdline.txt
# /boot/cmdline.txt
root=/dev/nfs nfsroot=10.21.0.1:/srv/nfs/rpi/trixie/root,nfsvers=3 ro ip=dhcp rootwait consoleblank=0 netconsole=@/,@10.21.0.1/ overlayroot= console=serial0,115200
@val2:~$ cat /etc/exports
/srv/nfs/rpi/trixie/boot 10.21.0.1/24(rw,sync,no_subtree_check,no_root_squash)
/srv/nfs/rpi/trixie/root 10.21.0.1/24(rw,sync,no_subtree_check,no_root_squash)
val2:~$ mkdir -p /tmp/nfs/boot /tmp/nfs/root
val2:~$ sudo mount -t nfs -o nfsvers=3,ro 10.21.0.1:/srv/nfs/rpi/trixie/root /tmp/nfs/root
val2:~$ cat /tmp/nfs/root/etc/fstab
proc /proc proc defaults 0 0
10.21.0.1:/srv/nfs/rpi/trixie/boot /boot/firmware nfs defaults,auto,rw,nfsvers=3 0 0
10.21.0.1:/srv/nfs/rpi/trixie/root / nfs defaults,auto,rw,nfsvers=3 0 0
val2:~$ sudo mount -t nfs -o nfsvers=3,rw 10.21.0.1:/srv/nfs/rpi/trixie/boot /tmp/nfs/boot
val2:~$ touch /tmp/nfs/boot/ssh
touch: cannot touch '/tmp/nfs/boot/ssh': Permission denied
val2:~$ sudo touch /tmp/nfs/boot/ssh
val2:~$ ls -la /tmp/nfs/boot/ssh
-rw-r--r-- 1 root root 0 Mar 26 09:26 /tmp/nfs/boot/ssh
val2:~$ findmnt /tmp/nfs/boot
TARGET SOURCE FSTYPE OPTIONS
/tmp/nfs/boot 10.21.0.1:/srv/nfs/rpi/trixie/boot nfs rw,nosuid,nodev,noexec,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.21.0.1,mountvers=3,mountport=36735,mountproto=udp,local_lock=none,addr=10.21.0.1
val2:~$ ls -lad /srv/nfs/rpi/trixie/boot
drwxr-xr-x 3 root root 4096 Mar 26 08:30 /srv/nfs/rpi/trixie/boot
videoteam@val2:~$ cat /tmp/nfs/boot/user-data
# cloud-config
---
users:
- name: pi
groups: users,adm,dialout,netdev,plugdev,cdrom,input,gpio,spi,i2c,sudo
shell: /bin/bash
lock_passwd: false # Set to true to disable password login entirely
plain_text_password: raspberry
sudo: ALL=(ALL) NOPASSWD:ALL # Allow passwordless sudo for this user
# Additional Raspberry Pi OS option (not available on generic cloud-init images)
enable_ssh: true # Enables the SSH server on first boot