I am trying to setup a FC17 diskless client to PXE boot and mount nfs the root file system.
The first steps are OK: kernel and initramfs are properly tftp downloaded and the boot process starts fine on the client but it crashes with the following message:
VFS: Cannot open root device "nfs:184.108.40.206:/data/diskless/root" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
0b00 1048575 sr0 driver:sr
Kernel panic - not syncing: VFS : Unable to mount root fs on unknown-block(0,0)
Pid: 1, comm : swapper/0 Not tainted 3.4.4-3.fc17.i686 #1
I checked my boot parameters that I typed from the FEDORA user manual. Here is the boot file served on the tftp/pxe server:
append FEDORA17-st/initrd=initramfs rd.debug rd.shell root=nfs:220.127.116.11:/data/diskless/i386/FEDORA17-st/root rw
The vmlinuz and initrd are links on files that can change in order to test different kernels or initramfs.
They where tested first locally on the machine with a SATA disk. I have tested that the client is perfectly able to mount nfs the server directory
from the server. I noticed that the first time I installed fc17 on the SATA disk with the LiveCD it was not able to nfs mount a remote disk untill I installed with yum the nfs-utils package (which I believed was only to add nfs server features).
Then the kernel and initramfs were copied on the server tftp directory and the nfs exported rootfs directory populated. I disconnected the SATA disk and tried the PXE boot. The boot failed with the message above.
Then I tried to generate my own initramfs out of the used kernel using dracut. I have dracut-network installed. Here is the list of dracut modules installed:
So I have generated two new initramfs with:
dracut --add "bootchar network nfs rootfs-block" myinitrd.img
to test the two options. I them copied on the tftp server but I got exactly the same error when booting with those initramfs.
I did the test with the LiveCD installed kernel then with two home build kernels using the FEDORA build tool with different flags. When rebuilding the kernels I also noticed that the flag CONFIG_NFS_FS=m (dynamic module) was set by default. I tried with this default configuration first. Then I did another kernel guessing that something related to nfs or rootnfs was missing in the kernel. I forced it to CONFIG_NFS_FS=y (static module) in case it solved the issue. It didn't change anything and the boot crashed the same way. I also noticed that when I add the CONFIG_ROOT_NFS=y kernel building flag that exist for arm-omap architecture and is documented in some WEB linux kernel building pages it is automatically skipped out from the .config file in the FEDORA kernel building process for my i686 architecture.
Thanks for your time if you can help