解决nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy.

目录

项目场景:

问题描述

原因分析:

解决方案:

 


项目场景:

arm开发板的linux根文件系统由烧录而得,从板子的mmc中读取根文件系统,但是如果在开发调试过程中,这个文件系统有修改,怎样将其保存下来,方便烧录到其他批量生产的板子上呢。将板载根文件系统导出,生成ext4格式的文件,这自然是个方法!但是此法繁杂,不实用。正点原子的开发板是这样做的,用nfs挂载虚拟机ubuntu中的根文件系统。


问题描述

我在虚拟机ubuntun搭建了nfs服务器(见博客Ubuntu 上搭建nfs服务器,方便开发板远程挂载根文件系统_汉尼拔勇闯天涯的博客-CSDN博客),在开发板的uboot内设置了bootargs(setenv bootargs 'console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.2.128:/home/wang/nfs-801/rootfs,proto=tcp rootwait rw ip=192.168.2.100:192.168.2.128:192.168.2.1:255.255.255.0::eth1:off'
),但是启动根文件系统时报错:

VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
Please append a correct "root=" boot option; here are the available partitions:


原因分析:

开发板加载完内核之后,再通过内核的nfs服务去挂载ubuntu虚拟机中的根文件系统。

若要实现上述功能,除了内核和虚拟机都支持nfs之外,还要保证两者的nfs版本一致

我的内核版本是4.14.155,它默认使用的nfs版本是协议2。而我的ubuntu虚拟机是18.04,它的nfs支持的协议是v3:

注意:在nfs挂载的过程中 ,真正被挂载的根文件系统中是否有nfs服务,这一点不影响nfs挂载,不会导致挂载失败。


解决方案:

所以在开发板的uboot中,为内核指定和虚拟机相同的nfs协议版本,便能解决这个问题

 bootargs参数由

setenv bootargs 'console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.2.128:/home/wang/nfs-801/rootfs,proto=tcp rootwait rw ip=192.168.2.100:192.168.2.128:192.168.2.1:255.255.255.0::eth1:off'

改为

setenv bootargs 'console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.2.128:/home/wang/nfs-801/rootfs,proto=tcp,nfsvers=3 rootwait rw ip=192.168.2.100:192.168.2.128:192.168.2.1:255.255.255.0::eth1:off'

其中增加,nfsvers=3

参考:【问题解决】Linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy_丨匿名用户丨的博客-CSDN博客_nfs 挂载失败

 

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉尼拔勇闯天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值