[ipxe-devel] iPXE does not boot OpenBSD ELF kernel

Michael Brown mbrown at fensystems.co.uk
Fri Mar 1 16:57:43 UTC 2013


On 28/02/13 12:27, Alexander Frolkin wrote:
> I'm trying to boot an OpenBSD kernel from iPXE, it's bsd.rd from OpenBSD
> 5.2 amd64 (ftp://ftp.openbsd.org/pub/OpenBSD/5.2/amd64/bsd.rd).  'file'
> says:
>
>    bsd.rd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped

OpenBSD 64-bit kernels are 64-bit ELF binaries, and require a bootloader 
prepared to set up 64-bit long mode.  iPXE doesn't have any support for 
this.  Ideally, OpenBSD would ship kernels in a standard format such as 
Multiboot, which starts executing in 32-bit mode.

> I've also just tried booting a 32 bit kernel, and this gives a different
> error:
>
>    Could not boot: Requested memory not available (http://ipxe.org/46038101)

iPXE detects the 32-bit kernels as ELFBOOT, but they aren't actually in 
ELFBOOT format since they use non-flat addressing.  Again, it would be 
great if OpenBSD shipped kernels in a standard format, but they don't.

You can probably find some way around this, e.g. using sanboot to boot 
an OpenBSD .iso image, or using pxelinux.0 as an intermediate bootloader.

Michael



More information about the ipxe-devel mailing list