Red Hat Bugzilla – Bug 3679
IDE drive incorrectly detected at boot time
Last modified: 2008-08-01 12:22:51 EDT
The machine is an IBM Thinkpad 770Z. It has a single
internal IDE drive which is 14.1GB in size. Win98 sees and
can use the whole range of space. Linux always detects the
drive as "7559MB" with CHS of 1023/240/63. I tried playing
around with manual geometry from within fdisk, trying some
other common translations like */16/63, and it seems that
the Windows-created partitions only look correctly aligned
to fdisk in */240/63 configurations... therefore I'm
imagining that Windows is also using a */240/63 geometry,
but with more than 1023 cylinders.
I've tried some rough guesses based on the size "14.1GB"...
19xx/240/63 is roughly the correct number of cylinders, but
I can't pinpoint it exactly.
The obvious answer is to look on the label on the drive
itself, or call IBM tech support, in either case to find out
definitively from the manufcaturer exactly how many linear
sectors the drive contains, or some valid geometry which
adds up correctly, from which I could determine the same
However, the is absolutely zero technical data on the label
of the drive physically, and extensive (very extensive)
searching of IBM's web site and the web in general return no
data on this drive as well. IBM tech support said they
can't find the info either.... GRRRRRRR!!!!!
Bottom line, I would suspect that if Windows somehow gets it
right, that there is an electronic means of determining this
drive's size correctly, and that this method must be fairly
somewhat psuedo-standard (Since '98 out of the box can
detect the full 14.1)....
I have (by trial and error and brute force) determined a valid
geometry for this drive under linux that is compatible with 98's
concept of */240/63 geometry. The number of cylinders should be
1826(/240/63). at 1826/240/63 I can put every sector that fdisk can
see on the drive into partitions, and I can do 'dd if=/dev/zero
of=/dev/hdaX' to the partitions without having kernel I/O errors on
the disk. At 1827 or higher, I get errors.
1826*240*63*512 = 14135869440 bytes (14.1 GB in HDD manufacturer's
terms of K=1000, M=1000000, G=1000000000)... so the size looks sane as
So... my personal problem is resolved, in that I can fix this with a
kernel commandline param of "hda=1826,240,63"... but the bug still
exists... why can't linux detect the drive in the first place..?
assigned to dledford, Cc: Alan