使用nfs作为根文件系统启动遇到的问题

来源:互联网 发布:计数返礼物软件 编辑:程序博客网 时间:2024/05/17 06:04

在通过 flash 上的根文件系统启动后,手工 mount  NFS是没有问题的,但是直接使用NFS作为根文件系统启动时会遇到问题,初次的问题是提示服务器无响应,即server  ******  not responding , still trying 

根据网上的很多办法都没法解决,有些说是网卡丢包严重,但我尝试更改后仍然没有解决问题。

后通过打印出的信息分析,我设置的 bootargs 没有问题,那无响应可能是网络不通,但我 nfsroot 里的 ip 都设置好了啊,怎么会不通呢?

我主机的 ip 是固定的,肯定不会出问题,那么唯一能出问题的就是开发板这里了,可是开发板的 ip 我也设置了啊,nfsroot 里的开发板 ip 设置了,ipaddr  serverip都设置对了(这里说明一下,经我测试,发现 ipaddr 和 serverip 的设置在这里不影响系统的启动,即使你随便设置一个)。难道是内核启动后开发板 ip被改了? 后经查询得知 /etc/init.d/rcS 里会对 ip 进行设置(这里要注意:我们修改的应该是将要使用的文件系统的/etc/init.d/rcS,我之前一直修改开发板里文件系统的这个文件。在这里,我们应该修改的是主机上的做好的文件系统里的),于是打开发现里面的确设置了 ip,而且和我的主机不在一个网段,怪不得不通。好了,现在修改好这个后应该可以了吧,重启开发板,OK? 对不起,新问题出现了,提示如下:

Warning: unable to open an initial console.
Failed to execute /linuxrc.  Attempting defaults...

难道没有console,查看发现有,那是怎么回事?后想到难道是没有挂载上我制作的这个文件系统? 根据这个想法查找解决办法,还真找到了,我们主机里有个 /etc/exports 文件,这个文件里记录了可以被挂载的目录,我们应该把我们制作的文件系统的目录在这里声明一下,如下:

/work/nfs_root *(rw,sync,no_root_squash)

就把上面这一行加到原来的文件里就可以了。

修改好文件后,重启一下NFS服务,sudo /etc/init.d/nfs-kernel-server restart

至此,问题全部解决,重启开发板,正常启动起来了。

阅读全文
1 0
原创粉丝点击