PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Howto : Imaging mit partimage



Terran Marine
15.09.04, 13:39
Hallo,

es gibt zwar schon ein sehr gutes Howto, wie sich Systeme schnell und einfach mit tar sichern lassen (siehe hier (http://www.linuxforen.de/forums/showthread.php?t=76117) ),
desweiteren auch schon eine große Anzahl an Threads über das Thema Partimage (siehe SuFu (http://www.linuxforen.de/forums/search.php?) ),
ein partimage-howto was ich 1:1 auf unsere Situation anwenden konnte, habe ich dabei aber nicht gefunden.
Deswegen habe ich meine Erfahrungen mal zusammengeschrieben.

Warum nicht per tar oder nur per dd sichern ?

Bei einer tar-Sicherung ist der MBR aussen vor, beim Wiederherstellen kann es in Verbindung mit dem Bootloader zu Problemen kommen bzw. ist es bei mir zu

Problemen gekommen.
Will damit aber das tar-howto von LX-Ben nicht schlechtmachen, es klappt ansonsten sehr gut und ist recht flott.

Sichere ich eine Festplatte nur mit dd (Nach dem Schema dd if=/dev/hda of=backup), habe ich den Nachteil keine einzelnen Partitionen zurücksichern zu können, desweiteren bietet dd keine Kompression und schreibt auch leere Sektoren stur in das Image rein.

Was benötige ich ?

Eigentlich nur eine Live-CD (z.b. Knoppix) , mit den Linux - Tools partimage, sfdisk und dd. Desweiteren natürlich genügend Speicherplatz für das Image

(USB-Stick, 2. Festplatte, NFS-Mount etc.)

Vorraussetzungen :

Getestet habe ich dies auf einer IDE-Festplatte mit dem Bootloader grub welcher direkt in den mbr installiert war
andere Bootloader müssten analog funktionieren.
Distribution war Suse 9.1 Prof.
Ob dies mit SCSI Platten ebenfalls läuft, kann ich leider nicht sagen.

Plattenaufteilung

/dev/hda1 /boot ext2 75 MB
/dev/hda2 swap swap 2 GB
/dev/hda3 Erweiterte Partition 78 GB
/dev/hda5 /tmp ext3 5 GB
/dev/hda6 /var ext3 10 GB
/dev/hda7 /srv ext3 10 GB
/dev/hda8 / ext3 Rest (ca. 50 GB)

----

Vorgehensweise Sicherung :

Per Live-CD booten.

Nun muss zuerst der Bootloader und die Partionstabellen gesichert werden,
sofern nur primäre Partitionen existieren, ist es sehr einfach, der Bootloader und die vier primären Partionen stehen alle im MBR der Festplatte.

Dann reicht ein :

dd if=/dev/hda of=/mnt/smb/mbr count=1 bs=512

Damit ist der mbr der Festplatte /dev/hda in der Datei /mnt/smb/mbr gesichert.

Sind noch erweiterte bzw. logische Partionen vorhanden,
also ingesamt mehr als vier, was in einem Linux-System idR der Fall sein sollte, kann nicht allein mit dd gesichert werden, die Strukturdaten der logischen Partionen stehen nämlich in der Erweiterten Partion und werden damit nicht vom oben beschriebenen dd - Befehl erfasst.

Hierzu erst den Bootloader sichern :

dd if=/dev/hda of=/mnt/smb/mbr count=1 bs=446

Zur Erklärung, der Bootloader umfasst die ersten 446 Bytes einer Festplatte, danach kommt die Partitionstabelle (Byte 447 bis 512)

Danach mithilfe von sfdisk die Partionierung der Festplatte in eine Datei schreiben :

sfdisk -d /dev/hda > /mnt/smb/part

Nun müssen die Partionen gesichert werden, dafür das Programm partimage mit dem Befehl :

partimage

starten, partimage bietet eine ncurses-basierte GUI und ist praktisch selbsterklärend.

Nun (leider Stück für Stück) alle Partionen ausser swap auf der Netzressource/2. Festplatte etc. sichern.
Wer die GUI nicht mag, kann partimage auch per Parameter sichern lassen :

partimage -z1 -b -d save /dev/hda1 /mnt/smb/hdb1.gz

-z? steht für das Kompressionslevel, z0 = ohne Kompression , z1 = gzip , z2 = bzip2

-b führt partimage im batchmodus ohne Rückfrage aus

-d Image ohne Beschreibung sichern

save letztendlich ist der Befehl um die Partition zu sichern, danach folgen Quell-Device und Ziel-Datei.

partimage hängt standardmässig an jede Datei ein .000 (Es ist auch möglich, eine Partition in mehrere kleine Dateien zu schreiben)

Damit ist die Sicherung abgeschlossen, die Dateien gut aufbewahren ;)

----

Vorgehensweise Rücksicherung :

Je, nachdem ob das gesamte Image, oder nur einzelne Partionen wiederhergestellt müssen, alle Schritte durchführen oder nur den letzten Teil mit partimage.

Wieder per Live-CD booten.

Als erster Schritt muss der Bootloader und die Partionstabelle wiederhergestellt werden, erstmal die einfache Variante für Systeme mit ausschließlich primären Partitionen. Dazu per dd den MBR rücksichern :

dd if=/mnt/smb/mbr of=/dev/hda count=1 bs=512

Danach ist eventuell ein Reboot notwendig, da die Partitionstabelle neu eingelesen muss, dies funktioniert nicht immer automatisch.

Für Systeme mit erweiterten/logischen Partitionen wie folgt vorgehen :

dd if=/mnt/smb/mbr of=/dev/hda count=1 bs=446

Schreibt den Bootloader zurück in den MBR.

sfdisk /dev/hda < /mnt/smb/part

Liest die Partitionstabelle aus /mnt/smb/part ein und schreibt sie auf /dev/hda.

Danach ist eventuell ein Reboot notwendig, da die Partitionstabelle neu eingelesen muss, dies funktioniert nicht immer automatisch.

Nun sind Bootloader und Partitionstabelle wieder auf den alten Stand gebracht.

Zum einlesen der Partitionen benutzen wir wieder partimage, dieses mit :

partimage

starten und die gewünschten Partitionen aus den Dateien zurücksichern.

Alternativ bleibt die Rücksicherung über Parameter :

partimage -b restore /dev/hda1 /mnt/smb/hdb1.gz.000

-b führt partimage im batchmodus ohne Rückfrage aus

restore ist die Anweisung aus einer Datei in eine Partition zu schreiben, danach folgt Ziel-Partition und Quell-Datei.

Sind die Partitionen rückgesichert, muss die Swap-Partition noch erstellt werden, da partimage nicht mit swap - Partitionen umgehen kann (was auch sinnvoll

wäre), dies erfolgt durch :

mkswap /dev/hda2

Wobei /dev/hda2 die swap-Partiton ist.

Der ganze Restore Vorgang, lässt sich auch prima in ein kleines Skript packen.

----

Ich hoffe die Arbeit war nicht umsonst, und es gibt keine viel leichtere Methode um selbiges zu erreichen.
Ich hab auf jeden Fall was dabei gelernt ;)
Kritik und Anregungen sind jederzeit willkommen.

Gruß
Terran