Server: CentOS 7
NFS root filesystem for client and Kernel: Slackware 14.1
I enabled "Root file system on NFS" and "IP: kernel level autoconfiguration" with "DHCP,BOOTP,RARP" support, recompiled the Kernel(3.10.17).
TFTP,NFS,DHCP all ready.
I ensure that NFS can be mounted by a linux client.(mount -t nfs … )
DHCP and TFTP worked properly, and I can boot from an isolinux kernel use ram root filesystem.
Now, I need a diskless node so I need the kernel to mount a root filesystem via NFS.
kernel kernels/vmlinuz
append ip=dhcp root=/dev/nfs nfsroot=192.168.1.4:/srv/diskless/slackware-14.1,nfsvers=3 raid=noautodetect
I get the error when boot
VFS: Unable to mount root fs via NFS, trying floppy.
Also, it seems the kernel didn't get an ipaddress by DHCP when boot.
(No information about displayed, ether I use "ip=192.168.1.7: … :eth0" manually)
As the Slackware use huge-kernel, so I don't have an initrd image.(Problem may be here?)(My Computer's Linux didn't have ether, and works properly 🙂 )
Or may be some option in kernel menuconfig I didn't select 🙁 .(and I really need to know it)
Best Answer
I was having the same problem as you and I was able to find a solution. I'm also using Slackware 14.1 and the huge kernel.
My problem was that the huge kernel doesn't include the Ethernet driver, in my case, the e1000 driver was compiled as a module in the huge.s kernel, I thought that all drivers were included with this kernel, my assumption was wrong. Once I added the e1000 driver into the kernel (not as a module) everything started to work, and I was able to mount the root with NFS.
You should see something like this before the VFS mount message: