Using a solid state drive (SSD) can speed up your system by about 200%.
The reason is that a SSD has a reading speed that is higher than a hard disk and it has a average access time of only 0.2ms.
The problem is that a SSD can only be written up to about 10,000 times like every device using "flash" memory.
This is why disk writes on the same blocks should be avoided whenever possible.
This page describes how to migrate from an hard disk to a SSD. Note that this page describes one way of doing so - there are other ways to do this.
To copy your running hard disk installation to the SSD, you must do it when it is unmounted (this means, inaccessible to the user and the operating system).
You will have to download, burn to a CD, DVD or USB drive then boot a "Live" version of some GNU/Linux distribution such as Debian, although any distribution should work, to do the steps described here.
WARNING: be very careful when doing this, and note that the partition and drive names will almost always differ from this page!
Most of the write processes will be done in the /home directory by several applications.
The rest of the permanent write operations will be done by the system in the /var directory.
There are some other writes in the boot process, but this will happen only once you boot or shutdown, so normally it will take a lot of time (say, at least a year or two) to get to the 10,000 disk writes.
This example hard disk installation of Debian is on /dev/sda1 - it is mounted now under /media/sda1.
The SSD is on /dev/sdb1 - it is mounted now under /media/sdb1.
This installation's /srv directory is in a separate partition - it is mounted now under /media/sda7.
One would want to permanently mount the SSD under /ssd in that example hard disk installation. One would add this to their /etc/fstab:
# /dev/sdb1 SSD UUID=5c902625-e63e-446f-a5c5-c24a1176dec7 /ssd ext4 defaults 0 2
One can get the UUID's with the command blkid as root.
/dev/sdb1: LABEL="SSD" UUID="5c902625-e63e-446f-a5c5-c24a1176dec7" TYPE="ext4"
Now, one would copy the /home and /var directory on the harddisk to the SSD.
One would these 2 directories to the path /srv/ssd.
mkdir /media/sda7/ssd cd /media/sda1 cp -pvr home /media/sda7/ssd/. cp -pvr var /media/sda7/ssd/.
It is generally a good idea to make a backup of the hard disk partition and use this backup on the SSD disk.
cd /media/sda1 mkdir /media/sda7/Backup tar cvfz /media/sda7/Backup/Backup_Debian_sda1_120907.tgz *
Unpack the backup now to the SSD:
cd media/sdb1 tar xvf /media/sda7/Backup/Backup_Debian_sda1_120907.tgz
Alternative to the backup you can copy the installation direct to the SSD:
cd /media/sda1 cp -axv . /media/sdb1/.
Now we can delete the /home and /var on the SSD and replace it with links:
(Be careful to be on the right SSD-path!)
cd media/sdb1 rm -rf home ln -s /srv/ssd/home home rm -rf var ln -s /srv/ssd/var var
The final configuration is to adapt the config files to the SSD drive.
One must edit the /media/sdb1/etc/fstab and alter the mountpoint of the root path:
UUID=5c902625-e63e-446f-a5c5-c24a1176dec7 / ext4 errors=remount-ro 0 1
This was the main stuff for the migration.
Now you must look to boot from your SSD drive.
It is possible to boot grub from your harddisk or from the SSD.
Now you should boot your normal Debian installation again.
Run grub-update as root to get the SSD in your boot list.
At this time there is a bug in the grub-generator, so you should fix the wrong UUID.
I opened a bug for it with a description of the error: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686754
It is a good idea to update the initrd.img as root now.
update-initramfs -t -u
With the correct /boot/grub/grub.cfg you can boot from your harddisk the SSD now.
When you want to boot from the SSD, you can alter it with this steps in the running harddisk installation:
Copy the /boot/grub/grub.cfg to the SSD as root:
cp /boot/grub/grub.cfg /ssd/boot/grub/grub.cfg
Now you must install the grub on the SSD via chroot:
mount --bind /dev /ssd/dev mount --bind /proc /ssd/proc chroot /ssd grub-install /dev/sdb
Normally you have to change the settings in your BIOS to boot from the SSD.
You should be able to boot the SSD now.
After you have booted, don't forget to update the initrd.img on the SSD either.
You can get an idea of the performance increase trying these benchmarks:
root@PC# echo 3 > /proc/sys/vm/drop_caches root@PC# hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 7216 MB in 2.00 seconds = 3609.64 MB/sec Timing buffered disk reads: 292 MB in 3.01 seconds = 96.91 MB/sec root@PC# hdparm -Tt /dev/sdb /dev/sdb: Timing cached reads: 7138 MB in 2.00 seconds = 3570.42 MB/sec Timing buffered disk reads: 464 MB in 3.00 seconds = 154.51 MB/sec
The reads from the disks may not reflect the reality, because you read from the cache of the disks.
You should have a close look to the read-speeds of the SSD disks, because the speed is dependent on the disk size.
8GB | 16GB | 32GB | 64GB | 128GB | 256GB 128MB/S | 117MB/S | 145MB/S | 153MB/S | 158MB/S | 160MB/S
This was measaured using Debian Wheezy with KDE.
First the time booting from hitting Enter in GRUB up to the point the Login appear.
Then the time hitting Enter for the password up to the last sound starting KDE.
Boot Start OS Total Condition 26.2 30.2 56,4 Booting from harddisk 26.7 33.3 60 Booting from harddisk with symbolic links for /home and /var 15.1 16,9 32 Booting from SSD
http://wiki.ubuntuusers.de/SSD/Auslagerung (German Wiki)
Author of this page: Karsten