On Apr 20, 7:13 am, "Mike Gonta" <mikego...@REMOVEgmailTHIS.com>
wrote:
> Not all PC's that support USB booting support the int 13h extensions
> for LBA. Some of these PC's only boot USB with floppy disk emulation
> and restrict CHS access to the first 2880 sectors.
Interesting topic! Are you talking about specifically of booting USB
flash drives? Or are you talking about booting any device which is
connected via USB, even a hard disk?
I see from
http://groups.google.com/group/alt.os.development/msg/7c47c42013f6696d
under "USB Booting Secret #2: What happens in the boot sector, stays
in the boot sector!" that there are different behaviours which I'll
copy below direct from your post with asterisks in front. I'll add
some comments and questions.
* PC without USB, or with USB and can't boot USB because of old BIOS
firmware.
- nothing we can do to boot these from USB
at least not directly(!)
For all the rest I presume that the BIOS checks the first 512 bytes
and if they look to it like a valid boot sector loads them to 0x7c00
and jumps to the first byte. The boot record is then in control,
rather than the BIOS. So your comments above relate to what the MBR is
*allowed* to do by the BIOS, right?
* PC that always boots USB with floppy disk emulation.
- Are you saying that even if the MBR requests a high CHS value
(above
the size of the floppy) it will be denied access?
- Is there any way to reset the BIOS or break it out of emulation?
- This is only true for one or two obscure old dinosaur PCs,
right? :-)
* PC that always boots USB with hard drive emulation.
- What does this do if you have a floppy image?
- Doesn't the HD emulation baulk if the USB begins with a floppy
image?
* PC that examines the boot sector to determine the type of emulation
and/or with BIOS selection setup.
- If it examines the boot sector have you any idea what it looks
for?
- Why doesn't the BIOS just obey the MBR code?
- Is it simply that the BIOS assigns DL=0 or DL=0x80 and if it
choses
DL=0 it will always use floppy access routines?
> So, for maximum compatibilty (with older PC's) FAT32 USB boot and run
> can be used with any size flash drive by restricting OS activity to
> the first 1.44 Mb.
As asked above, are you saying this will work when the BIOS is running
HD emulation?
If you are suggesting using a floppy image at the start of the USB
device doesn't that prevent the rest of the device being used? I can
see that once an OS is running it could do what it likes with the rest
of the storage space and doesn't have to be limited to the floppy
image at the start but if the device is laid out that way maybe no
other OS will access the rest of the space because it doesn't
recognise the layout. Therefore maybe it's better not to use floppy
layout on a USB device and let the user of the PC boot from some other
device and then use the full capacity of the USB device. Just a
thought.
Or, finally, even though some BIOSes fail to grant access to sectors
above 2880 could we put the key files which are needed to boot below
that point but still format the USB device to its full capacity? I
guess there are questions over how to format it in that case:
partitioned or not.
James