Saturday, June 8, 2013

How to move your linux (archlinux) installation to a new hdd

There are several methods to do this. This method simply copies all files from HDDold to HDDnew, reinstalles the bootloader and that it.
1. Boot a livecd (archlinux install iso will do ("loadkeys de" to 
     switch keyboard layout))
2. mount /dev/sdOLD /mnt/old (ex. /dev/sda1) (fdisk -l)
3. mount /dev/sdNEW /mnt/new (ex. /dev/sdb1)
4. cp -rav /mnt/old/* /mnt/new
4.1 Or you can use rsync: rsync -avH /mnt/old/ /mnt/new/
    rsync can exclude directories:
    rsync -avH --exclude '/mnt/old/home/porn' /mnt/old/ /mnt/new/
5. umount /mnt/old
Thats it for now, all files are on our new disk.
(If you are on archlinux and use syslinux as your bootloader of choice you can skip 6.1 - 6.5)

We now have to chroot into our new copy to be able to install grub.
6.1. mount -o bind /dev /mnt/new/dev
6.2. mount -t proc none /mnt/new/proc
6.3. chroot /mnt/new /bin/bash
Grub installation:
6.4. grub-install /dev/sdNEW
6.5. exit
Syslinux installation:
(make sure you are not in a chroot environment. The archlinux syslinux script supports installing syslinux in a mounted linux environment.)

7.1.  syslinux-install_update -a -i -m -c /mnt/new
Thats it, we are done.

8. Exit and reboot
Make sure to remove your old harddrive and put the new one to the same SATA port, so it will get the same device name in linux.