Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block

在制作根文件系统,在U-boot阶段通过nfs挂载文件系统后出现了该问题,这个问题网上已经有很多解答,但是没有一个是我需要的。我出错的现象如下:Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block_第1张图片

 

在此期间我尝试了很多种方法都没有得到解决,并且我在nfs服务器端查看Log发现有nfs mount迹象,这就很奇怪了,我通过抓包软件抓nfs的交互字段发现:

Accept State: remote can't support version # (2)
Program Version (Minimum): 3
Program Version (Maximum): 4

我内核支持nfs版本2,3,4,默认使用2。但是我的nfs服务版本是3,查询结果如下:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block_第2张图片

那么在uboot启动参数应该指定Nfs挂载版本,指定选项如下:

nfsroot=[:][,]
nfs-options加vers=3   

有些版本内核可能需要指定为nfsvers=3  这个需要看源代码

查看nfs共享了那些目录:/var/lib/nfs/etab

查询有多少nfs客户端链接情况:/var/lib/nfs/rmtab

每次客户端mount过NFS而又没有正常umount后,在/var/lib/nfs/rmtab里会留下记录

这里补充一个问题,nfs服务器新版本可能有一个bug,开始我以为是这个bug导致我nfs连接不上,其实不是。Bug如下:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block_第3张图片

当 systemctp status nfs-service.service   状态时出现nfs-server.service active but exited?   这个问题目前没有找到真正的答案,但是有讨论,交流地址如下:

https://www.linuxquestions.org/questions/linux-newbie-8/nfs-server-service-active-but-exited-948965/

反正老外也是瞎jiba扯 。

你可能感兴趣的:(work)