1、服务器端问题
1.1 问题描述:
报错: ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
nfs服务出现问题,没有启动,服务是出于死掉的状态。
1.2 问题解决方法:
1、重新启动服务后会打印
Job for nfs-server.service canceled.
2、打开linux的系统日志:
tail -f /var/log/messages
3、再次重启NFS服务:
systemcrl restart nfs
4、果不其然再次报错:
Job for nfs-server.service canceled.
5、去日志里看看有啥有用的消息:
Nov 3 16:48:31 localhost exportfs[9503]: exportfs: No host name given with /share (rw), suggest *(rw) to avoid warning
Nov 3 16:48:31 localhost exportfs[9503]: exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/share".
好家伙,原来是export配置文件出了问题
6、去修改相关的配置文件,正确格式之一如下:
/ (rw,sync,insecure,no_subtree_check,no_root_squash)
重启服务:
sudo /etc/init.d/nfs-kernel-server restart
服务启动成功。
1.3 问题描述:
Linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy
使用NFS挂载时,会出错:
1.4 问题解决方法:
原因:
以前使用的16.04版本的ubuntu没问题,现在更换了18.04.4版本,开始报错。
从Ubuntu17.04开始,nfs默认只支持协议3和协议4,而kernel中默认支持协议2。
- 修改 NFS 配置文件:
sudo vim /etc/default/nfs-kernel-server
- 在末尾添加:
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
重启 NFS 服务:
sudo /etc/init.d/nfs-kernel-server restart
2、客户端板子问题
如果在配置文件中没有添加nfs的一些协议,就需要在boot的args中传递参数nfsvers=3或者nfsvers=4 (注:nfsvers的值与kernel版本所支持nfs协议挂钩),如下图为nfs的配置文件。
bootargs 命令:
setenv bootargs "console=ttyAMA1,115200 earlycon=pl011,0x2800d000 root=/dev/nfs nfsroot=192.168.2.227:/home/rk/linux/e2k/rootfs/rootfs,nfsvers=4,proto=tcp rw ip=192.168.2.222:192.168.2.227:192.168.1.4:255.255.252.0::eth2:off"
参考文章:
链接: https://blog.csdn.net/p1279030826/article/details/112179714
链接: https://blog.csdn.net/qq_42518593/article/details/109473316