Hard disk upgrade on an old motherboard

Hardware either works or does not work. Two pieces of hardware are either compatible or icompatible. This is the rule. However, when the incompatibility-gap between the two pieces of hardware is small, there is almost always a way to make these two pieces work together as if they were fully compatible. This generally involves the use of one of the various types of adapters or converters. But, it may happen that the adapter is not 100% compatible with the rest of the hardware! So, what comes next in such cases? An adapter for the adapter maybe? Fortunately, in my case it was a small piece of software that came to the rescue and saved my day.

The issue

Last weekend, I decided to replace the two 10-year-old Quantum hard disks, which have heroicly powered my home server for the last years, with a newer Serial ATA hard drive. The goal was to buy more drives and build a RAID 5 environment, if all went well with the first HDD. The motherboard is an old QDI Brilliant 1s (440BX chipset) board using the “latest” beta BIOS. Serial ATA controllers are not on this mobo’s feature list, so I bought a Serial ATA controller PCI card – Sunix SATA2100 – together with the drive. I should mention that I bought both items from a local retailer. The controller’s package had a penguin on it, so I thought that the linux kernel would have no problems working with the controller’s chipset. I was badly misled! The card’s chipset, INITIO INI1622, is not supported by the kernel.

So, I had that card replaced for another SATA controller from eQuip. I don’t really remember the model, as I returned this card as quickly as possible, because it was not compatible with the motherboard’s PCI specification and the pc froze while on the “Verifying DMI pool data...” boot stage. Apart from that, the card’s chipset (by Silicon Image) was recognized properly by the linux kernel – I had it checked on another machine.

So, I had to return that card too. The retailer did not sell any other brands, but would not refund me either! So, I decided to buy an IDE ATA 133 controller instead. This was a Sunix card, but there was no clear information on the box about which model was inside. On the back, there were two small pictures of the 4700 (yellow board – iTE 8212F chipset) and the 3710 (green board – sil0680 chipset) models. On the front, there was a big picture of the 4700 model. Anyone who would have seen the box would bet that the included card was the 4700. But to my surprise, the card that was inside the box was neither 4700 nor 3710, but the 3700 model which carried the sil0680 chipset. This was a dissapointment as the 4700’s iTE chipset is better, but the important thing for me at that moment was that the card was working correctly under Linux. After this incident with the card’s package, I guess the best practice before buying a product from Sunix is to verify the package contents before you give away your money. Apart from the misleading box, I’d say that the card is of good quality and that it will definitely work with your old motherboards.

Although I had decided to settle with the IDE ATA 133 controller and use it with a Western Digital ATA 133 compatible HDD on the old machine, I still had the SATA hard disk from my initial purchase. I decided to use that disk on another pc, but still needed a PCI SATA controller. Fortunately, the second PC’s motherboard was not that old, so the only problem I had to face was if the controller’s chipset was supported by the Linux kernel. Of course, I wouldn’t buy such a card from the initial retailer again, so I went to a Media Market store and purchased a CN-033 SATA 2-port PCI card by Sitecom (chipset by Silicon Image – too lazy to check its exact model right now). It works flawlessly with the Linux kernel and the overall quality of the card and of the included cables was by far better than the quality of the cards by Sunix or eQuip. Of course I tried this card on the old motherboard too, but it would not go past the “Verifying DMI pool data …” stage either.

Hardcore Games with Hardware

So, the IDE ATA 133 PCI Controller from Sunix was supported by the kernel and everything seemed all right, but there were still some serious incompatibility issues with the QDI BX440 motherboard that needed to be addressed before I would be able to install Fedora 7 on the new hard disk. In short:

  1. The QDI motherboard could not boot from any hard disk connected on the PCI controller.
  2. It was required that a hard disk was connected to the onboard IDE channel, otherwise the pc froze at the f’n “Verifying DMI pool data ...” stage, like it happened with the other cards.
  3. Even if there was a hard disk connected to the onboard IDE controller, the motherboard could not boot from the CD-ROM drive if another hard disk was connected to the PCI IDE controller.
  4. The hard disk which I intended to use on that machine would not work if it was connected to the onboard IDE controllers. It seems that the ATA 133 HDD had difficulties working on an old ATA 33-only channel.

Under such complicated conditions, the only way to install a Linux distribution on a hard disk of newer technology than my old Quantums, was to:

  1. Disconnect the Western Digital hard disk from the PCI controller and leave an old Quantum HDD on the onboard IDE channel.
  2. Adjust the boot device sequence, so that the mobo boots from the CDROM device.
  3. Install Linux on the old HDD.
  4. Power-off and connect the newer HDD on the PCI controller.
  5. Move the Linux installation from the old HDD to the new one.

The move of the Linux installation would be possible by following the steps of a tutorial like the “Hard-Disk Upgrade HOWTO“, if old-school partitions were used, or, in the case of LVM partitions, the move could be easily performed with the following procedure:

  1. Having connected the new HDD, I would initialize the free space as a physical volume, so it could be used in an LVM setup.
  2. Then I’d add this new physical volume to the existing Volume Group, eg: vgextend volume_group /dev/sdb
  3. Finally, I would use the pvmove utility in order to move the data from the old physical volume (on the Quantum HDD) to the new physical volume (WD HDD), eg: pvmove sda sdb

One may think of other ways too, but these will do. For those of you who do not feel very comfortable with moving your installation around, read on…

Smart Boot Manager

One may wonder why I didn’t use Smart Boot Manager, which can boot the machine from any connected device, instead of doing all of this monkey stuff.

The reason is simple. The smart-boot-manager image, which is available from the project’s website, does not work for me. I tried to boot that image in qemu without success. On the other hand, smart-boot-manager images are all over the web, but… would you ever write an image, which has been downloaded from Mr.Unknown‘s home page, to your server’s hard disk Master Boot Record? I would never do that, even if I had to do twice as much monkey stuff as I have described above!

Fortunately, I soon found out that a smart-boot-manager image is included in a source that I can fully trust; in the Ubuntu ISO image, under the install directory, you will find: sbm.bin

This worked OK under QEMU:

# qemu -m 64 sbm.bin

So, after all this, here is what I did in order to install Fedora 7 directly on the new hard disk, which was connected to the PCI IDE controller.

  1. First, I removed the HDD from the PCI controller and left only the HDD on the onboard IDE controller.
  2. I set the boot sequence so that it boots from the cdrom.
  3. I used the Ubuntu CD in order to get to a console.
  4. I wrote the smart boot manager image to the Quantum hard-disk with: dd if=sbm.bin of=/dev/hda
  5. Powered-off the system and connected the new HDD to the PCI controller.
  6. I adjusted the boot sequence so to boot from the HDD on the onboard controller.
  7. Put the Fedora Rescue CD in the CDROM drive.
  8. Reboot the machine. At the Smart-Boot-Manager menu, I selected the CDROM option.
  9. IU performed a network installation and used 100MB of the HDD on the onboard controller for the /boot partition and the new disk for the rest of the system partitions using LVM.

Hardware manufacturers have managed to transform me to a monkey for a couple of days. I have wasted time and money and I still cannot decide about who I am supposed to blame for this mess.

PS: It seems that the good old Quantum HDDs will stay on duty ;)

Hard disk upgrade on an old motherboard by George Notaras is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Copyright © 2007 - Some Rights Reserved

George Notaras avatar

About George Notaras

George Notaras is the editor of the G-Loaded Journal, a technical blog about Free and Open-Source Software. George, among other things, is an enthusiast self-taught GNU/Linux system administrator. He has created this web site to share the IT knowledge and experience he has gained over the years with other people. George primarily uses CentOS and Fedora. He has also developed some open-source software projects in his spare time.