[ipxe-devel] Booting from local disk on HP ProLiant machines

Christoph Schug chris+ipxe-devel at schug.net
Mon Jan 7 10:22:47 UTC 2013


Hello,

I am currently trying to use iPXE for some staged booting environment 
where the boot process of each server can be controlled centrally on the 
boot server by supplying individual iPXE bootstrap configurations (e.g., 
install operating system, wipe disks,
boot from local disk) without having to alter/reload DHCP configuration 
at all.

I have some difficulties to get that working with some older HP 
ProLiant machines I have available in my lab. Basically everything works 
except booting from local disk. It doesn't matter if I drive this by an 
iPXE script or enter the sanboot command on the iPXE
shell manually.

| iPXE> sanboot --no-describe --drive 0x80
| Booting from SAN device 0x80

At this point nothing obvious happens and it takes pretty much exactly 
300 seconds for the command to return with

| GRUB Read Error
| Booting from SAN device 0x80 failed: Operation canceled 
(http://ipxe.org/0b8080a0)
| iPXE>

BTW, on consecutive retries of the same command it returns instantly 
(no 5 minutes delay) with the same error. If I skip PXE booting entirely 
in the BIOS the machine boots just fine from local disk, so I am tempted 
to exclude a flawed installation of GRUB or the operating system. I 
rather assume that there is some memory corruption problem which causes 
that behavior as similar problems with older HP ProLiants were also 
reported on similar projects, e.g. 
http://www.syslinux.org/wiki/index.php/Hardware_Compatibility#LOCALBOOT_on_HP_ProLiant_servers

Unfortunately I don't have any different hardware at hand to verify 
that I am not running in some generic problem unrelated to the type of 
hardware. The specs of a machine in question where things break is a HP 
DL365 G5 (ProLiant System BIOS A10 as of 05/02/2011).

Again, it is just booting from local disk that is broken, triggering a 
PXE install of Debian Linux for example works superb. I also tried to 
workaround by chaining chain.c32 for example but no luck as well.

| #!ipxe
|
| chain http://boot.example.com/chain.c32 hd0

In this case there is also this some minute delay and the machine dies 
horrible with "Illegal OpCode" and some garbaged (which even more 
suggests memory corruption) register dump (white font on red background, 
I rather assume this error does not originate from iPXE code).

Has anyone experience with similar hardware and is aware of a feasible 
workaround? Or any other hints how to debug this issue?

Thanks in advance
Christoph




More information about the ipxe-devel mailing list