On 02.01.2013 23:18, Michael Brown wrote:
On Wednesday 02 Jan 2013 09:41:54 Shao Miller wrote:
Anyway, since it's working without iPXE, perhaps the iPXE INT 0x13 hook
has a bug where the AH register is being incremented.  AH=0x4D means
"Return Boot Catalog," but if it was an accidental increment, it
might've been AH=0x4C, which is "Initiate Disk Emulation&  Boot," which
makes a whole lot of sense for the scenario you've described.

I'm pretty sure it will be triggered by iPXE's int13_boot(), which does:

        /* Look for a usable boot sector */
        if ( ( ( rc = int13_load_mbr ( drive,&address ) ) != 0 )&&
        ( ( rc = int13_load_eltorito ( drive,&address ) ) != 0 ) )
                return rc;

When int13_load_mbr() fails (since drive 0xa0 does not have a valid MBR
present), we try int13_load_eltorito().  This issues INT 13,4d00 to read the
El Torito boot catalog, relying upon the BIOS to return with an error if the
drive isn't actually a CD-ROM.

I have no idea why VirtualBox would treat INT 13,4d00 on a non-CDROM drive as
being worthy of a fatal error.

We're listening... discussing internally how to resolve this without a BIOS panic. I agree with HPA that the proper way is checking first with function 4b01h if there is El Torito disk emulation in place, however panicing is too much.

Regarding the complaints about trouble with returning to the BIOS to continue with other boot devices - this *is* troublesome, but since the code is open source there is lots of opportunity to improve things. Often it's clobbered memory contents outside the control of the BIOS.

There's a plan to replace the PXE code in VirtualBox by iPXE, but there's a lot of red tape, besides the 56K size limit and eventually the need to revive KEEP_IT_REAL to support truly strange PXE clients which use v86 mode and what not...


Klaus


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


--
Oracle <http://www.oracle.com>
Dr. Klaus Espenlaub | Software Development Director
Oracle VM VirtualBox
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to