无盘节点。无法通过 NFS 挂载根文件系统

无盘节点。无法通过 NFS 挂载根文件系统

服务器:
客户端的 CentOS 7 NFS 根文件系统和内核:Slackware 14.1

我启用了“NFS 上的根文件系统”和“IP:内核级自动配置”以及“DHCP、BOOTP、RARP”支持,并重新编译了内核(3.10.17)。

TFTP、NFS、DHCP 都已准备就绪。
我确保 Linux 客户端可以挂载 NFS。(mount -t nfs ... )
DHCP 和 TFTP 正常工作,我可以从 isolinux 内核使用 ram 根文件系统进行引导。

现在,我需要一个无盘节点,所以我需要内核通过 NFS 挂载根文件系统。

kernel kernels/vmlinuz
append ip=dhcp root=/dev/nfs nfsroot=192.168.1.4:/srv/diskless/slackware-14.1,nfsvers=3 raid=noautodetect

启动时出现错误

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

此外,内核在启动时似乎没有通过 DHCP 获取 ipaddress。
(没有显示任何信息,我手动使用“ip=192.168.1.7: ... :eth0”)

由于 Slackware 使用大内核,所以我没有 initrd 映像。(问题可能出在这里?)(我的电脑的 Linux 没有以太,但运行正常:))

或者可能是内核菜单配置中我没有选择一些选项:(。(我真的需要知道它)

答案1

我遇到了和你一样的问题,并且找到了解决方案。我也在使用 Slackware 14.1 和巨大的内核。

我的问题是 huge 内核不包含以太网驱动程序,在我的例子中,e1000 驱动程序是作为 huge.s 内核中的一个模块编译的,我以为所有驱动程序都包含在此内核中,我的假设是错误的。一旦我将 e1000 驱动程序添加到内核(而不是作为模块),一切都开始正常工作,我能够使用 NFS 挂载根目录。

您应该在 VFS 挂载消息之前看到类似这样的内容:

[    3.325468] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[    3.337383] Sending DHCP requests ., OK
[    3.340259] IP-Config: Got DHCP answer from 192.168.10.5, my address is 192.168.10.6
[    3.340870] IP-Config: Complete:
[    3.341128]      device=eth0, hwaddr=08:00:27:c0:3e:a7, ipaddr=192.168.10.6, mask=255.255.255.0, gw=255.255.255.255
[    3.341682]      host=test, domain=, nis-domain=(none)
[    3.341989]      bootserver=192.168.10.5, rootserver=192.168.10.5, rootpath=
[    3.342198]      nameserver0=192.168.10.5
[    3.342816] md: Skipping autodetection of RAID arrays. (raid=autodetect will force)
[    3.382613] VFS: Mounted root (nfs filesystem) readonly on device 0:13.

相关内容