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.

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

Reply via email to