Here's the deal ... it requires ...
1) Buggy Extended Int13 BIOS, things select OEMs *COUGH*IBM*COUGH*
shouldn't be shipping anymore. It is because BIOSes like these are so
old/legacy that ATA disks sold today still come pre-set to 16 heads
(instead of 255)! Why oh why?
2) It requires another OS on the disk, namely NT 5.x (or even NT 4.0
SP4 or later), to write out an *CONFLICTING* partition table, totally
*IGNORING* the buggy BIOS and *ASS-U-ME* 255 heads aka "LBA." This
would also cause a dual-boot issue with DOS-based Windows (95, 98, Me)
as well -- or worse, DOS-based fdisk would "blow the partition table
away" without a prompt.
3) A 100% Extended Int13h Services standards-compliant Linux kernel
and GRUB, which re-write the partition table "proper." The workaround
is for the Linux kernel to completely ignore the BIOS, read from the
raw partition, which may or may cause boot-time issues. In other
words, Linux has to "guess" what the partition table geometry is and
hope it works (sometimes, it doesn't and causes errors!).
I've seen this year in and year out (going back 7+ years), so I'm sure
the 2.6 kernel shipped with full Extended Int13h Service complaince by
default because any BIOS in the last 5-7 years should *NOT* be buggy.
Why? Because dual-booting just causes problem after problem after
Ultimately, the "final workaround" from the Linux standpoint is to get
away from the legacy PC BIOS / DOS "disk label" (partition table) with
primary/extended and built support for the "LDM disk label" (aka
Dynamic Disks). The support for the LDM disk label is already in the
Linux kernel, we just need GRUB support and user-space tools. Why is
this a good idea?
Because we can read the *ASS-U-ME* geometry from the LDM disk label.
Not perfect, but far better than and more well defined than with the
legacy PC BIOS / DOS disk label. Linux didn't create the issues, it's
just trying to survive in them. I tire of seeing people demonize
Linux 2.6 (and Red Hat) in a PC BIOS / NT 5.x world of non-compliance,
broken implementations and Microsoft OS "we assume this so this is the
standard, even if we break our own, previous implementation."
I mean, if you dual-boot multiple Linux versions even on one of these
systems, you have *0* issues. The problem isn't Linux.