Wie kann ich unter Linux ein Backup meiner Festplatte derart machen, dass ich statt der alten einfach von der neuen Festplatte booten muss, um das Backup statt der originalen Version nutzen zu können? Ich verwende ein IBM Thinkpad T23.

April 15th, 2008 by matthias

Für eine physische Kopie verwende man im Single-User-Mode:

  1. mount /mountpoint-of-old-disk -oremount,ro
  2. dd if=/dev/old-disk-dev of=/dev/new-disk-dev

Dabei ist anschließend dringend ein »fsck.ext3 -f -y -C 0 /dev/sdb7« zu empfehlen, denn wenn dd für eine gemountete Partition ausgeführt wird können so Inkonsistenzen durch Veränderung während des Kopierens auftreten.

Konkret bei meinem eigenen IBM Thinkpad T23:

  1. mount -f / -oremount,ro;
  2.   mount -f /home -oremount,ro;
  3.   mount -f /media/space -oremount,ro;
  4.   dd if=/dev/hda of=/dev/hdc;

Ergebnis der Kopie einer 40GB-Festplatte in einem IBM Thinkpad T23:

  1. 78140160+0 records in
  2.   78140160+0 records out
  3.   40007761920 bytes transferred in 7496.667307 seconds (5336740 bytes/sec)

Um während des Kopierprozesses den Fortschritt zu beobachten, verwende man:

  1. kill -USR1
  2. Dabei wird wohl die Partitionstabelle auf der neuen Festplatte durcheinander kommen – nämlich anschließend genauso sein wie auf der alten Festplatte. Ist die neue Festplatte größer als die alte, gibt es also ungenutzten Platz. Aber die neue Festplatte kann genauso verwendet werden wie die alte bisher – eine größere Festplatte für das Backup zu nutzen ist völlig in Ordnung. Man kann in das GRUB-Bootmenü vor dem Backup die Kernel beider Platten eintragen. So kann man einfach ohne hardwaremäßig Umbauten im Bedarfsfall das System von der zweiten Festplatte booten. Diese Eintragungen sind notwendig, egal ob das GRUB-Bootmenü nun von der ersten Platte oder direkt von der zweiten Platte gestartet wurde. Um wirklich das gesamte System von der zweiten Platte laufen zu lassen, muss auch /etc/fstab und andere Dateien wo auf das Device der ersten Platte verwiesen wird angepasst werden. Es ist jedoch nicht notwendig, dies zu tun: die Kopie soll ja nur Backup sein; einzelne verloren gegangene Dateien kann man nach Mounten der Platte kopieren; bei einem Headcrash der ersten Platte (sehr seltener Fall) ist es nicht zu zeitaufwändig, die erste Platte hardwaremäßig gegen ihre Kopie auszutauschen.
  3.  
  4. Besonders zu beachten beim IBM Thinkpad T23 unter Linux: anders als optische Laufwerke kann eine zweite Festplatte nicht während des Betriebs entfernt oder eingesetzt werden (Signalton kommt als Beschwerde). Man muss also immer mit der zweiten Festplatte booten, um ein Backup zu machen oder das Backup für Recovery-Zwecke zu nutzen. Nach einem Kopieren der ersten Festplatte mit dd muss Linux neu gestartet werden, wenn sich die Patitionstabelle der zweiten Festplatte dabei geändert hat. Andernfalls stehen die Partitionen der zweiten Festplatte (also z.B. /dev/hdc5, /dev/hdc6) nicht als block devices zur Verfügung.
  5.  
  6. Um das Backup zu automatisieren, kann man sich ein Skript schreiben, das nach einem Bootvorgang automatisch ausgeführt wird und mit dd das Backup von /dev/hda auf /dev/hdc ausführt, sofern /dev/hdc die zweite Festplatte ist. Danach startet das Notebook neu (um geänderte Partitionstabellen zu berücksichtigen), mounted das Backup, verifiziert es. Anschließend schaltet sich das Notebook aus. Beim nächsten Einschalten (also wohl am folgenden Tag nach dem nächtlichen automatischen Backup) meldet es beim Booten, ob das letzte Backup gelungen ist oder eben nicht.
  7.  
  8. dd kopiert auch leere Bereiche mit. Deshalb kann eine Lösung mit tar (wodurch eine logische Kopie angefertigt wird) besser sein, weil schneller:
  9.  
  10. <pre lang="bash">tar –preserve –one-file-system -cf – | (cd /mountpoint ; tar –preserve -xf -)

Der Prozess dazu:

  • Von einer Rettungsdisk oder Rettungs-CD booten.
  • Beide Laufwerke mounten. Das zweite Laufwerk, auf dass das Backup gespeichert werden soll, muss partitioniert und formatiert sein. Und zwar am besten völlig identisch zum ersten.
  • Mit cd zum ersten Laufwerk wechseln.
  • Das oben angegebene tar-Kommando ausführen.
  • Als superuser aus dem zweiten Laufwerk ausführen: /sbin/lilo oder was sonst notwendig ist um den Boot-record auf dem neuen Laufwerk zu erstellen.
  • Test.

Eine professionelle Variante sind dann noch Software-RAID Systeme unter Linux, wobei man einfach einen Teil des RAID Mirrors entfernt nachdem er erstellt worden ist:
linas.org/linux/Software-RAID/Software-RAID-3.html , Frage 10.
Und »hot detachable backups« mit LVM.

Quellen:

  • http://mirror.hamakor.org.il/archives/linux-il/12-2003/7516.html
  • http://mirror.hamakor.org.il/archives/linux-il/12-2003/7518.html
  • http://mirror.hamakor.org.il/archives/linux-il/12-2003/7523.html

Posted in Debian Linux, ThinkPad T23 | No Comments »

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.