Install/mount problems with TP770Z/14.1Gb HD

Rob Mayoff linux-thinkpad@www.bm-soft.com
Fri, 9 Jul 1999 16:51:43 -0500 (CDT)


| I have a TP770Z (9549-8AU) that comes with a 14.1Gb HD. When I try
| to install RedHat 6.0 on this machine (or mount partitions on that
| drive), I get a message indicating a "Partition Error: Unable to read
| file or directory". Has anyone else encountered this, and/or found a
| fix. RedHat 6.0 installed fine on my 8.0Gb HD.

I've encountered it.  What did you use to partition your disk and what
are the partitions?

There are two possible problems. The first, easiest one to handle is
the possibility that the kernel doesn't correctly detect the drive
geometry. I installed Mandrake 6.0, which I believe uses a later kernel
than Redhat 6.0; the Mandrake kernel (2.2.9) does detect the geometry
correctly. However, the older Redhat kernel might not (I don't know when
the kernel was fixed to recognize the IBM 14.1GB drive).

You should be able to figure it out. When the kernel boots, I think it
prints the disk geometry. It'll probably scroll by before you get a good
look, but pressing PgUp should let you see it. If that doesn't work, get
to the "second-stage install", which I think starts by asking if you're
installing or upgrading. Then you should be able to press Alt-F2 to get
a shell prompt. As I recall, the install-time kernel supports /proc, so
just "cat /proc/ide/ide0/hda/geometry".  The logical geometry is the one
that matters.  If it says 1024/240/63, it's broken.  If it says
1826/240/63, you're a big winner.

If it's broken, you'll want to add a parameter to your boot command to
tell the kernel the drive size:

LILO: linux hda=1826,240,63

If this fixes your problem, please let us know.

The other possible problem stems from having more than one partition
ending above the 1024-cylinder boundary. For example, here's my
partition table:

Disk /dev/hda: 240 heads, 63 sectors, 1826 cylinders
Units = cylinders of 15120 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *        18       441   3205408+   b  Win95 FAT32
/dev/hda2             1        17    128488+  83  Linux
/dev/hda3           442      1825  10463040    5  Extended
/dev/hda5           442       864   3197848+  83  Linux
/dev/hda6           865       881    128488+  82  Linux swap
/dev/hda7           882       915    257008+  83  Linux
/dev/hda8           916       949    257008+  83  Linux
/dev/hda9           950      1491   4097488+  83  Linux
/dev/hda10         1492      1825   2525008+   b  Win95 FAT32

Note that hda9 and hda10 both end above the 1024-cylinder mark. Here's
another view of the partition table is this:

Disk /dev/hda: 240 heads, 63 sectors, 1826 cylinders

Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID
 1 80   1   1   17 239  63  440  257103 6410817 0b
 2 00   1   1    0 239  63   16      63  256977 83
 3 00   0   1  441 239  63 1022 666792020926080 05
 4 00   0   0    0   0   0    0       0       0 00
 5 00   1   1  441 239  63  863      63 6395697 83
 6 00   1   1  864 239  63  880      63  256977 82
 7 00   1   1  881 239  63  914      63  514017 83
 8 00   1   1  915 239  63  948      63  514017 83
 9 00   1   1  949 239  63 1023      63 8194977 83
10 00 239  63 1023 239  63 1023      63 5050017 0b

Notice that hda9 ends at 1023/239/63 and hda10 starts AND ends at
1023/239/63. That's because the partition table can't actually store
a cylinder number above 1023. Fortunately, it also stores LBA sector
numbers (that's the Start and Size columns), which accurately represent
the cylinders. All modern OS's use the LBA sector numbers. (Note that
fdisk is stupid about how it prints the partition table; all those
partitions don't REALLY start at LBA sector 63).

So anyway, I think Disk Druid barfs when it sees the hda9 and hda10
overlapping. The best thing, if you don't have anything on your high
partition(s), or you can back them up, is to delete any extra partitions
that are above the 1024-cylinder mark. In my case, that would only be
hda10 - I can leave hda9 as the only partition above 1024 cylinders.
Then Disk Druid should work. After you finish installing, you can
recreate the partition and restore/move stuff onto it.

Note that even if you choose the fdisk option during the install, you
still end up using Disk Druid to assign mount points to your partitions.
I spent several hours trying to find a workaround.

If you are wizardly enough, you can do it the way I did: I edited my
partition table with a hex editor to hide my high partitions, then
upgraded to Mandrake 6.0, then restored the unedited partition table.
This was only feasible because my hda9 and hda10 contain only my home
directory and my MP3's, so I didn't need them online during the install.

Good luck!