NFS rootfs 在 ARM imx53 板上无提示启动失败

NFS rootfs 在 ARM imx53 板上无提示启动失败

我正在尝试通过 NFS 挂载我的 rootfs。我启用了这些内核配置:

CONFIG_NFS_FS=y     (NFS support)
CONFIG_IP_PNP=y     (configure IP at boot time)
CONFIG_ROOT_NFS=y   (support for NFS as rootfs)

这是我的内核命令行:

debug nfsrootdebug loglevel=8 console=ttymxc1,115200 imx-fbdev.legacyfb_depth=32 consoleblank=0 ip=10.42.102.244:10.42.102.5::255.255.255.0::eth0: root=/dev/nfs nfsroot=10.42.102.5:/srv/nfs/dc10,v3,tcp noinitrd

以下是启动消息中的相关部分:

libphy: 63fec000.etherne:01 - Link is Up - 100/Full
IP-Config: Complete:
     device=eth0, hwaddr=00:d0:93:2a:6c:8e, ipaddr=10.42.102.244, mask=255.255.255.0, gw=255.255.255.255
     host=10.42.102.244, domain=, nis-domain=(none)
     bootserver=10.42.102.5, rootserver=10.42.102.5, rootpath=
ALSA device list:
  #0: imx53-mba53-sgtl5000
Freeing init memory: 6332K
Welcome to Buildroot 2013.05!

我本来希望看到有关 RPC 通信和通过 nfs 安装 VFS 的行,但没有任何内容,也没有打印任何错误消息,因为提供了“debug”、“nfsrootdebug”和“loglevel=8”作为内核参数。

我已经在 nfs 服务器端使用 tcpdump 验证没有发送任何数据包。

开发板启动后,我可以使用 ssh 连接到运行 nfs-server 的计算机。

有谁对出了什么问题或者我如何进一步调试有任何建议吗?

答案1

我没有专门使用过 ARM,但通常对于 NFS root,命令行应该看起来像root=nfs:[Server IP]:/[Directory],[options](所以对你来说就是root=nfs:10.42.102.5:/srv/nfs/dc10,v3,tcp),并且 initrd 将解析出 root 信息。 usingroot=/dev/nfs通常已被弃用(该文件/dev/nfs实际上并未在安装过程中使用,它只是应该使用 NFS 的提示,但并不总是存在于较新的 initrd 中。

我在你的命令行中看到你使用的noinitrd,这是有原因的吗? initrd 的作用是提高挂载根分区的灵活性,并且非常适合这种场景(挂载不是内部 HD 的根设备)。

另外,您的内核命令行是否来自本地磁盘上的分区?或者这是一个无盘系统(PXE 引导至 NFS 根目录)?如果可能的话,在调试时删除本地磁盘以查看会发生什么会很有用,但是如果您的内核命令行来自boot本地磁盘上的分区,则不太可行。

相关内容