Example on HOST side
/etc/exports
#/home/lake *(rw,subtree_check,no_root_squash,sync,insecure)
#/home/lake/nfs-boot-x86 *(rw,subtree_check,no_root_squash,sync,insecure)
#/home/lake/nfs-boot-arm *(rw,subtree_check,no_root_squash,sync,insecure)
## nfs-boot-arm-gdbserver-glibcso
#/home/lake/nfs-boot *(rw,subtree_check,no_root_squash,sync,sync,insecure)
Example on Device side? (RHEL7/Ubuntu18 uses nfsvers=4 by default) while most old embedded systems use nfsvers=3
qemu-system-arm ?-M integratorcp -nographic -m 128M -kernel integrator_qemu_defconfig_zImage -append "console=ttyAMA0 root=/dev/nfs nfsroot=10.0.2.2:/home/lake/qemu/nfs-boot-arm-gdbserver-glibcso,nfsvers=3 rw ip=10.0.2.15::10.0.2.1:255.255.255.0 rdinit=/linuxrc" -net nic -net user
###################################################################################################
###nfsvers3/old server side VS nfsvers4/new client
>>>>>>>>>>>>>>>>
Mar 21 16:08:45 192 kernel: svc: 192.168.1.5, port=877: unknown version (4 for prog 100003, nfsd)
Mar 21 16:08:45 192 kernel: svc: 192.168.1.5, port=867: unknown version (4 for prog 100003, nfsd)
Mar 21 16:08:45 192 kernel: svc: 192.168.1.5, port=861: unknown version (4 for prog 100003, nfsd)
<<<<<<<<<<<<<<<<<<<<<<<
###################################################################################################
###Server RHEL4/5/6 etc, nfs version 3 with old kernel 2.6
[lake@192 ~]$ cat /proc/version
Linux version 2.6.18-194.el5 (mockbuild@x86-007.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Mar 16 21:52:43 EDT 2010
[lake@192 ~]$ cat /etc/exports
#/home *(rw,subtree_check,no_root_squash,sync)
/home/lake/qemu/ramdisk-loop *(rw,subtree_check,no_root_squash,async,insecure)
#### Ubuntu 17.10 /Ubuntu 18 does not support NFSv2, default it is NFSv4, rejects NFSv3
lake@lake-Latitude-5491:~$ cat /proc/version
Linux version 4.15.0-29-generic (buildd@lgw01-amd64-057) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018
lake@lake-Latitude-5491:~$ sudo mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.1.7:/home/lake/qemu/ramdisk-loop /tmp/mount
### for NFSv2 on Ubuntu17/18,
please
Add /etc/default/nfs-kernel-server
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
lake@lake-Latitude-5491:/media/lake/usb265Gext4/lake/qemu$ sudo /etc/init.d/nfs-kernel-server restart
[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
##Fedora/RHEL/Centos enable NFSv2 only
/etc/sysconfig/nfs
# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)
RPCNFSDARGS="-d -s --nfs-version 2,3"
# Number of nfs server processes to be started.
# The default is 8.
# RPCNFSDCOUNT=16
#
# Set V4 grace period in seconds
#NFSD_V4_GRACE=90
#
# Set V4 lease period in seconds
#NFSD_V4_LEASE=90
#
# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
RPCMOUNTDOPTS="-d -N 3,4"
$sudo systemctl restart rpcbind.service nfs
/etc/rc.d/init.d/netfs restart
####Server info
lake@lake-Latitude-5491:~$ mount |grep nfs
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
192.168.1.7:/home/lake/qemu/ramdisk-loop on /tmp/mount type nfs (rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.7,mountvers=3,mountport=644,mountproto=udp,local_lock=all,addr=192.168.1.7)
lake@lake-Latitude-5491:~$
avoid nfs server no response
send proto=tcp in DHCP boot/NFS root mount
[dhcp@server etc]$ cat dhcpd.lakehu.conf
### Lake Hu (lhu)'s BOX configuration
group {
# NFS
option swap-server XXXXXXXXXXXXX;
# TFTP
## Lake Desktop PC Centos7
next-server XXXXXXXXX;
host lakehu {
hardware ethernet F8:8B:37:24:XX:XX; #
option Kreatel.tftp-kernel-filename "kernel_nfs";
option root-path "/extra/nfs/rootdisk,proto=tcp"; ##### Lake Desktop PC Centos7
fixed-address XX.XX.XX.XX;
}
}
### lakehu end