1.出现问题
在学习linux根文件系统的时候发现无法通过nfs挂载根文件系统,具体报错如下图:
2. 原因查询
查找了大家的资料后了解到,由于ubuntu 超过18.04 nfs默认支持v3,但是uboot默认使用v2所以就造成了协议不兼容,nfs无法通信的问题。
3. 解决方案
1. 修改ubuntu nfs配置
大家可以先试试这个,解决方案在最底下,如果还是挂载不了再试试我的方法。
2. 修改uboot nfs配置
由于修改ubuntu nfs版本的方法走不通,我就去修改bootargs里面的nfs配置。
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=169.254.1.200:/home/desk/linux/nfs/rootfs,v3,proto=tcp rw ip=169.254.1.202:169.254.1.200:169.254.1.1:255.255.0.0::eth0:off'
大家可以看到,我在nfs-options里我加入了v3这个参数,声明uboot使用nfs的v3版本,直接就ok啦,成功挂载。修改ubuntu的nfs还比较麻烦,这个更简单。
挂载成功就很快乐呀