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 results. 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).... Any thoughts/hints/random-hacked-up-patches-to-try? Brandon
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 well. 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