I'm trying to netboot some Rpi 3B+'s, I have it working if I put the nfs server on another rpi, but if I use the same configuration, just put the nfs server on a Centos machine with xfs file system, I get messages saying it failed to mount the filesystem. The machine still boots, and I eventually get a login, but it won't let me login, I'm assuming because it can't find /etc/passwd. Is there a way to specify what kind of file system should be mounted over nfs, or does that even matter?

My cmdline.txt looks like this: dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=10.130.40.62:/exports/client1,tcp,v3 ip=dhcp rootfstype=xfs rootwait elevator=deadline

I have also set to wait for network on boot in raspi-config. If I change the rootfstype in the cmdline.txt, it appears to not change anything, and the only difference for when I boot from another rpi being the nfs server is changing the ip address and the root folder to /nfs/client1. I have also installed xfsprogs in the filesystem at /exports/client1 or /nfs/client1, which are identical.

I would like to boot from an nfs on a larger server, since I plan to have many pi's booting from it and I think it might overwhelm one rpi to be the nfs for many others. Any ideas how to boot from a server with an xfs file system, other than converting it to ext4? Any help would be much appreciated!

Edit: I realized the reason it was not booting correctly was because the nfs directory had the wrong permissions, thus all the system files were not owned by root and that caused errors. I copied the files again and it seems to work now

up vote 0 down vote accepted

For my understanding it is the Network File System the RasPi boots from net. It shouldn't matter what file system NFS uses on the server. As far as it can export the directories from xfs the RasPi should see them because it sees the NFS and not XFS. It's strange that it can boot from net but complains that it cannot mount a file system. What file system it tries to boot? It cannot be the boot and root file systems from the net.

With a look at your cmdline.txt I see that you have defined rootfstype=xfs. But for my understanding from the view of the client it is not xfs, instead it is nfs. So you should simply omit this option. I have made a similar project with Netbooting multiple “workers” RPi from a “master” RPi. The cmdline.txt there for the clients look like:

root=/dev/nfs nfsroot=192.168.10.60:/nfs/worker1,vers=3 rw ip=dhcp rootwait elevator=deadline
  • I tried not having the rootfstype line, and putting the rootfstype=nfs. But neither of those made any difference. Also I cannot look to see what file system its trying to mount at boot because when it does boot, I cannot log in, since I'm assuming it doesn't have /etc/passwd. The exact error it complains about is that it can't mount the debug file system, and a few others, I'm not sure which ones. – nrichman Nov 2 at 20:23

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.