[lkml]   [2003]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: IDE "logical" geometry & partition tables (problem with 2.4 kerne l, also seems to apply to 2.6)


Your analysis is correct from IDE side,
Andries cc:ed to say more about partition handling side...


On Wednesday 22 of October 2003 00:00, wrote:
> Bart --
> I have discovered a problem with how Linux determines IDE disk "logical"
> (BIOS) geometry. It only happens under certain unlikely conditions, but I
> think it is worthy of attention. Please let me know if you see a problem
> with my analysis!
> If an IDE hard drive has no partition table when Linux is booted, *and* if
> the hard drive is on a PCI IDE controller (a controller that isn't at I/O
> address 1f0h), *and* if the drive doesn't support 48-bit addressing, Linux
> will just use the geometry that is reported by the drive in with the
> "identify device" command, rather than getting the geometry used by the IDE
> BIOS by doing an int13 function 8 call. If a partition table is then
> created on the drive using this geometry, the CHS values in the partition
> table will not be correct.
> This will cause the drive not to boot if an MBR is used that does CHS
> addressing (rather than LBA addressing)--or if the IDE BIOS doesn't support
> the int13 extentions that allow LBA addressing.
> If the drive is on an IDE controller that's at 1F0h (like the primary
> channel on CSB5/ICH5 south bridge controllers), Linux seems to get the
> correct geometry from the BIOS tables (I believe the 2.6 kernel doesn't
> even do this). Also, if the drive supports 48-bit addressing, Linux
> assumes 255 heads/63 sectors, which is probably correct for all PCI IDE
> controllers. Or, if the drive has an existing partition table, Linux is
> typically able to figure out the correct geometry to use by looking at that
> table.
> I would think that the best solution might be either to use an int13
> function 8 call, or assuming 255 heads 63 sectors, if the drive geometry
> can't be read from the BIOS table or figured out from an existing partition
> table. The geometry reported by the drive itself is almost certain to be
> different from the BIOS geometry.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:58    [from the cache]
©2003-2011 Jasper Spaans