Copy Linux to a new Harddisk
In the following howto i assume that sda is your source drive and sdb is your target drive.. please make sure not to mix this up in your setup! also i assume that your operating system disk has three partitions, sda1 as /boot, sda2 as swap and sda3 as /
- stop any running services like apache, mysql etc. on the source system. or even better, boot from a live linux and work from there..
- partition and format the new harddisk
- parted /dev/sda –> print shows the current partitions of sda including their sizes.. that should help :)
- create mountpoints for source and target
mkdir /tmp/source mkdir /tmp/target
- mount source and targed partitions:
mount /dev/sda3 /tmp/source mount /dev/sda1 /tmp/source/boot mount /dev/sdb3 /tmp/target mkdir /tmp/target/boot mount /dev/sdb1 /tmp/target/boot
- now copy the os:
rsync -aHvx --numeric-ids /tmp/source /tmp/target
- edit /tmp/target/etc/fstab and /tmp/target/boot/grub/menu.lst and update UUID according to harddisks_by_uuid_in_debian_lenny
- chroot to the target drive and install grub:
mount --bind /dev/ /tmp/target/dev mount --bind /sys/ /tmp/target/sys mount --bind /proc/ /tmp/target/proc chroot /tmp/target grub-install /dev/sdb update-grub grub find /boot/grub/menulst
(if you have an own partiton for boot, you can leave boot away in the above command)
root (hd0,0) setup (hd0)
- if you are moving your installation to new hardware (other than just the harddisk) you might need to update your initrd image to contain the necessary drivers (i.e. in redhat based systems). run
dracut
- reboot your system