linux嵌入式开发,目标板启动时nfs文件系统mount不成功,急急急,郁闷,谁知道啊

时间:2021-07-14 19:44:33
嵌入式开发,我开发主机red hat linux7.2, 目标板linux2.4内核, 由UBOOT启动. 主机和目标板在同一网段内.  主机中nfs,portmap服务都启动,  /etc/exports中
...
/opt/fel8xx-2.0/target-2.0/     *(rw,insecure,sync,no_root_squash)
此目录是目标板的nfs filesystem. 通过exportfs -ar把此目录export出去.

目标板UBOOT环境变量中:
...
bootargs=root=/dev/nfs rw nfsroot=.........
bootcmd=tftpboot 0x100000 pImage;bootm 0x100000(内核从主机下载到目标板ram中启动)
.........

目标板启动后, 内核正确启动了,但文件系统启动不了, 提示:
...........
looking up port of RPC 100005/2 on 200.162.162.220
Root-NFS: Server returned error -13 while mounting /opt/fel8xx-2.0/target-2.0/
VFS: Unable to mount root fs via NFS, trying floppy.
request_module[block-major-2]:Root fs not mounted
VFS: Cannot open root device "nfs" or 02:00
Please append a correct "root="boot option
kernel panic: VFS: Unable to mount root fs no 02:00
Rebooting in 180 seconds..
然后停止了,不知道哪里错了? 请大家帮助.

20 个解决方案

#1


也许是你的内核中没有加入nfs文件系统支持

#2


我的内核是支持nfs文件系统的,哪个地方出错了?

#3


从其它机器能否mount该nfs?

#4


换回到大系统下,看看有问题么

#5


分步找原因

1) 看看其他pc能不能mount
如果不能, 大多数是 /etc/exports 里没设好,

2) 如果1)没问题
检查你的kernel的配置, 有没有nfs设置,

3) 有的话, 检测你的网络配置
是否可以DHCP?

4) 还不行阿? 再说了。。。。呵呵

#6


我在另一台red hat linux7.2机器上mount该nfs,用mount命令或fstab文件,确实mount不上,提示:
mount: RPC:Port mapper failure - RPC : Unable to receive
但是我的nfs server中nfs,portmap服务都启动了,错在哪里呢? 求解.

#7


我重起了一下机器,再去mount时,提示:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied
之前我的nfs目录/opt/fel8xx-2.0/target-2.0/已经用chmod -R 777 修改过的.怎么还是不允许?我也没该过什么,怎么提示不同呢?

#8


检查/etc/hosts.allow和/etc/hosts.deny

#9


/etc/hosts.allow中内容:
portmap: 200.162.162.219:255.255.255.0:allow
portmap: ALL: allow
/etc/hosts.deny中为空.
并使用:
iptables -A INPUT -p TCP --dport 111 -j ACCEPT
iptables -A INPUT -p UDP --dport 111 -j ACCEPT
把portmap 服务的 port number 提供出去.
root客户端还是提示:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied

#10


试试
portmap: 200.162.162.219/255.255.255.0

#11


/etc/hosts.allow中内容改成:
portmap: 200.162.162.219/255.255.255.0
portmap: ALL
还是不行,老样子:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied
啊!!!受不了啦!!!!!

#12


/var/log/messages有什么信息吗?

另外在/etc/hosts.allow里增加ALL: 200.162.162.219/255.255.255.0试试。

#13


难不成文件的i属性被设置了?

#14


在/etc/hosts.allow里增加ALL: 200.162.162.219/255.255.255.0试了,客户端老样子:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied
nfs server的/var/log/messages提示:
rpc.mountd: refused mount request from 200.162.162.219(200-162-162-219.cristorei.net.br) for /opt/fel8xx-2.0/target-2.0 (/opt/fel8xx-2.0/target-2.0): no DNS forward lookup


#15


客户机中用showmount -e 200.162.162.220 是可以看到nfs目录的,就是mount不了.

#16


启用了反向DNS查找。在/etc/hosts里给200.162.162.219增加个名字就可以了。

#17


感谢fierygnu(va_list),确实在/etc/hosts里给200.162.162.219增加个hostname就可以了。
我想问问:什么地方启用了反向DNS查找呢? 关闭反向DNS查找功能后是不是在/etc/hosts里不给200.162.162.219增加名字也可以mount nfs呢? 怎么关闭开启反向DNS查找功能?

#18


NFS要求反向DNS的。某些应用可以打开或关闭。

#19


portmap,nfs启动正常。exportfs输出正确。showmount没问题

/etc/hosts.allow设置:
portmap:192.168.0.23/255.255.255.0
portmap:192.168.0.20/255.255.255.0
portmap:All

/etc/hosts也设置域名了


本地IP是23,本地mount的时候成功,但是会提示mount版本老于kervel。在20上总是timeout


#20


提示mount版本老于kernel

#1


也许是你的内核中没有加入nfs文件系统支持

#2


我的内核是支持nfs文件系统的,哪个地方出错了?

#3


从其它机器能否mount该nfs?

#4


换回到大系统下,看看有问题么

#5


分步找原因

1) 看看其他pc能不能mount
如果不能, 大多数是 /etc/exports 里没设好,

2) 如果1)没问题
检查你的kernel的配置, 有没有nfs设置,

3) 有的话, 检测你的网络配置
是否可以DHCP?

4) 还不行阿? 再说了。。。。呵呵

#6


我在另一台red hat linux7.2机器上mount该nfs,用mount命令或fstab文件,确实mount不上,提示:
mount: RPC:Port mapper failure - RPC : Unable to receive
但是我的nfs server中nfs,portmap服务都启动了,错在哪里呢? 求解.

#7


我重起了一下机器,再去mount时,提示:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied
之前我的nfs目录/opt/fel8xx-2.0/target-2.0/已经用chmod -R 777 修改过的.怎么还是不允许?我也没该过什么,怎么提示不同呢?

#8


检查/etc/hosts.allow和/etc/hosts.deny

#9


/etc/hosts.allow中内容:
portmap: 200.162.162.219:255.255.255.0:allow
portmap: ALL: allow
/etc/hosts.deny中为空.
并使用:
iptables -A INPUT -p TCP --dport 111 -j ACCEPT
iptables -A INPUT -p UDP --dport 111 -j ACCEPT
把portmap 服务的 port number 提供出去.
root客户端还是提示:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied

#10


试试
portmap: 200.162.162.219/255.255.255.0

#11


/etc/hosts.allow中内容改成:
portmap: 200.162.162.219/255.255.255.0
portmap: ALL
还是不行,老样子:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied
啊!!!受不了啦!!!!!

#12


/var/log/messages有什么信息吗?

另外在/etc/hosts.allow里增加ALL: 200.162.162.219/255.255.255.0试试。

#13


难不成文件的i属性被设置了?

#14


在/etc/hosts.allow里增加ALL: 200.162.162.219/255.255.255.0试了,客户端老样子:
mount: 200.162.162.220:/opt/fel8xx-2.0/target-2.0/ failed. reason given by server:Permission denied
nfs server的/var/log/messages提示:
rpc.mountd: refused mount request from 200.162.162.219(200-162-162-219.cristorei.net.br) for /opt/fel8xx-2.0/target-2.0 (/opt/fel8xx-2.0/target-2.0): no DNS forward lookup


#15


客户机中用showmount -e 200.162.162.220 是可以看到nfs目录的,就是mount不了.

#16


启用了反向DNS查找。在/etc/hosts里给200.162.162.219增加个名字就可以了。

#17


感谢fierygnu(va_list),确实在/etc/hosts里给200.162.162.219增加个hostname就可以了。
我想问问:什么地方启用了反向DNS查找呢? 关闭反向DNS查找功能后是不是在/etc/hosts里不给200.162.162.219增加名字也可以mount nfs呢? 怎么关闭开启反向DNS查找功能?

#18


NFS要求反向DNS的。某些应用可以打开或关闭。

#19


portmap,nfs启动正常。exportfs输出正确。showmount没问题

/etc/hosts.allow设置:
portmap:192.168.0.23/255.255.255.0
portmap:192.168.0.20/255.255.255.0
portmap:All

/etc/hosts也设置域名了


本地IP是23,本地mount的时候成功,但是会提示mount版本老于kervel。在20上总是timeout


#20


提示mount版本老于kernel

#21