There are some problems booting from extended partitions. Here are my
simple workarounds:
1. Booting Win95 OSR2 / Win98 / WinME
It is not possible to boot from extended partition above cylinder
1023. The reason is that code in the boot record (both for FAT16 and
FAT32) uses LBA addressing (INT 13 Extensions) only if the partition
type is 0C or 0E - but it checks PRIMARY partition table only.
Workaround:
Modify boot record code from 75 06 to B2 0E at specific location:
FAT16 Win95 OSR2: location 89h
FAT16 Win98Gold/SE/WinME: location 80h
FAT32 Win95 OSR2/Win98Gold/SE/WinME: location A8
(Windows 95 (first edition) has no support in boot record for INT 13
extensions)
This modification causes using INT 13 Extensions regardless on
partition type.
2. Booting of Windows 2000 / XP from extended partition
The following is valid for FAT32 partition, but maybe for FAT16 too.
sector 0-1 - 1st copy of boot record (loaded at 7C00h)
sector 4-5 - 2nd copy of boot record
sector 12 - second part of boot loader, loaded at 8000h
Black screen is caused by the fact, that 2000/XP boot record looks
for its second part using field "Hidden Sectors" - quadword at
position 1C in BPB. In primary partition everything works as
expected, but in extended partition, there is a difference. Win98 and
other OS fill this field with number of sectors from the beginning of
the hard disk, but Win 2000 / XP fill this field with number of
sectors from the beginning of current Extended partition (EMBR),
which is 63. So the boot loader is not able to find its second part
and dies quietly.
Workaround:
Manually fill the quad word at address 1Ch with number that is
identical with number of this boot sector. The easiest way is to
format the partition with Win98 FORMAT and it will fill this field
correctly. Then you can write the number down an correct it in case
of overwriting by Win 2000 / XP.
I verified this with WinXP only, but the loader is the same as in Win
2000.
I have to check this with NTFS file system.
After these small workarounds (that took much of my time) I'm able to
boot any OS from any partition using XOSL.
I hope this helps to anybody who needs booting from these areas.
Best Regards,
Petr Soucek
Petr Soucek
Ryston Electronics s.r.o.
Modranska 621/72
CZ-143 00 Praha 4, Czech Republic
tel +420-2-25272222 fax +420-2-25272211
Email: petr@... http://www.ryston.cz