Hi Allen,
I am trying to install RHEL 7 (kernel version is 3.10.0-123.e17.x86_64). I used the same set of commands as mentioned by you...loading the initrd first and then kernel. I still get the issue "No file systems could mount root, kernel panic: unable to mount root fs on unknown block"
Any idea how to resolve it?
(2016-02-02 17:25)allenb Wrote: Hi MM,
Have been using "initrd=" in all of my UEFI testing. Still finding that things work when I replace the kernel & drivers with ones from ELRepo and do not work when using the standard releases from CentOS 7. Would be curious if this workaround does the trick for anyone else.
This is on HP G9 hardware, DL380 specifically, in UEFI mode.
Was unaware that multiple initrd files could be used. That's handy, thanks!
Allen
(2016-02-02 01:27)MultimediaMan Wrote: The message you are seeing occurs because the vmlinuz cannot find the initrd.
In a UEFI system, the EFI_STUB in the Kernel needs initrd to specified as a path. PCBIOS can "figure it out". Typically, "initrd=initrd.img" is enough. If you have multiple initrd files you may need to specify them as "initrd=initrd.img,drivers.ko" or "initrd=initrd.img initrd=drivers.ko"
Example:
Code:
#!ipxe
echo EFI or PCBIOS
initrd ${17}/Media-Depot/linux/CentOS/latest/EL/x86-64/OEM/os/images/pxeboot/initrd.img
chain ${17}/Media-Depot/linux/CentOS/latest/EL/x86-64/OEM/os/images/pxeboot/vmlinuz initrd=initrd.img
Ah, unbelievable!
There was an important bit of detail in MM's response that I almost missed. It turns out the method that I was using in our config files wasn't quite right. I'd inherited it from previous efforts and because it worked in many cases, including UEFI with an alternate kernel, it seemed correct.
What I was doing:
kernel blahblah initrd=foobar.img
initrd foobar.img
boot
What actually works with the "out of the box" pxeboot files:
initrd foobar.img
chain blahblah initrd=foobar.img
Better to know now than never. Hope this helps some others. Thanks, MM.
Cheers,
Allen
(2016-02-02 01:27)MultimediaMan Wrote: The message you are seeing occurs because the vmlinuz cannot find the initrd.
In a UEFI system, the EFI_STUB in the Kernel needs initrd to specified as a path. PCBIOS can "figure it out". Typically, "initrd=initrd.img" is enough. If you have multiple initrd files you may need to specify them as "initrd=initrd.img,drivers.ko" or "initrd=initrd.img initrd=drivers.ko"
Example:
Code:
#!ipxe
echo EFI or PCBIOS
initrd ${17}/Media-Depot/linux/CentOS/latest/EL/x86-64/OEM/os/images/pxeboot/initrd.img
chain ${17}/Media-Depot/linux/CentOS/latest/EL/x86-64/OEM/os/images/pxeboot/vmlinuz initrd=initrd.img