Number 198 - November 1999
A Hard Drive Story
By Carl Tenning, Tacoma Open Group for Microcomputers
    Some time ago I had installed a spare 1.0 GB hard drive in my main computer (the upstairs one). The purpose of installing it in my main computer was to use it for backup purposes. I used it for no other purpose than to keep backup copies of files from the primary hard drive. The primary hard drive was a Western Digital 3.5 GB and the 1.0 GB Seagate (ST31220A Medalist 1080) was the slave. This computer operated on Windows 98, so both drives were each formatted as single logical drives with a 32-bit FAT.

   Just recently, the 1.0 GB slave hard drives started reporting errors by triggering the surface analysis scan in Scandisk. So, with the declining prices of hard drives, I decided it was time to purchase one of the really big ones. I found a Western Digital 8.4 GB hard drive for just $119 (actually there a lot bigger ones, but this was enough for me). The plan was to install it as the only drive in my main computer after transferring all of the contents from the previous primary hard drive onto the new hard drive. PowerQuest's DriveCopy did the job almost effortlessly in about two to three hours. The only work on my part was to set the primary/slave jumpers as marked on the back of the drives. The way it is instructed by DriveCopy is to set the original (source drive) as the slave and the new drive (target drive) as the primary and then boot the computer from floppy disk. The boot floppy is then removed and DriveCopy is run from a floppy. It worked perfectly. The original drive was then removed and the new drive jumpered for single drive operation. It worked.

    At this point I had two spare drives, a Western Digital 3.5 GB hard drive and a Seagate 1.0 GB hard drive. I wanted to put the 1.0 GB drive in an old 486 machine operating on Windows 3.1. Now since the 1.0 GB drive was previously formatted to FAT32, I knew that it needed to be repartitioned and reformatted to FAT16 to be operable under Windows 3.1. In hindsight, I realize now that I should have done this before removing it from the Windows 98 machine because trying to FDISK this drive on the Windows 3.1/DOS 6.2 machine proved to be somewhat of a problem. Under DOS 6.2 (and probably any earlier DOS) FDISK reported that the entire drive was a non-DOS partition. The non-DOS partition had to be removed before it could be partitioned for DOS 6.2. It seemed like FDISK would lock up trying to remove the non-DOS partition. Alternatively, I tried PartitionMagic 2.0 to remove the non-DOS partition, but it reported the partition name as "UNAVAILABLE" and would not permit removing the partition. Under PartitionMagic 2.0 you cannot remove a partition unless you type in the name of the partition. Typing in "UNAVAILABLE" didn't work. Then I checked the manual for PartitionMagic 3.0 and found that it would allow typing in "NO NAME" under this circumstance. I Installed PartitionMagic 3.0 and tried that, but still without success. It still wouldn't remove the non-DOS partition. So now what!

    I tried FDISK again and this time instead of shutting down because I thought that FDISK had locked up, I let it run for several minutes. Finally FDISK finished whatever it was doing and terminated without having to press Ctrl-Alt-Del. After this, PartitionMagic 3.0 successfully deleted the non-DOS partition and went on to format the drive with three logical partitions all within a single extended DOS partition. I used only an extended partition so that the drive letters assigned by DOS on the first drive would not be changed. The first drive then had C, D, and E while the second drive came up F, G, and H.

    At this point it seemed like everything was solved. DOS was able to access all of the drive letters. Windows 3.1 acknowledged that the additional drive letters existed. But when Windows 3.1 tried to read one of the new drive letters, a warning message appeared that Windows was trying to access the drive in a manner that was not compatible with the drive and that it may cause the system to become unstable. Sure enough, Windows locked up. This required some research, so I went to the World Wide Web and searched for "drive lockup". What I found was that the 32-bit disk access in Windows 3.1 only supports Western Digital drives.
    While my first drive was a Western Digital, the second one wasn't. Apparently when Windows 3.1 was installed it detected the Western Digital drive and set 32-bit disk access active. Then when the Seagate drive was installed as the slave, Windows could not access it because the 32-bit access driver, WDCTRL, only supports Western Digital drives. [This in installed from the SYSTEM.INI file by the following statements under [386 Enh] Section: device=3D*int13 and device=3D*wdctrl.] I then searched the web for a Seagate 32-bit driver and found one. But when trying to install it I found that Windows would not accept it because it conflicted with the WDCTRL driver. The reason is that since both drives are on the same IDE cable, only one driver can be active. The only solution was to disable 32-bit disk access, which is done from the Control Panel,

    386 Enhanced,
    Virtual Memory,
    Change,
    Uncheck the "Use 32-Bit Disk Access" box.

    With this change Windows 3.1 could access both physical drives and could copy files from one to another. But all was not coming up roses yet.

    The big surprise came when I ran an old Central Point Computing utility called "Optimizer". It displays a cluster map something like SCANDISK. The surprise was that about a third of the clusters contained bad sectors. So I tried SpinRite from Gibson Research to see if they could be recovered. However, things only got worse; SpinRite found even more bad sectors. Maybe you have guessed by now that there was something else basically wrong. There was. It was in the CMOS drive setup. Something else that I should have done before removing the drive from the previous computer was to manually record the drive cylinder, head and sector values. While the newest computer BIOS's can detect these values automatically, the old 486 machine did not. Unfortunately, this information was not printed on the drive label, or at least it was not visible with the drive installed inside the computer. I was, however, able to find this information from the Seagate page of the World Wide Web. The first page of the ST31220A data sheet gave the values as follows:

    Cylinders: 524
    Heads: 64
    Sectors: 63

    So these are the values which I had entered into the CMOS setup. It happened to be MR BIOS v1.66 (1994) by Microid Research, Inc. Now, drives with more than 1024 cylinders and more than 528MB require LBA translation. While this BIOS is capable of LBA translation (the first hard drive is 1048 cylinders and 528MB), it would not allow the LBA translation for the second drive because the cylinder count for that drive was less than the 1024 requirement.

    Finally, the solution: In the details of the data sheet it gave the actual physical number of cylinders as 3,876 and 6 physical heads. These values did not do well in the CMOS setup, but on the back page of the ST31220A data sheet were some alternate settings. The one which finally worked was:

    Cylinders: 2099
    Heads: 16
    Sectors: 63

    With these values, the BIOS accepted the LBA translation. At this point the partitioning and formatting operations had to begin all over again. First I ran FDISK to remove the old partitions and set a single new extended DOS partition. The extended DOS partition was then set with three logical partitions. Next each partition was formatted using FORMAT. Finally when I booted this configuration and went into Windows 3.1, the "Optimizer" utility showed no bad sectors. Just to be sure, I now ran SpinRite on each of the three logical drive letters and it found only three bad sectors, which it the blocked out. Running "Optimizer" again confirmed the three bad sectors. Well, I made a lot of mistakes and sometimes got thoroughly confused, but I certainly learned something in the process. End of story.
  Number 198 - November 1999