Linux-Partition umkopieren

In der Anleitung des letzten Artikels wurde beschrieben, wie man eine Windows-Installation auf eine andere Festplatte spiegeln kann, in diesem kleinen HowTo geht es nun um Linux. Im Gegensatz zu Windows kann ein Linux-System recht problemlos kopiert und meist auch von anderer Hardware hochgefahren werden. Es ist hierbei nicht notwendig, die Platte/Partition direkt zu spiegeln und man kann so auf den langwierigen Kopiervorgang per dd verzichten. Angenommen, fdisk -l gibt in etwa folgende Ausgabe:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x01d201d2

Device Boot Start End Blocks Id System
/dev/sda1 * 1 3939 31639986 7 HPFS/NTFS
/dev/sda2 3940 4331 3148740 82 Linux swap / Solaris
/dev/sda3 4332 60801 453595275 83 Linux

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 3939 31639986 7 HPFS/NTFS
/dev/sdb2 3940 4437 4000185 82 Linux swap / Solaris
/dev/sdb3 4438 30401 208555830 83 Linux

Möchte man nun die Linux-Installation von sda3 nach sdb3 kopieren, gibt man hintereinander folgende Befehle (als User root oder mit vorgesetztem sudo) ein:
mount /dev/sdb3 /mnt/
rsync -ahv --progress /boot/ /mnt/boot/
rsync -ahv --progress /usr/ /mnt/usr/
rsync -ahv --progress /etc/ /mnt/etc/
rsync -ahv --progress /var/ /mnt/var/
rsync -ahv --progress /bin/ /mnt/bin/
rsync -ahv --progress /sbin/ /mnt/sbin/
rsync -ahv --progress /root/ /mnt/root/
rsync -ahv --progress /opt/ /mnt/opt/
rsync -ahv --progress /lib/ /mnt/lib/
rsync -ahv --progress /tmp/ /mnt/tmp/
rsync -ahv --progress /emul/ /mnt/emul/
rsync -ahv --progress /home/ /mnt/home/
rsync -ahv --progress /media/ /mnt/media/
rsync -ahv /cdrom /mnt/
rsync -ahv /lib32 /mnt/
rsync -ahv /lib64 /mnt/
rsync -ahv /vmlinuz /mnt/
rsync -ahv /initrd.img /mnt/
mkdir /mnt/boot/
mkdir /mnt/data/
mkdir -p /mnt/dev/shm
mkdir /mnt/dev/pts
mkdir /mnt/mnt
mkdir -p /mnt/proc/bus/usb
mkdir /mnt/selinux
mkdir /mnt/srv
mkdir -p /mnt/sys/fs/fuse/connections
mount -o bind /dev /mnt/dev
mount -t proc /proc /mnt/proc
chroot /mnt/
vi /boot/grub/device.map

Dort ändert man die Zeile
(hd0) /dev/sda
in
(hd1) /dev/sdb

Wenn man schon beim Editieren ist, kann man evtl. noch vorhandene und nicht mehr benötigte Einträge aus dem Boot-Menü des Grub entfernen, indem man entsprechende Zeilen aus der Datei /boot/grub/menu.lst löscht.

Anschließend installiert man den Grub in den MBR:
# grub-install /dev/sdb
# update-grub
# exit

Damit sollte der Kopiervorgang abgeschlossen sein. Nach dem Ausbau der alten Platte müsste nunmehr die Kopie hochfahren.

Hinweis:
Falls man irgendwelche besonderen Dienste zu laufen hat, deren Daten sich nicht im laufenden Betrieb problemlos kopieren lassen, dann müssen diese vor dem rsync-Kopiervorgang beendet werden. Relevant ist hierbei in der Regel das Verzeichnis /var. Dort “stören” z.B. MySQL (/var/lib/mysql) oder auch VMware (/var/lib/vmware). Beendet werden solche Prozesse wie üblich per Init-Script, also z.B. für MySQL per /etc/init.d/mysql stop.

Eine Reaktion zu “Linux-Partition umkopieren”

  1. admin

    Da ich es mal wieder bei einer Servermigration geschafft habe, die Swap- und die Boot-Partition zu verdrehen und nach dem grub-install die meist auf genau dies hinweisende Fehlermeldung The file boot grub stage1 not read correctly. erhielt, hier noch eine Minianleitung zu diesem Problemchen:

    Fehlermeldung The file boot grub stage1 not read correctly.
    An der Stelle guckt man noch mal kurz per fdisk nach der Partition, von der aus gebootet werden soll und anschließend überredet man den Grub über die Grub-Konsole dazu, die richtige Partition zu verwenden.
    # fdisk -l
    # grub
    > root (hd0,1)
    > setup (hd0)
    > quit

    In diesem Beispiel wurde sda2 als Bootpartition konfiguriert. Das (hd0,1) ergibt sich hierbei aus der 2. Partition auf der 1. Platte - aber bei 0 beginnend zu zählen, also jeweils -1.

Einen Kommentar schreiben