Boosting Performance with SSD Storage

I've got a couple of old computers, 3.2 GHz P4 HT, with 2-4 GB of RAM. They're old yet plenty fast enough even for development, using Win XP or Linux. I installed an SSD hard drive to boost performance and it made a big improvement. Biggest performance improvement I've ever seen, even more than adding RAM to a memory constrained system. Here's how I did it.

HOW BIG?

90% of the benefit of an SSD comes from having the operating system & executables on it. This is true both of Windows and Linux. Both systems were Grub dual boot Win XP and Ubuntu Linux. 64 GB is just the right size for this: About 30 GB for each operating system, with 1-2 GB left for a swap file.

Fine-tuning: If you run Linux, putting your home directory on an SSD makes a big boost because it's full of small text files that are frequently read. It's not necessarily the read and write speeds, though these are much faster than a conventional hard drive, it's the virtually instant seek time that really makes the difference. If you have big files under your home directory, and you don't want to waste limited, expensive SSD storage on them, move them to a conventional disk partition and soft link them.

HARDWARE

For both computers I used a Crucial M4 64 GB drive, which you can find for around $70. Open up the computer and plug it in, both power and data. Do not use slot 0, which already has the system boot drive; use a higher unused slot. You will plug it into slot 0 later, after it is set up.

BIOS

On these computers, there are 4 SATA drive slots that are individually enabled in the BIOS. Do not enable them in the BIOS. When I did, the computer failed to start up. I couldn't even get to the BIOS setup screen. I can only guess that the drive must have a partition table before you enable it in the BIOS.

PARTITIONING

I used GPartEd to create the partitions and copy data from the Win XP and Linux partitions that already existed on the conventional hard drives. The partitioning scheme was simple:

  • 30 GB: primary, formatted NTFS, boot flag
  • 32 GB: extended partition, containing the following 2 partitions:
  • 30 GB: logical parititon, formatted ext4, no flags
  • 2 GB: logical partition, formatted swap, no flags
  • Your new SSD is now ready to use.

    NOTE: GPartEd is a great tool that can do many things, including resize and move partitions while preserving their data.

    HARDWARE

    Open the computer and plug the SSD into slot 0. Move the drive that was in slot 0 to a different slot.

    BIOS

    In the BIOS, enable all slots that have drives in them.

    WIN XP

    Boot the machine - it should go straight to Win XP. Windows may have reassigned the boot drive to a letter other than C:. Change it back to C:, which requires a registry hack. Reboot to Win XP, now as drive C:. Go to the SSD mfr's site, download & install the latest firmware for your SSD. For the Crucial M4, the firmware update only worked on Win 7, which I didn't have. But they also provided an ISO to burn a small bootable CD that can be used to update the drive firmware on any system.

    RESTORE GRUB

    You can do this from either of 2 bootable CDs: GPartEd or Ubuntu Boot Repair CD. NOTE: both are essential bootable CDs to keep around for various tasks. For restoring GRUB, both can work but the latter is easier.

    Tasks you must do that may not be obvious:

  • Assign new blkids. When GPartEd copies partition data it copies the blkid too. This confuses everything and you need to assign a new one manually. For example, the command: "tune2fs /dev/sda5 -U `uuid`".
  • Mount the new SSD and edit /etc/fstab to reflect changes to the device names.
  • Ensure /tmp has mode 777, else you won't be able to log in to the GUI (though you can hit Ctrl-Alt-F1 and log in using text mode).