Re: over 5Gb missing from a 13.5Gb disk

Guest section DW (dwguest@win.tue.nl)
Thu, 9 Dec 1999 02:37:40 +0100


On Wed, Dec 08, 1999 at 03:05:57PM -0500, Prasanna Subash wrote:
> > Step 1: "I have the same problem" - be explicit. What is your problem?
> > What are the kernel boot messages ("dmesg | grep hd")?
> > What is your kernel version? What does "hdparm -I" say?
> >
> > (and don't think I have a memory - quote things you reply to)
>
> Below is the complete information.

No kernel boot messages? No kernel version? (Sorry if I overlooked sth.)

> cat /proc/ide/hda/geometry
>
> physical 29795/16/63
> logical 1027/255/63

You see, this is a broken kernel. It invents an 8 GB logical geometry
for a 15 GB physical disk.

% bc
29795*16*63*512
15377080320
1027*255*63*512
8447362560
%

Precisely what you have to do depends on the kernel version.
Reading the HOWTO is also a good idea. See

http://www.win.tue.nl/~aeb/linux/Large-Disk.html

especially

http://www.win.tue.nl/~aeb/linux/Large-Disk-11.html#ss11.1

Let me quote:

======================================================================
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)). Usually this problem is solved by
setting the disk to Normal in the BIOS setup (or, even better, to None,
not mentioning it at all to the BIOS). If that is impossible because
you have to boot from it or use it also with DOS/Windows, and upgrading
to 2.2.2 or later is not an option, use kernel boot parameters.
======================================================================

So, you might add "hda=1869,255,63" to the kernel boot parameters
(where I computed 1869 as 15377080320/(63*255*512)) and that will
probably do the trick. If not, please mention kernel version and
kernel boot messages.

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/