Re: ATA 4 KiB sector issues.

From: Bill Davidsen
Date: Wed Mar 17 2010 - 13:05:18 EST


Tejun Heo wrote:
On 03/17/2010 12:02 AM, James Bottomley wrote:
On Tue, 2010-03-16 at 23:50 +0900, Tejun Heo wrote:
e.g. If the first partition begins at CHS 0/32/33 and ends at
12/233/19 and the corresponding LBA addresses are 2048 and 206848, you
can solve the equation and determine that the parameters gotta be 63
secs/trk and 255 heads/cyl to make those two pairs of addresses match
each other and in fact some BIOSs try to do this depending on
configuration (and sometimes falls into infinite loop or causes other
boot related problems if the parameters are too uncommon).
for an msdos label, this is illegal, that was Arnd's point. The
partitions have to begin and end on cylinder boundaries*. Knowing that,
you can deduce the geometry from the last sector entry.

* at least if you want to preserve windows compatibility, which is what
most of our partitioning tools seem to do.

Well, the thing is that

* Anything remotely modern (>= XP) doesn't give a hoot about cylinder
alignment.

* Anything older (<= 2000) is very likely to get confused with custom
geometry starting from the BIOS itself. For those cases, the only
thing we can do is aligning partitions to cylinders abiding BIOS
supplied geometry parameters which will usually be 255/63.

So, using custom geometry doesn't help compatibility at all.

I think you hit on the real culprit and ignored it, it seems that even modern BIOS implementations, at least some of them, do not want to cross a cylinder boundary doing boot. Or maybe that's dumb MBR code, which at least has the excuse of being size limited.

I did try using 48 sector geometry on a virtual drive, and it seems as though both Linux and XP will install. Then I tried on a USB stick and the BIOS in several old Asus laptops will boot that.

I cautiously suggest that since nothing past boot used chs, and using 48 spt seems to work and gives correct alignment, perhaps there is value in custom geometry.

--
Bill Davidsen <davidsen@xxxxxxx>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/