Autor Thema: Image & Backup  (Gelesen 4990 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Image & Backup
« am: Oktober 08, 2005, 22:01:52 »
Ja ja, Datensicherung ist das halbe Leben.  :roll:

Wo unter Windows Usern dieses Thema leider schon oft sehr stiefmütterlich behandelt wird,
ist es bei Linux Umsteigern schon oft in weite Ferne gerückt.

So viel neues, wer denkt da schon ans Daten sichern. Und wenn wie?
Fragt man Google wird man vermutlich oft über dd stolpern, aber was ist das
und wie funktioniert das Ding? Komadozeile? - Häh.

Letztendlich ist dd am Ende zwar gar nicht so kompliziert, aber oft leider auch nicht das richtige.
Was dd macht ?
Mit dd kann man eine Partition oder auch ganze Festplatte Sektor weise kopieren.
Dabei sind Daten Dateisystem usw. völlig egal. Letztendlich werden wirklich nur die Einsen und Nullen geschaufelt.

Damit läst sich natürlich ein Image erstellen. So ein Befehl könnte zB. so aussehen:
# dd if=/dev/hda1 of=/home/user/hda1-image.img
Damit hätte man ja schon mal sein Image der Partition, aber eventuell schwant einem vieleicht schon die Konsequenz so einer 1:1 Kopie.
Genau richtig. Würde man so zB. von einer 80GB Festplatte ein Abbild erstellen wollen, bräuchte man für dieses ebenfalls 80GB Platz (halt 1:1).
Bei kleinen Partitionen kann man also eventuell noch so arbeiten, bei größeren oder gar ganzen Festplatten wäre das nicht mehr tragbar. Ein RAID System wäre da sicherlich sinnvoller und würde im Falle des reinen Spiegelns sogar immer noch was für die Lese-Performence tun.

Also muß man das anders machen.

Das Zauberwort heißt Kompression.
Unter Linux gibt es zwei recht gebräuchliche Arten der Kompression und zwar gzip und bzip2.
Natürlich ließe sich auch zip oder ähnliches nehmen, da es aber keine Linux standart Programme sind, verzichte ich jetzt mal darauf. Das Ergebnis wäre auch nicht groß anders.

Also, das Image soll aus Platzgründen komprimiert werden.
Dann wollen wir mal.
# dd if=/dev/hda1 | gzip -9 > /home/user/hda1-image.img.gzDamit würde man ein gzip komprimiertes Image erstellen.

Zur Erklährung:
Als erstes wird mit dd if=/dev/hda1 der Inhalt Sektorweise von der ersten Partition der ersten Festplatte ausgelesen. Das " | " Zeichen nennt sich Piep und sorgt dafür das das "Ergebnis" des ersten Befehls weiter verarbeitet wird. Das macht dann nämlich gzip -9 wobei die Zahl den Kompressionsgrad angibt (-9 gleich maximale kompression).
Am Ende wird das Ganze über das " > " Zeichen in die Datei hda1-image.img.gz ins eigene Home Verzeichnis umgeleitet.

Der Befehl mit bzip2 würde ähnlich aussehen.
# dd if=/dev/hda1 | bzip2 > /hdc/image.img.bz2
Bzip2 liefert ein noch stärker komprimiertes Image, allerdings dauert der vorgang auch länger als bei gzip.

Eine mit bzip2 komprimierte 3GB Partition würde so auf ca 2GB kommen.


Aber es geht noch besser.  :-D

Die Sache ist nämlich die:
Eine Partition ist ja oft nicht randvoll. Vieleicht wird von den 3GB ja nur ein Bruchteil genutzt.
dd würda aber natürlich trotzdem alles lesen und das kompressions werkzeug auch alles komprimieren. Selbst die Bereiche in denen keine wirklichen Daten vorhanden sind.

Es wäre also ne tolle Sache, wenn der ganze Daten Müll und Fragmentstücke von alten Daten irgendwie nicht mit genommen werden müssten.

Das läst sich wie folg bewerkstelliegen:
# mount /dev/hda1
# cd /mnt/hda1
# dd if=/dev/zero of=zero.fil bs=1M
# sync
# rm zero.fil
# cd ..
# umount /dev/hda1

Als erstes wird die Partition gemountet.
Dann wird der leere / ungenutzte Bereich der Festplatte mit "Nullen" überschrieben.
Danach verläst man wieder das Verzeichnis und hängt dieses aus.

Dadurch das der leere / ungenutzte Bereich der Festplatte nur noch mit "Nullen" gefült ist, können die Kompressionswerkzeuge diesen Bereich hundert mal effektiver komprimieren.

Wenn auf unserer 3GB Partition zum Beispiel nur 200MB an wirklichen Daten lagen, dann wird mit diesem Kniff aus dem "normal" komprimierten Image von 2GB gerade mal ein 12MB großes Image. ( das hängt natürlich auch von der Art der Daten ab, die auf der Platte liegen).

Das lässt sich doch sehen.



Soweit zum Thema Image erstellen.

Manchmal braucht man aber auch kein komplettes Image, sonder ein einfaches Backup der Daten ansich würde schon reichen.
Und das geht so:

Kompressions Werkzeuge sind wieder gzip und bzip2 und um das ganze allerlei an Daten zusammen zu bekommen, nutzt man auch noch tar.

# tar -cvzf /home/user/hda1-backup.tar.gz /mnt/hda1/*oder mit bzip2
# tar -cvjf /home/user/hda1-backup.tar.bz2 /mnt/hda1/*
Was passiert:
tar -cvzf gibt tar mit einigen "Schaltern" Anweisungen.
Das c steht für create, also erstellen. Das v für verbose, damit gibt es eine Ausgabe an Informationen was tar gerade macht (kann auch weggelassen werden).
Das z steht für gzip. Es wird also ein gzip komprimiertes tar Archiv erstellt.
Bei bzip2 ist dieser Schalter ein j
Und zu guter letzt das f. Diese sagt tar eigentlich nur das das Ziel kein Bandlaufwerk ist, denn tar wurde ursprünglich zur Sicherung von Daten auf Bandlaufwerken entwickelt.

Durch das ganze wird dann in die Backup Datei hda1-backup.tar,gz im Home Verzeichnes, der Inhalt der Partition /mnt/hda1 geschrieben.

Eine Partition müsste natürlich vorher gemountet werden (siehe oben), aber man kann diese Metode des Backups auch auf biliebige Verzeichnisse Anwenden.
Zum Beispiel auf der Email Verzeichnis oder ähnlich.



Na dann, immer schön Daten sichern.
Und vieleicht hilft dieses kleine Tut ja dabei.

"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Re: Image & Backup
« Antwort #1 am: Oktober 08, 2005, 22:32:48 »
Weil heute Samstag ist, ich zu hause Sitze und aufs Kind aufpassen muss (welches zum glück aber schon schläft), aber ansonsten gerade mal nichts zu tun habe, hab ich noch ein kleines Script geschrieben.

Das Script handelt, dialog basierend, eigentlich alles ab, was ich in dem voran gehenden Beitrag beschriebn habe.

Das Script verwendet dafür "dialog" oder "xdialog" .

Dialog sollte eigentlich unter jedem Linux System verfügbar sein.
Es nutzt eine ncurses Oberfläche in der Shell und sieht relativ rot-blau aus.
Aus dem Lehrgang kennt man sowas als "Konsolen-Anwendung", was bei KDE Nutzeren sogar den Nagel auf den Kopf trift. (KDE Konsole = virtueller Terminal)

Wenn Xdialog installiert ist, nutzt das Script eine GTK 1 Oberfläche.


Ich hab das script auf den Namen Mimba (Image & Backup) getauft
und es steht hier zum Download bereit:
http:/mayer-cs.de/projekte/download/mimba.sh

Um das script zu starten reicht die Eingabe von:
# sh mimba.sh

Ich hab das ganze jetzt aber nur kurz zusammen getippt.
Kann also sein das da vieleicht noch irgendwo der Wurm drinne steckt.

"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Offline Gesine

  • Sr. Member
  • ***
  • Beiträge: 415
  • Bewertung der Beiträge: 7
  • Geschlecht: Weiblich
    • Profil anzeigen
    • Mupfelfahrten
Re: Image & Backup
« Antwort #2 am: Oktober 09, 2005, 11:51:07 »


Das läst sich wie folg bewerkstelliegen:
# mount /dev/hda1
# cd /mnt/hda1
# dd if=/dev/zero of=zero.fil bs=1M
# sync
# rm zero.fil
# cd ..
# umount /dev/hda1

Hallo Baldrian

Ich bin nicht gerade ein Linuxfan  :? ( Ich hab einfach keiine Lust mich da einzuarbeiten) aber das klingt sehr interessant, weil auch Backupprogramme unter Windows die gleichen Probleme haben.
Deshalb ein paar fragen dazu.
Funktioniert das nur mit Linux Filesystemen, oder auch wenn die Platte mit NTFS formatiert ist?
Langt dafür Knoppix?
In der letzten Zeile des Codes steht # umount..... müsste das nicht unmount heissen?

Gruß
Wilfried


Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Re: Image & Backup
« Antwort #3 am: Oktober 09, 2005, 13:23:24 »
Also beim FAT Dateisystem sollte das eigentlich auch funktionieren,
wobei ich es noch nicht ausprobiert habe.
Ich könnte das aber gleich mal kurz durch spielen. (sicher ist sicher)

Bei NTFS würde es vermutlich theoretisch auch gehen,
aber da der schreib support für das NTFS unter Linux als "experimental" eingeschtuft ist,
würde ich lieber davon abraten.
Ein geschrumpftes Image von einer zerschossenen Partition bringt dann ja auch nichts.


Mit Knoppix geht das auch.
Allerdings sollte man dann natürlich den Pfad für das Image entsprechent anpassen,
das das ganze irgendwo auf einer Festplatte landet und nicht im Home Verzeichnis.
Dieses läuft bei einer LiveCD ja auch nur in einer RamDisk und hätte dann natürlich nur recht kurzen bestand.


Zitat
In der letzten Zeile des Codes steht # umount..... müsste das nicht unmount heissen?
Nein, umount ist schon richtig.

"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Offline Gesine

  • Sr. Member
  • ***
  • Beiträge: 415
  • Bewertung der Beiträge: 7
  • Geschlecht: Weiblich
    • Profil anzeigen
    • Mupfelfahrten
Re: Image & Backup
« Antwort #4 am: Oktober 09, 2005, 13:46:30 »
Ich habs einfach mal ausprobiert. Es kommt aber dei Antwort:

/dev/zero nicht gefunden.  :kratz Liegt wohl an ntfs

Gruß
Wilfried

Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Re: Image & Backup
« Antwort #5 am: Oktober 09, 2005, 14:07:16 »
Hm,

das kann eigentlich nicht sein.
/dev/zero ist ja ein linux Device.
Es liefert die "Null" für das ganze.
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Offline Gesine

  • Sr. Member
  • ***
  • Beiträge: 415
  • Bewertung der Beiträge: 7
  • Geschlecht: Weiblich
    • Profil anzeigen
    • Mupfelfahrten
Re: Image & Backup
« Antwort #6 am: Oktober 09, 2005, 17:28:19 »
Dann kennt vielleicht mein Knoppix (3.3) dieses Device nicht.

Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Re: Image & Backup
« Antwort #7 am: Oktober 09, 2005, 17:54:44 »
Das ist ungewöhnlich.

Aber du kannst es auch zur Not selber erstellen.
# mknod /dev/zero c 3 4
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Re: Image & Backup
« Antwort #8 am: Oktober 10, 2005, 09:03:35 »
Also mit einer FAT Partition funktioniert das im übrigen auch.
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."

Offline Baldrian

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 2426
  • Bewertung der Beiträge: 28
  • Geschlecht: Männlich
    • Profil anzeigen
    • ecarux.de
Re: Image & Backup
« Antwort #9 am: Oktober 28, 2005, 11:04:30 »
Image einer NTFS - Partition erstellen:

Man braucht einen Kernel mit NTFS Unterstützung und sollte die ntfspgrogs installiert haben.
Das ist eigentlich in der Regel der Fall.
Ausnahme sind RedHat und Fedora. NTFS gibt es für diese hier: http://linux-ntfs.sourceforge.net/rpm/index.html .

Ein Image einer NTFS Partition kann dann unter Linux mit folgendem Befehl erstellt werden:
ntfsclone --save-image -o - /dev/hda1 | gzip -c > backup.img.gzDabei wird automatisch ein Komprimiertes Image erstellt. Ungenutzte Bereiche der Festplatte werden automatisch mit "Nullen" überschrieben um Platz zu sparen (siehe oben).

Anstelle von gzip kann auch bzip2 verwendet werden.
Der Vorgang dauert dann zwar länger, aber das Image wird auch stärker komprimiert (=kleiner).

Um das Image wieder ein zu spielen, müsste man folgendes eingeben:
gunzip -c backup.img.gz | \\
ntfsclone --restore-image --overwrite /dev/hda1 -
"Was auch immer geschieht, nie dürft ihr so tief sinken,
von dem Kakao, durch den man euch zieht, auch noch zu trinken."