Re: Problem with larger IDE drive

Guest section DW (dwguest@win.tue.nl)
Thu, 25 Mar 1999 10:23:45 +0100 (MET)


From owner-linux-kernel-outgoing@vger.rutgers.edu Thu Mar 25 08:28:19 1999

I have a question on large IDE drive. For IDE HD > 8.4GB, # of
cyliners is > 1024. The kernel always report

CHS=1024/255/63

That means I cannot use anything above 8.4GB unless I play with
fdisk. However, the kernel reports the correct size of the HD.
That is idedisk_capacity () knows the correct geometry. Is there
a way for fdisk to get the correct HD geometry from the kernel
without breaking things? Since I can use fdisk to set the
HD geometry to use the whole HD, I don't see why the kernel
cannot do it for me.

H.J. Lu (hjl@gnu.org)

Ha, HJ - I'll forgive you not reading the Large Disk HOWTO
(e.g. on http://www.win.tue.nl/~aeb/linux/Large-Disk.html -
the HOWTO maintainer has not yet managed in the past two months
to put the previous version om metalab so I dare not tell him
there is a new version already),
but mentioning the kernel version seems the minimum you can do
on the kernel list.

The above looks like you might be using 2.0.36 or so - I think
2.2.3 is better (and 2.0.37pre is worse).

What happens is described thusly in the HOWTO:

11.1 BIOS complications

As just mentioned, large disks return the geometry C=16383, H=16, S=63
independent of the actual size, while the actual size is returned in
the value of LBAcapacity. Some BIOSes do not recognize this, and
translate this 16383/16/63 into something with fewer cylinders and more
heads, for example 1024/255/63 or 1027/255/63. So, the kernel must not only
recognize the single geometry 16383/16/63, but also all BIOS-mangled
versions of it. Since 2.2.2 this is done correctly
(by taking the BIOS idea of H and S, and computing C = capacity/(H*S)).

Andries

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