We have need of setting up an EFI PXE server. I've successfully been able to get a test machine to boot all the way up until we get to the pivot_root portion of the boot process. Then I get the dreaded:
VFS: Cannot open root device "nvram" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
And yes, the list of partitions is nil
.
Can anyone tell me how one can get the root= device for my legacy grub conf for diskless centos machines? Obviously, I've already tried /dev/nvram
, and /dev/ram
.
When we PXE boot (legacy mode) there is no problem or special settings requesting a root device. It just works. This is the first time I've ever worked with EFI booting, so I'm sure I'm just missing some parameters.
Current setup: CentOS 6.8, Legacy Grub (bootx64), ISC DHCP, TFTP
Current EFI config (/EFI/efidefault):
default=0
timeout=3
splashimage=(nd)/splash.xpm.gz
#prompt 0
#ONTIMEOUT default
title Linux
menu label UEFI Image
menu default
root (nd)
kernel /discovery_images/2.6.32-642.el6.x86_64/vmlinuz-2.6.32-642.el6.x86_64 root=/dev/nvram
append initrd=/discovery_images/2.6.32-642.el6.x86_64/centos-initramfs-2.6.32-642.el6.x86_64.img.gz rw shell init=/init biosdevname=0 consoleblank=0 vga=773 ramdisk_size=9216
FINAL FIX
So the problem was that I was using the wrong syntax for the legacy GRUB config. Thanks to #CENTOS in Freenode (IRC), one of the members (apologies, I don't recall his/her nick) pointed out that Legacy GRUB doesn't understand the append
directive. So, moving the arguments in the append
string of my config (above) to the kernel
directive and losing the append
string on the initrd
line, and then finally, removing the =
between initrd
and /discover...
, fixed the problem:
default=0
timeout=3
splashimage=(nd)/splash.xpm.gz
title Linux
menu label UEFI Image
menu default
root (nd)
kernel /discovery_images/2.6.32-642.el6.x86_64/vmlinuz-2.6.32-642.el6.x86_64 rw shell init=/init biosdevname=0 consoleblank=0 vga=773 ramdisk_size=9216
initrd /discovery_images/2.6.32-642.el6.x86_64/centos-initramfs-2.6.32-642.el6.x86_64.img.gz