nfs的rootfs文件系统搭建
nfs服务器环境搭建
安装配置:
sudo apt-get install nfs-kernel-server
vi /etc/exports
/home/topeet/rootfs *(rw,sync,no_subtree_check,no_root_squash)
/etc/init.d/nfs-kernel-server restart
查看nfs共享路径:
showmount -e
测试是否能本地挂载:
sudo apt-get install nfs-common
mount -t nfs 192.168.0.103:/home/ubuntu19/rootfs /mnt/nfs/
内核bootargs配置
setenv bootargs console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.1.111:/home/ubuntu19/rootfs,vers=3 ip=192.168.1.231:192.168.1.111:192.168.1.1:255.255.255.0::eth0:off nfsrootdebug rootfstype=ext4 init=/linuxrc
nfsroot 配置说明可以查看内核文档:Documentation/filesystems/nfs/nfsroot.txt
NFS 挂载不上的问题
内核启动过程中遇到nfs挂载不上的问题,于是在bootargs中加上了nfsrootdebug ,可以查看挂载过程的详细信息:
[ 41.448801] NFS: nfs mount opts=‘vers=2,udp,rsize=4096,wsize=4096,nolock,addr=192.168.1.111’
[ 41.457527] NFS: parsing nfs mount option ‘vers=2’
[ 41.462594] NFS: parsing nfs mount option ‘udp’
[ 41.468093] NFS: parsing nfs mount option ‘rsize=4096’
[ 41.473433] NFS: parsing nfs mount option ‘wsize=4096’
[ 41.478810] NFS: parsing nfs mount option ‘nolock’
[ 41.483788] NFS: parsing nfs mount option ‘addr=192.168.1.111’
[ 41.489898] NFS: MNTPATH: ‘/home/ubuntu19/rootfs’
[ 41.494620] NFS: sending MNT request for 192.168.1.111:/home/ubuntu19/rootfs
[ 41.508562] NFS: MNT request succeeded
[ 41.512341] NFS: Faking up auth_flavs list
[ 41.516447] NFS: attempting to use auth flavor 1
发现内核使用的是 nfs version 2,于是查看服务器nfs版本:
rpcinfo -p | grep -iE “service|NFS”
program vers proto port service
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100003 3 udp 2049 nfs
服务器使用的是version 3 ,版本不兼容导致挂载不上,在nfsroot中增加vers=3 ,nfs挂载成功。