<> = Introduction = 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 physical medium used in an SSD can only be written a limited number of times, but modern/decent drives do wear levelling so this is not a concern. 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.<
> = Preparation = 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. 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/. }}} = Backup = 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 * }}} = Installation = 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 }}} = Configuration = 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. = Benchmarks = 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 }}} = Links = * http://wiki.ubuntuusers.de/SSD/Auslagerung (German Wiki) = See also = * [[SSDoptimization|SSD optimization]] ''Author of this page: Karsten''