I have a question on large IDE drive. For IDE HD > 8.4GB, # of
cyliners is > 1024. The kernel always report
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 (firstname.lastname@example.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)).
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
Please read the FAQ at http://www.tux.org/lkml/