> I had recently three different PCs that ended up with a
> corrupt partition table. Two of them were OS/2 PCs, one was
> a WfW PC. First I was not suspicious since it occured during
> the Merlin installation. I installed Merlin just fine, but
> after some time my spooler got messed up, command line
> sessions hung, etc., so I decided to reinstall Merlin. When
> I tried to reinstall it told me I did not have 35MB free
> space and it started FDISK. FDISK showed an incredibly
> messed up partition table.
When I installed Merlin and tried to reboot during the install, my machine
wouldn't boot. I got a message from my BIOS that the partition table on my
hard drive was corrupted. This message appeared if I powered off and on again.
Both our problems are caused by inconsistencies in how different OS's see the
numbers of heads and cylinders on the disks. My story will enlighten you
about how such problems can arise, even if the source of your problems is
different.
Last summer in preparation for installing Merlin and WinNT, I spend about 2
months playing with repartitioning, and investigating how OS/2, DOS and my
BIOS handle LBA and CHS with the DOS FDISK, the OS/2 FDISK and Partition
Magic. I've got all those problems well sorted out and am using a number of
OS's without problems.
My machine is currently set up with System Commander to boot MS DOS 6.2, PD
DOS 7, Win95, OS/2 2.1, OS/2 Warp for Windows, OS/2 Warp Connect and Merlin. I
have 3 EIDE hard drives, 1 GB, 2 GB and 1 GB. I installed Merlin on an HPFS
partition on the third hard drive.
My BIOS supports 4 hard drives (ASUS Pentium 166 machine) and I've got the
first two hard drives set up with LBA in the BIOS. Since OS/2 automatically
uses LBA for HD's connected to the first disk controller (controller 0), by
configuring the BIOS to use LBA, both DOS and OS/2 see 64 heads and the same
number of cylinders for drives 0 and 1.
Due to a bug in OS/2's disk drive IBM1S506.ADD, OS/2 cannot use LBA on disks
connected to other drive controllers. Hence, I configured my third hard drive
on disk controller 1 as CHS (16 heads), which means it has cylinders beyond
1023 which only OS/2 can use. This way, both DOS and OS/2 see the drive with
16 heads, which is as consistent as it is possible to get.
I set all this up with Partition Magic, which I run in both DOS and OS/2. My
setup gives me partition tables that are consistent when seen from DOS and
OS/2. This allows me to resize and move partitions from either DOS or OS/2.
The only limitation is that I cannot work with any partitions on my third hard
drive beyond cylinder 1023 when I run Partition Magic in DOS. I can if I run
it in OS/2.
I installed Merlin in an HPFS partition that uses roughly cylinders 500 to
1023 on my third hard drive. Since the BIOS must be able to load the MBR to
boot, this partition will only boot if it doesn't not go beyond cylinder 1023.
Merlin boots and runs just fine from my third hard drive, although I did have
those "corrupted partition table" messages during the install.
Now I'll explain what I did that produced the corrupted partition table
problem.
Before the first instal of Merlin, I had done disk partitioning from Warp
Connect using OS/2's FDISK. The partitions that I had set up in advance didn't
have to be changed during the install, other than to mark one installable.
Merlin installed flawlessly, however, SWAPPER.DAT ran out of space because I
only allowed 200 MB for Merlin and I installed everything including all the
Java stuff.
All the problems occurred during my second install of Merlin. I started the
second install by booting Warp Connect, running Partition Magic, and deleting
the old Merlin partition. Then I recreated the partition and resized it to 250
MB. Then I shut down and began the second intall of Merlin.
When I got to the point where Merlin ran FDISK so I could mark the partition
installable, all the partitioning that I had done in Partition Magic was gone.
FDISK just saw a lot of empty space. That's problem #1. Something's wrong.
The failure of FDISK to see that partition suggests that the Merlin install
programs FDISK might not be seeing the drive with the same number of heads
and cylinders as Partition Magic did.
I exited the install, rebooted with Warp Connect, and repartitioned again
using FDISK. Then I reran the install. This time, when the install ran FDISK,
the partitioning I had created in Warp Connect was there. So there seems to be
a problem when the partitioning is done with Partition Magic. Maybe it has
something to do with the fact that my third hard drive is on a second disk
controller and doesn't use LBA because of the bug in IBM1S506.ADD.
Partition Magic and the Warp Connect FDISK both see all my drives with the
same numbers of heads and cylinders. But the partition tables they write
are slightly different. OS/2's FDISK has a few quirks, which Partition Magic
complains about as minor errors in the partition tables. Perhaps those OS/2
FDISK quirks are what the Merlin install FDISK likes to see in order to accept
the prexisting partitioning.
Now to continue my story. I expected the rest of the install to be a repeat of
the first, which went very smoothly. No such luck. When the time came to
reboot during the install, the two installs were very different.
During the reboot of the first install, the System Commander menu came up. I
tried to continue the install by booting off the HPFS partition where I was
installing Merlin. That gave a "non-system disk" error. Then I tried again and
booted the Boot Manager partition. THat contined the install (without the BM
menu appearing.) So the install process appears to write a new boot record in
the BM partition which is supposed to be active. When the system boots BM, it
continues the install.
During the reboot of the second install, I got the "corrupted partition table"
error message from my BIOS.
Solution: I booted DOS from a floppy disk and found that I could still access
all my hard disk partitions. My data was still there. I ran the System
Commander Reinstall program. System Commander saves backup copies of the
partition tables and boot record. It recreated the boot record and fixed the
partition tables from its backup copies.
After that I rebooted. System Commander came up. I then booted Boot Manager.
That continued the install, and everything went fine after that. Merlin is
now working fine.
Now for the explanation. The second Merlin install seems to have corrupted the
partition tables on disk 0. The best way to explain this is that when FDISK
runs during the install, it sees a different number of heads and cylinders.
If it does anything that requires rewriting the partition tables, it writes
corrupted ones.
Perhaps FDISK got confused by the fact that hard drives 0 and 1 use LBA while
drive 2 uses CHS. On the second install I made some disk partition changes
that I didn't with the first install. On the second install, the partitiion
where I was installing Merlin on drive 2 was slighly too big. I had to
recreate that partition 1 MB smaller to get it below 1024 cylinders so I could
mark it installable. That should have written new partition tables for drive
2. However, FDISK corrupted the partition tables on drive 0. Why? Perhaps
repartitioning disk 2 caused FDISK to think that all my drives were using CHS.
Maybe it "refreshed" the partition tables for drive 0 using CHS instead of LBA
when it wrote the new MBR to the BM partition that is needed for the reboot
during the install.
The most reasonable explanation of these problems is that when FDISK runs
during the install of Merlin, it sees the drive with a different number of
heads than when I partitioned it. There is a simple way to check (which I
haven't done). Boot with the install disks. Go to a command line, and then run
the text mode OS/2 version of Partition Magic. Use PARTINFO.EXE to display the
partition tables. Modify them with FDISK and use partinfo to see if they new
ones have a different number of heads.
I'm pretty sure your partition table corruption is coming from inconsistent
setups between OS/2 and your BIOS. Maybe WfW is using 32-bit disk access that
is inconsistent with DOS and that is also corrupting your partition tables.
I hope this helps.
--
------------------------------------------------------------
Department of Chemistry | compuserve: 70740,3135
University of Alberta | ftp://hydra.chem.ualberta.ca
Edmonton AB, T6G 2G2, Canada
http://entropy.chem.ualberta.ca/faculty/clarke/home.htm