On 16/09/14 19:15, Rémi Palancher wrote:
#!ipxe
initrd http://10.89.89.60/disk/rhel6.5/initrd.img
kernel http://10.89.89.60/disk/rhel6.5/vmlinuz
boot

Both the kernel and the initrd are those officially delivered by RedHat in
their ISO (in images/pxeboot/ directory).

But unfortunately, it finally hangs on these errors:

http://10.89.89.60/disk/rhel6.5/initrd.img... ok
http://10.89.89.60/disk/rhel6.5/vmlinuz... ok
Could not select: Exec format error (http://ipxe.org/2e008081)
Could not boot image: Exec format error (http://ipxe.org/2e008081)
No more network devices

CentOS6.5 (and thus presumably also RHEL6.5) ship kernels built without CONFIG_EFI_STUB enabled. The kernels are therefore not EFI binaries and so iPXE cannot (yet) load them under UEFI.

On 7.0 and later, the kernels are build with CONFIG_EFI_STUB and so this particular problem goes away.

But it finally fails with a kernel panic when trying to mount the root FS from
of the initrd:

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-123.el7.x86_64 
([email protected]) (gcc version 4.8.2 20140120 (Red 
Hat 4.8.2-16) (GCC) ) #1 SMP Mon May 5 11:16:57 EDT 2014
[    0.000000] Command line: vmlinuz ip=eth0:dhcp ipv6.disable=1 
console=ttyS0,115200n8r ksdevice=eth0 
ks=http://10.89.89.60/disk/rhel7/kickstart.ks autostep net.ifnames=0 
biosdevname=0

For UEFI kernels, you need to instruct the kernel to load the initrd (which has already been downloaded by iPXE) by adding an "initrd=<filename>" to the kernel command line. If you add "initrd=initrd.img" to your kernel command line, it should start working.

Please note that there was a rather nasty memory corruption bug in kernels earlier than v3.16, which may cause the initrd to become corrupted (and so give the same "Unable to mount root fs" kernel panic). Upgrading to v3.16 (or an older kernel which has the relevant bugfix backported) will avoid this problem.


All of these problems will go away when iPXE gains the ability to load bzImage kernels directly under UEFI (rather than going through the kernel's EFI stub). Until then, please use the workarounds above.


As a side note, fortunately, undionly.kpxe with legacy BIOS supports works like
a charm on this server. Let me thank you for your awesome work on iPXE.

Thank you!

Michael
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to