Unable to mount root fs via NFS

解决nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy. 解决nfs挂载根文件系统报错的问题:VFS: Unable to mount root fs via NFS, trying floppy. 阅读详情

题目是一个非常常见的网络文件系统制作报错,下面列一下制作网络文件系统的一些关键环节。

1. 配置环境
1.1 软件环境
主机:Linux redhat7 64位
文件系统:busybox-1.31.1,使用动态编译制作完成,放在目录rootfs
1.2 硬件环境
任意arm开发板

2. 主机软件
2.1 portmap:Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接。(注意,在centos7以上或redhat7以上,portmap改名为rpcbind了)
    检查主机是否安装了rpcbind
    rpm -qa | grep rpcbind
    显示为:
    rpcbind-0.2.0-47.el7.x86_64
2.2 nfs: 启动相应RPC服务进程来服务对于NFS文件系统的请求。
    检查主机是否安装了nfs
    rpm -qa | grep nfs-utils
    显示为:
    nfs-utils-1.3.0-0.61.el7.x86_64

2.3 nfslock:一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁。

如果主机没有安装rpcbind和nfs程序,下载相应的版本安装,安装过程略。

3. 启动rpcbind和nfs一般要注意顺序,应该是rpcbind先启动,nfs后启动
3.1 启动服务:
    systemctl start rpcbind
    systemctl start nfs
3.2 设置开机自动启动:
    systemctl enable rpcbind.service
    systemctl enable nfs.service
3.3 查看版本,这是很多文件系统启动失败的原因之一
    查看版本:
    rpcinfo |grep portmap
    显示如下:
    100000    4    tcp6      ::.0.111               portmapper superuser
    100000    3    tcp6      ::.0.111               portmapper superuser
    100000    4    udp6      ::.0.111               portmapper superuser
    100000    3    udp6      ::.0.111               portmapper superuser
    100000    4    tcp       0.0.0.0.0.111          portmapper superuser
    100000    3    tcp       0.0.0.0.0.111          portmapper superuser
    100000    2    tcp       0.0.0.0.0.111          portmapper superuser
    100000    4    udp       0.0.0.0.0.111          portmapper superuser
    100000    3    udp       0.0.0.0.0.111          portmapper superuser
    100000    2    udp       0.0.0.0.0.111          portmapper superuser
    100000    4    local     /var/run/rpcbind.sock  portmapper superuser
    100000    3    local     /var/run/rpcbind.sock  portmapper superuser
    注意第2列显示版本号,也就是主机支持2,3,4版本,如果后面挂不上,排除了其
它原因后,应该考虑这里的版本号对应。

4. 配置共享文件夹
vi /etc/exports
输入以下内容:
/home/software/rootfs 192.168.1.*(rw,sync)  *(rw,sync,no_root_squash)
rootfs为我的根文件系统,已配置完善,192.168.1.*示允许192.168.1的任何机器访问。
其它配置项很多地方介绍很详细,不再赘述。

5. 配置防火墙
如果开了防火墙,是挂不上的,将3.3节查看的111端口号加入防火墙,或者关掉防火墙
systemctl stop firewalld
在本机试挂一下:
mount -t nfs 192.168.1.9:/home/software/rootfs  /mnt
查看挂载情况:
showmount -e localhost

6. 编译内核时的配置
6.1 如果配置了路由器的dhcp, 内核中设置为自动获取ip,这种方式是比较顺利的一种。
Networking support  --->  
    Networking options  --->     
        TCP/IP networking 
            [*]     IP: DHCP support                                                                                                                 
            [*]     IP: BOOTP support                                                                                                                
            [*]     IP: RARP support 
    3项都选*
6.2 网络文件选项
    File systems  ---> 
        [*] Network File Systems  ---> 
            <*>   NFS client support(如果编译内核文件大小没有超的话这下面的项都选上吧)
            [*]   Root file system on NFS 
            [*]   RPC: Enable dprintk debugging (这一项调试很重要呀,如果出错后面可以输出相关信息)

6.3 启动参数配置
root=/dev/nfs rw init=/linuxrc nfsroot=192.168.1.9:/home/software/rootfs,proto=tcp,vers=3 rootfstype=nfs console=ttySAC2,115200 init=/linuxrc ip=dhcp rootdelay=5 nfsrootdebug 
ip=dhcp 表示让路由器分配ip地址
192.168.1.9表示我的主机
proto=tcp表示nfs使用tcp传输
vers=3表示板子端的rpc客户端使用的是rpc版本3,如果排除了网卡驱动不正常,主机rpc不正常,防火墙问题之外,挂不上的问题一般出在这儿。
rootdelay=5表示延时5秒,在有些情况下,不延时好像挂不上,至于延时几秒,可以修改试试。
nfsrootdebug这项表示配合内核的rpc调试,如果挂不上可以看调试结果,开启此项后, 可以看到类似以下输出信息:
[    8.088632] Waiting 5 sec before mounting root device...
[   13.121983] Root-NFS: nfsroot=/home/software/rootfs,proto=tcp,vers=3
[   13.128728] NFS:   parsing nfs mount option 'source'
[   13.133775] NFS:   parsing nfs mount option 'vers'
[   13.138163] NFS:   parsing nfs mount option 'tcp'
[   13.143709] NFS:   parsing nfs mount option 'rsize'
[   13.148149] NFS:   parsing nfs mount option 'wsize'
[   13.153383] NFS:   parsing nfs mount option 'proto'
[   13.157864] NFS:   parsing nfs mount option 'vers'
[   13.162887] NFS:   parsing nfs mount option 'nolock'
[   13.167547] NFS:   parsing nfs mount option 'addr'
[   13.172490] NFS: MNTPATH: '/home/software/rootfs'
[   13.178035] NFS: sending MNT request for 192.168.1.9:/home/software/rootfs
[   13.266511] NFS: received 1 auth flavors
[   13.268997] NFS:   auth flavor[0]: 1
[   13.274015] NFS: MNT request succeeded
[   13.276311] NFS: attempting to use auth flavor 1
[   13.299952] VFS: Mounted root (nfs filesystem) on device 0:14.
看到这样的信息,清清楚楚,心情自然畅。
7. 启动可能出现的错误
[    4.977061] Waiting 15sec before mounting root device...
Root-NFS: nfsroot=/home/software/rootfs,tcp,vers=4
[   19.986568] Root-NFS: nfsroot=/home/software/rootfs,tcp,vers=4
NFS: nfs mount opts='vers=2,udp,rsize=4096,wsize=4096,tcp,vers=4,nolock,addr=192.168.1.9'
[   20.001732] NFS: nfs mount opts='vers=2,udp,rsize=4096,wsize=4096,tcp,vers=4,nolock,addr=192.168.1.9'
NFS:   parsing nfs mount option 'vers=2'
[   20.014557] NFS:   parsing nfs mount option 'vers=2'
NFS:   parsing nfs mount option 'udp'
[   20.022876] NFS:   parsing nfs mount option 'udp'
NFS:   parsing nfs mount option 'rsize=4096'
[   20.031542] NFS:   parsing nfs mount option 'rsize=4096'
NFS:   parsing nfs mount option 'wsize=4096'
[   20.040814] NFS:   parsing nfs mount option 'wsize=4096'
NFS:   parsing nfs mount option 'tcp'
[   20.049480] NFS:   parsing nfs mount option 'tcp'
NFS:   parsing nfs mount option 'vers=4'
[   20.057799] NFS:   parsing nfs mount option 'vers=4'
NFS:   parsing nfs mount option 'nolock'
[   20.066378] NFS:   parsing nfs mount option 'nolock'
NFS:   parsing nfs mount option 'addr=192.168.1.9'
[   20.075823] NFS:   parsing nfs mount option 'addr=192.168.1.9'
NFS4: mount program didn't pass callback address
[   20.085962] NFS4: mount program didn't pass callback address
<3>VFS: Unable to mount root fs via NFS, trying floppy.

注意,这里vers=4 不行,就改为2或者3试试,板子上的系统不支持某一版本,修改几下试试。

   

ARM开发板NFS挂载根文件系统避坑指南:解决VFS报错与协议版本不匹配问题 本文针对ARM开发板通过NFS挂载根文件系统时常见的“VFS: Unable to mount root fs”报错,提供了系统性的排查与解决方案。核心在于诊断并解决NFS协议版本不匹配问题,通过显式指定nfsvers=3等参数,确保客户端与服务器兼容。文章还涵盖了网络配置、服务器导出设置、内核参数等关键环节的避坑指南,帮助开发者高效完成嵌入式系统调试。 阅读详情

相关推荐

fs4412开发板学习笔记(四)

1.以下是nfs挂载出错信息 (问题已经解决,是由于板子硬件问题!) VFS: Unable to mount root fs via NFS, trying floppy. [ 307.285000] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6 [ 307.290000] Ple

回到原點 1713

解决 VFS:Unable to mount root fs on Unknown-block(0,0)

解决 VFS:Unable to mount root fs on Unknown-block(0,0)1. 启动报错2. 引导修护3. 使用其他内核启动 1. 启动报错 出现原因是安装软件时断电造成内核升级失败 报错内容:VFS:Unable to mount root fs on Unknown-block(0,0) 2. 引导修护 进入GNU GRUB 界面,选择默认启动版本的内核recovery mode(恢复模式) 可以进入后可按照以下步骤处理,否则使用下一章节进行处理 清理Ubuntu的

JiaLu0216的博客 2万+

linux系统开机的时候遇到:VFS:Unable to mount root fs……报错信息解决办法

在重启linux系统的时候遇到报错,导致无法正常进入系统,如何进行修复呢?

猿小白的博客 3306

Linux重启系统提示:unable to mount root fs on unknown-block(0,0);initramfs-4.19.90-2003.4.0.0036.oe1.x86_64

已提示无法挂载mount文件系统,initramfs-4.19.90-2003.4.0.0036.oe1.x86_64.img not found。注意不要从镜像直接复制此文件,重启后还是会报错的,mkinitrd命令才可以。之后执行exit退出重启。挂载镜像进入救援模式。sync #同步磁盘。

weixin_44147924的博客 2995

通义千问对接FreeSWITCH实现大模型呼叫中心

通义千问是由阿里云开发的大规模语言模型,具备优秀的自然语言处理能力,支持文本生成、问答对话、摘要提取等多种任务。它不仅拥有丰富的知识储备,还能根据上下文灵活调整回答策略,适用于各种复杂场景下的自动化交流。FreeSWITCH是一个开源的多媒体通信服务器,提供了包括VoIP通话、即时消息传递在内的多种通信服务。它的模块化设计允许开发者根据实际需求定制功能,广泛应用于企业级通信系统中。通过集成通义千问,FreeSWITCH能够实现更智能的客户服务体验。

技术永不眠 Q:53195017 1499

时序数据库避坑指南:TDengine与IoTDB在车联网场景的7个关键对比

本文对比了时序数据库TDengine与IoTDB在车联网场景下的7个关键差异,包括数据模型设计、边缘-云端协同能力、车规级函数库、存储压缩算法等。通过真实案例和性能测试,帮助企业在新能源汽车大数据处理中选择合适的时序数据库,优化存储成本和实时告警性能。

rust6ferris的博客 453

解决那些千奇百怪的 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block 错误

看设备名:ubiblock0_5,ubixxxx 表示这是一个 SPI NAND 设备,如果是 SPI NOR 那一般是 mtdxxxx。这一般是因为 rootfs 的数据错误,看一下是不是打包错了,把uboot打包进rootfs里了,或者是。错误描述:rootfs格式设置都是正确的,驱动也有,但是还是打印分区表然后提示没有可供挂载的格式。再看看我们实际的启动设备,是eMMC,是一个MMC设备,应该是。错误描述:rootfs格式设置都是正确的,驱动也有,报错。不用慌,这只是一个障眼法,它真正的报错是。

DOT小文哥的博客 2万+

Android 性能之 Game Mode

本文的目的是介绍 AOSP Game Mode 功能。Game Mode 功能的核心是系统服务 GameManagerService,在本文中用 GMS 指代 GameManagerService。在 API 26 之后,应用开发者可以通过将应用的 category 属性设置为 "game",使系统(即 GMS)能够将该应用识别为 "游戏"。GMS 定义了 4 种 game mode,即 1|2|3|4|standard|performance|battery|custom;

专注于系统快稳省领域 3066

【问题解决】Linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy

问题: NFS配置没问题:NFS服务开启与使用、目录挂载与卸载 使用 NFS 挂载文件系统的时候报错: [ 101.800373] VFS: Unable to mount root fs via NFS, trying floppy. [ 101.807335] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6 [ 101.814718] Please append a correct "root=" boot op

丨晋丨 1万+

模板匹配加速之金字塔分层搜索

图像金字塔是一种多分辨率图像表示方法,它通过一系列逐渐缩小或放大的图像来表示原始图像的不同尺度。高斯金字塔(Gaussian Pyramid):通过不断下采样(降采样)生成更小的图像。拉普拉斯金字塔(Laplacian Pyramid):通过高斯金字塔和差分操作生成一组残差图像。在模板匹配中,我们主要使用高斯金字塔来实现多尺度匹配。金字塔灰度模板匹配通过多尺度搜索策略,在保持较高准确率的同时显著提升匹配速度,尤其适用于:高分辨率图像处理实时检测系统移动端设备等资源受限场景。

weixin_44969144的博客 1733

LVGL在STM32H743IIT6上的性能优化技巧:如何提升图形界面刷新速度

本文详细介绍了在STM32H743IIT6高性能MCU上优化LVGL图形界面刷新速度的实战技巧。通过利用芯片的DMA2D硬件加速模块替代低效的软件画点,将绘制缓冲区放入SDRAM并启用双缓冲机制,以及合理配置CPU缓存与MPU,有效解决了界面卡顿问题。文章还涵盖了LVGL引擎调优、内存架构优化等关键步骤,帮助开发者充分发挥STM32H743的硬件潜力,实现流畅的图形界面体验。

vscode6remote的博客 308

Linux通过nfs挂载根文件系统失败:VFS: Unable to mount root fs via NFS, trying floppy.

Linux通过nfs挂载根文件系统失败:VFS: Unable to mount root fs via NFS, trying floppy. 报错如下: IP-Config: Complete: device=eth0, addr=192.168.1.113, mask=255.255.255.0, gw=192.168.1.1, host=192.168.1.113, domain=, nis-domain=(none), bootserver=192.168.1.11

register_k的博客 3887

Doris存储层设计介绍2——数据写入及删除流程

Doris存储层设计介绍2——数据写入及删除流程

爱吃辣条的博客 4592

VFS: Unable to mount root fs via NFS, trying floppy.VFS: Cannot open root device “nfs“ or unknown-b

VFS: Unable to mount root fs via NFS, trying floppy. “loading:T T T....”

seeyouwlx的博客 3732

机器学习笔记:估算模型训练所需的样本量的方法

相反,如果训练得分高而交叉验证得分低,那么模型可能存在过拟合问题,需要更多的样本来提高泛化能力。本文将介绍一些常用的方法来估算模型训练所需的样本量,并提供相应的源代码。除了经验法则和学习曲线法,还有一些统计学方法可以用于估算模型训练所需的样本量。学习曲线是一种通过绘制模型性能与样本量之间的关系曲线来估算样本量的方法。需要注意的是,这些方法仅提供了估算样本量的指导,具体的样本量仍然需要根据实际情况进行调整和优化。通过合理估算样本量,可以提高机器学习模型的性能和泛化能力,从而更好地应用于实际问题中。

HnrzLinux的博客 2733

【YOLOv12改进trick】高效多尺度卷积注意力EMCAD_Block模块引入YOLOv12,实现涨点和效率提升,含创新点Python代码

EMCAD引入YOLOv12模块,实现高效多尺度注意力模块引入到YOLOv12中的快速涨点及效率提升

向上生长的程序媛的博客 852

正点原子开发板:NFS挂载根文件系统失败问题解决:Unable to mount root fs via NFS, trying floppy.

摘要:本文记录了正点原子开发板通过NFS挂载根文件系统失败的问题排查与解决方法。核心问题为NFS服务器与开发板内核的版本不兼容(服务器默认NFSv4,内核仅支持v3)。解决方法是在U-Boot启动参数bootargs中添加"vers=3"指定NFS版本,并确保内核已开启NFSv3支持。文章详细描述了问题现象、排查过程和具体解决步骤,为同类开发板用户提供参考。

qq_56338777的博客 1110

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy

问题: 在开发板NFS平时挂载都正常的情况下某一天***升级了PC端ubount版本***或者在系统内安装某个安装包时附带更新了某些文件的情况下突然造成NFS挂载失败,开发板反复重启的情况如图 ![NFS挂载失败,开发板反复重启](https://img-blog.csdnimg.cn/87f903aa1a09483f985554d3dc475526.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50

HU_WANG_LU的博客 1432

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ubuntu20通过nfs挂载根文件系统失败:VFS: Unable to mount root fs via NFS, trying floppy.

在网上搜索各种资料均未解决。 最终发现原因是我的Ubuntu版本太新了,不兼容导致。 终于在大神的博客里找到解决方法: 查找资料发现从Ubuntu17.04开始,nfs默认只支持协议3和协议4,而kernel中默认支持协议2,所以才会出现挂载失败的情况,现有两种方法可以解决该问题: 设置Ubuntu18.04或者ubuntu20系统中的nfs服务支持协议2,修改nfs配置文件 /etc/default/nfs-kernel-server,在文件末尾加入一句:RPCNFSDOPTS="–nfs-versi

V__KING__的专栏 1512

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

mini2440NFS启动,VFS: Unable to mount root fs via NFS, trying floppy.

NFS服务器基于opensuse13.2 nfs-kernel-server 1.3.0-4.4.1版本,启动时提是如下错误:U-Boot 1.3.2-moko12 (Apr 4 2009 - 14:15:08) I2C: ready

pengrui18的专栏 6230

uboot通过NFS挂载根文件系统卡死解决办法(VFS: Unable to mount root fs via NFs, trying floppy)

uboot通过NFS挂载根文件系统时,加载完内核后,卡死在这里。setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.200:/home/me/imx6ull_nfs ip=192.168.1.100:192.168.1.200:192.168.1.1:255.255.255.0::eth0 off'

晨少的博客 2393

Ubuntu 20.04安装NFS版本引起kernel挂载文件系统失败解决方法(VFS: Unable to mount root fs via NFS, trying floppy.)

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

Zorry的专栏 1777

构建跟文件系统之后,通过nfs挂载不上

VFS: Unable to mount root fs via NFS, trying floppy. VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6

weixin_46188543的博客 1847

nfs挂载出错

本文参考:1.【问题解决】Linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy-优快云博客。

m0_68300980的博客 2362
上一篇: linux移植网卡驱动问题(itop-4412)
下一篇: 使用thrift搭建lucene的rpc调用
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值