Backup und Restore mit partimage

Backup mit partimage
Wer kennt das nicht? Spätestens wenn eine Festplatte das Zeitliche gesegnet hat wünscht man sich eine zuverlässige Methode wie man ein installiertes Linux schnellstmöglich sichert und im Bedarfsfall wieder zurückspielen kann.

Mit Partimage hat man ein gutes Werkzeug an der Hand das genau dies ermöglicht.

Ein kleines Kochrezept

  • Boot mit Live-CD
  • Mounten des Speicherplatzes
  • Sichern des Partition-Layouts
  • Skript mit dem auf komfortable Weise alle Partitionen gesichert werden

Die Details

  • Damit man auch eine wirklich konsistente Sicherung von seinem Betriebssystem hat sollte man von einer Live-CD booten. Z.B. Knoppix
  • Als nächstes braucht man Speicherplatz wohin man die Images der Partitionen sichern kann. Ich nutze hierzu einen NFS-Server, man kann aber auch eine andere Partition oder Festplatte nutzen. Beim mounten eines NFS-Shares kann es notwendig sein mit “-o nolock” den mount-Befehl durchzuführen
    # mount -o nolock <nfs-server>:/space /mnt</nfs-server>
  • Zum sichern des Partition-Layouts benutze ich sfdisk
    # sfdisk -d /dev/hda &gt; /mnt/backup/<system>/sfdisk.out</system>
    # more /mnt/backup/<system>/sfdisk.out# Partitionstabelle von /dev/hda
    
    unit: sectors
    /dev/hda1 : start=       63, size=    98217, Id=83
    /dev/hda2 : start=    98280, size=  1954260, Id=82
    /dev/hda3 : start=  2052540, size=   391230, Id=83
    /dev/hda4 : start=  2443770, size= 18527670, Id= 5
    /dev/hda5 : start=  2443833, size=   500787, Id=83
    /dev/hda6 : start=  2944683, size=  7813197, Id=83
    /dev/hda7 : start= 10757943, size=  1954197, Id=83
    /dev/hda8 : start= 12712203, size=  8259237, Id=83</system>

    Partition 2 (Swap) und 4 (Erweiterte Partition) müssen nicht gesichert werden!

  • Das sichern erledigt ein kleines Skript
    # for partition in 1 3 5 6 7 8; do partimage -z1 -b -d save /dev/hda$partition /mnt/backup/<system>/hda$partition.img; done</system>

    Die Optionen von partimage:
    -z1 - komprimieren mit gzip
    -b - nicht nachfragen (batchmode)
    -d - keine Description abfragem

Restore

Um zu überprüfen ob wirklich alles geklappt hat sollte auch der Restore getestet werden.
Natürlich sollte man für Tests nicht die Original Festplatte verwenden, da eventuell Daten verloren gehen können!

Kochrezept für den Restore

  • Booten der Live-CD
  • Mounten des Speicherplatzes
  • Partition-Layout zurückspielen
  • Restore mir partimage
  • Bootblock mit grub instllieren

Die Details für den Restore

  • Booten und Mounten siehe oben
  • Das Partition-Layout restoren mit sfdisk
    # sfdisk /dev/hda < /mnt/backup/<system>/sfdisk.out
    
    Checking that no-one is using this disk right now ...
    OK
    
    Festplatte /dev/hda: 22192 Zylinder, 15 Köpfe, 63 Sektoren/Spur
    sfdisk: ERROR: sector 0 does not have an msdos signature
    /dev/hda: nicht erkannte Partitiontabellentyp
    Alte Aufteilung:
    Keine Partitionen gefunden
    Neue Aufteilung:
    Einheit = Sektoren von 512 Bytes, Zählung beginnt bei 0
    Gerät  boot.   Anfang      Ende  #Sektoren Id  System
    /dev/hda1            63     98279      98217  83  Linux
    /dev/hda2         98280   2052539    1954260  82  Linux Swap / Solaris
    /dev/hda3       2052540   2443769     391230  83  Linux
    /dev/hda4       2443770  20971439   18527670   5  Erweiterte
    /dev/hda5       2443833   2944619     500787  83  Linux
    /dev/hda6       2944683  10757879    7813197  83  Linux
    /dev/hda7      10757943  12712139    1954197  83  Linux
    /dev/hda8      12712203  20971439    8259237  83  Linux
    Warnung: Keine primäre Partition wurde als bootfähig (aktiv) markiert.
             Dies spielt bei LILO keine Rolle, aber der DOS-MBR wird auf
             dieser Festplatte nicht booten.
    Die neue Partitionstabelle wurde erfolgreich geschrieben
    
    Die Partitionstabelle wird erneut gelesen...
    
    If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
    to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
    (See fdisk(8).)</system>
    root@1[~]# fdisk -l /dev/hdaPlatte /dev/hda: 10.7 GByte, 10737418240 Byte
    
    15 Köpfe, 63 Sektoren/Spuren, 22192 Zylinder
    Einheiten = Zylinder von 945 × 512 = 483840 Bytes
    Gerät  boot.     Anfang        Ende     Blöcke   Id  System
    
    /dev/hda1               1         104       49108+  83  Linux
    /dev/hda2             105        2172      977130   82  Linux Swap / Solaris
    /dev/hda3            2173        2586      195615   83  Linux
    /dev/hda4            2587       22192     9263835    5  Erweiterte
    /dev/hda5            2587        3116      250393+  83  Linux
    /dev/hda6            3117       11384     3906598+  83  Linux
    /dev/hda7           11385       13452      977098+  83  Linux
    /dev/hda8           13453       22192     4129618+  83  Linux
  • Der Restore erfolgt auch wieder mit einem einzeiligen Skript
    # for i in 1 3 5 6 7 8 ; do partimage -b restore /dev/hda$i /mnt/backup/<system>/hda$i.img.000; done</system>
  • Damit das System auch wieder booten kann muss der MBR neu geschrieben werden. Dies erfolgt am besten mit dem Kommando ‘grub’
    # grub
    
              GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
                 [ Minimal BASH-like line editing is supported.   For
                   the   first   word,  TAB  lists  possible  command
                   completions.  Anywhere else TAB lists the possible
                   completions of a device/filename. ]
    
    grub&gt; root (hd0,0)
     Filesystem type is ext2fs, partition type 0x83
    
    grub&gt; setup (hd0)
     Checking if "/boot/grub/stage1" exists... yes
     Checking if "/boot/grub/stage2" exists... yes
     Checking if "/boot/grub/e2fs_stage1_5" exists... yes
     Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
     succeeded
     Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2
     /boot/grub/menu.lst"... succeeded
     Done.
    
    grub&gt; quit

Damit ist der Restore abgeschlossen und das System sollte wieder ohne Probleme booten können.

Anmerkungen

Ein Restore des Partition-Layouts und des MBR kann eigentlich auch Mithilfe von partimage erzeugt werden. Allerdings sind hier meine Erfahrungen etwas unbefriedigend. Die oben gezeigte Methode habe ich mehrfach eingesetzt und funktioniert (bisher) einwandfrei.


About this entry