Network boot for RPi

I’ve read that the Raspberry-Pi-Foundation has released a new firmware for the RPi 3 not only allowing boot from USB drives but also through network (TFTP boot).

The tutorial explains the necessary steps. Interesting thing is that an initial single boot with special config is needed to toggle a switch within the RPi - afterwards the board is set up for network and USB boot. Thus one could create a kind of “seeding SD card” to toggle the needed flag on any board.

Basically the procedure worked fine, RPi I’m using for my power consumption monitoring (using volkszaehler.org distro) was booting w/o any SD card inserted and started a TFTP dialog with my server. It was however unable to NFS mount the root, nfs server log indicated the requested resources was not available.

But it was ! I could easily mount the indicated directory on my laptop. It took me quite a time to figure out that the RPi is using NFSv3-style to address resources instead of the new NFSv4 syntax : if a directory /exports/rpi is to be mounted, NFSv4 allow to mount server:/rpi whereas NFSv3 requires server:/exports/rpi to be indicated !

My search for the cause of the issue also lead me to a page with adjustments to optimize the root on NFS mode - swap, NFS options…

I also found the kernel.org page on NFS mount - there are much more options that usually used on the pages describing NFS boot for RPi !