[ipxe-devel] FATAL: int13_eltorito: call with AX=4d00. Please report

H. Peter Anvin hpa at zytor.com
Sun Jan 6 18:22:52 UTC 2013


On 01/02/2013 02:18 PM, 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.
>

You should use function 4B01h first to verify that you are talking to a 
CD-ROM.

	-hpa


-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.




More information about the ipxe-devel mailing list