[ipxe-devel] Feedback of tests iPXE with UEFI
mcb30 at ipxe.org
Wed Sep 17 14:12:59 BST 2014
On 16/09/14 19:15, Rémi Palancher wrote:
> initrd http://10.89.89.60/disk/rhel6.5/initrd.img
> kernel http://10.89.89.60/disk/rhel6.5/vmlinuz
> 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 (mockbuild at x86-017.build.eng.bos.redhat.com) (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.
More information about the ipxe-devel