Laufwerks-Backup mit dd

  Actionschnitzel   Lesezeit: 7 Minuten  🗪 27 Kommentare Auf Mastodon ansehen

Anleitung zum Backup einer ganze HDD/SDD über das Terminal.

laufwerks-backup mit dd

Jeder kennt es aus seinem Bekanntenkreis oder seinem Stammforum. Da gibt es diesen einen Typen, der sagt, er benutze seit über 10 Jahren ein und dieselbe Debian-Installation (oder eine beliebige andere Distribution).

Man weiß dann nie, ob man dieser Person gratulieren, sie bewundern oder sie verächtlich ignorieren soll, weil man selbst zum fünften Mal in diesem Jahr Linux neu aufgesetzt hat.

Fakt ist: Wer seine Installation pflegt und gut behandelt, hat eine hohe Chance, dass man lange ohne Neuinstallation auskommt. Allerdings können Schicksal und Unachtsamkeit der Entwickler auch mal zu einem unschönen Boot nach dem Upgrade führen, siehe Debian 12.3.

Aktuell soll es auch bei Ubuntu 24.04.01 zu erheblichen Problem beim Upgrade kommen, wie die Kollegen von linuxnews.de berichteten.

Als kleiner Erfahrungs-Einschub sei noch erwähnt, dass es für ein Versions- oder Point-Release-Update auch nicht zielführend ist, wenn man sich dazu verleiten lässt, Snap von seinem Ubuntu zu verbannen.

Kein Backup, kein Mitleid

So mancher, den ich kenne, hat in seiner Forum-Signatur diesen Satz stehen. Gelegentlich kommt es auch zu Wortgefechten, weil der Satz in einem Thread zu einem zerschossenen Linux fällt.

Backups sind wichtig, früher wie heute, und leider muss sich jeder selbst darum bemühen. Oft wird Timeshift ins Spiel gebracht, was sich aus meiner persönlichen Erfahrung heraus, gelinde gesagt, als nicht zielführend herausgestellt hat.

DD

dd (steht lt. Dokumentation für "convert and copy a file", wird aber im alltäglichen Gebrauch auch gerne als "disk dump" oder "disk destroyer" bezeichnet) kopiert Dateien oder ausgesuchte Teile von Dateien. Dabei kann sowohl eine bit-genaue Übertragung oder auch eine Konvertierung erfolgen. Häufig wird das Programm zum Kopieren von Festplatten oder Partitionen über deren Gerätedateien verwendet. "Bit-genaues" Kopieren bedeutet, dass der Datenträger Bit-für-Bit bzw. Byte-für-Byte ausgelesen und beschrieben wird, unabhängig von dessen Inhalt und Belegung. dd ignoriert Dateisysteme und funktioniert mit allen blockorientierten Datenträgern, also auch mit Daten-CDs/DVDs.

https://wiki.ubuntuusers.de/dd/

Auslesen der Laufwerks-Aufteilung

Wichtig: Wie mehrfach in den Kommentaren erwähnt, sollte das Backup natürlich über ein Live-System gemacht werden, um Inkonsistenzen zu vermeiden.

lsblk

Unter Ubuntu kann das etwas ausschweifender ausfallen:

Hier wäre nvme0n1 das zu sichernde Ausgangslaufwerk und sda das Ziel (Die Externe Festplatte). 

~$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0     4K  1 loop /snap/bare/5
#[...]
loop32        7:32   0 402,2M  1 loop /snap/gnome-46-2404/49
sda           8:0    0 111,8G  0 disk 
├─sda1        8:1    0     1M  0 part 
├─sda2        8:2    0   513M  0 part 
├─sda3        8:3    0 109,3G  0 part /media/timo/97078cb6-47fc-4f60-beba-03597e59e8ab
└─sda4        8:4    0     2G  0 part 
nvme0n1     259:0    0 238,5G  0 disk 
├─nvme0n1p1 259:1    0   512M  0 part /boot/firmware
└─nvme0n1p2 259:2    0   238G  0 part /

Umsetzung

In diesem Beispiel sind das Ausgangsvolumen sda und sdd. Abhängig von der System-Situation werden die Bezeichnungen wahrscheinlich anders sein. Augenmerk sollte darauf gelegt werden, dass hier keine Sub-Volumes (z. B. sda1/2/3 usw.) gewählt werden, sondern die gesamte Platte.

sudo dd if=/dev/sdX of=/dev/sdY bs=64K status=progress

Logik

  • sudo verschafft erhöhte Rechte
  • if=/dev/sda definiert das zu klonende Volumen
  • of=/dev/sdd definiert das Ziel
  • bs=64K setzt die Blockgröße auf 64 Kilobyte, was den Kopiervorgang stark beschleunigen kann. (Anmerkung: In meinen Sitzungen hat dies noch nie zu Problemen geführt, falls bei euch schon Fehler aufgetreten sind, könnt ihr das gerne kommentieren.)
    Für moderne Speichermedien kann bs auch auf 1M gesetzt werden.
  • status=progress legt fest, dass grafisch rückgemeldet werden soll, wie weit der Prozess fortgeschritten ist. (Wird nicht automatisch angezeigt.)

Mehr aus dem Arch-Wiki

Serviervorschlag

Wissens- und beachtenswert ist, dass Ziel-Drive mindestens die Größe des Ausgangs-Drives haben sollte, da sonst logischerweise nicht ausreichend Platz vorhanden ist.

Als Datenträger eignet sich eine externe HDD, die exklusiv für dieses Backup genutzt wird. SSDs hingegen müssen, genau wie USB-Sticks, ab und an mit Strom versorgt werden, da sonst Datenverlust droht.

Eine Möglichkeit wäre, regelmäßig von Hand ein Backup zu machen und so seine gesamte Installation zu sichern.

Meine Herangehensweise ist ähnlich, aber anders. Ich konfiguriere mir ein System nach meinem Gusto und schreibe mit dd das Backup. Eigene Dateien liegen auf einer separaten 1-TB-Festplatte; diese werden über Nextcloud zusätzlich gesichert. Eine einfachere Lösung wäre eine separate Home-Partition.

Rückspielen

Dies kann über ein Live-ISO erfolgen. Ein Notfallstick mit Knoppix oder Gparted-Live sollten zum Bestand jedes PC-Interessierten gehören.

Im Live-Betrieb kann nun eine kaputte Installation ersetzt oder eine leere Platte bespielt werden.

sudo dd if=/dev/sdY of=/dev/sdX bs=64K status=progress

Auch hier können die Laufwerksbezeichnungen abweichen.

dd Man-Page auf Ububuntu Manpages

Quellen

Tags

dd, Terminal-Befehle, Backup

Rainer
Geschrieben von Rainer am 5. September 2024 um 09:59

Auf welche Probleme beziehst Du Dich bei Timeshift?

Actionschnitzel
Geschrieben von Actionschnitzel am 5. September 2024 um 11:47

Als ich noch Mint genutzt habe, hat es schlicht nicht funktioniert. Das ist aber auch schon ein paar Jahre her. Wie geschrieben, ist meine eigene Erfahrung.

Leo
Geschrieben von Leo am 6. September 2024 um 20:50

Timeshift ist ausdrücklich kein Backup Tool - es dient der Systemwiederherstellung. Ich möchte es nicht missen - hat mir schon gelegentlich den A*** gerettet. Nicht nur auf einem Rechner.

kai
Geschrieben von kai am 11. September 2024 um 16:26

Das hätte ich auch gerne gewußt. Aber ob da noch eine Antwort kommt, heute ist bereits der 11.09....

Rigobert Müller
Geschrieben von Rigobert Müller am 5. September 2024 um 10:38

Danke für den Artikel, hab mich nie so richtig getraut den Befehl einzusetzen. Werde es aber jetzt auch mal probieren. Habe mir auch mal das Tool "Foxclone" angeschaut, ist halt für mich einfacher zu bedienen wegen der grafischen Oberfläche. Gruß Rigo

Claudia
Geschrieben von Claudia am 5. September 2024 um 10:42

Mit Backups habe ich mich Privat noch nicht wirklich beschäftigt. Und mit dd meine Festplatte zu klonen oder in eine Image Datei zu schreiben würde bei TB einfach zu lange dauern. Bei einer Festplattengröße von 500GB Könnte man es noch in betracht ziehen. ABER ich würde es als Datei sichern sprich:

# Erstelle ein mount Ordner
sudo mkdir /media/BackupDisk

# Mounte das Gerät an diesem Ordner (Ort)
sudo mount /dev/sdX /media/BackupDisk

# Erstelle eine Abbild-Datei von Gerät sdY auf die Backup-Festplatte im Verzeichnis: `/media/BackupDisk`
sudo dd if=/dev/sdY of=/media/BackupDisk/Backup-$(date +'%Y-%m-%d_%H-%M-%S').img status=progress conv=sync,noerror

# Auch wenn es von dd gesynct wurde nochmals mit
sudo sync

# Gerät entfern (Sicher)
sudo umount /media/BackupDisk

Das zurück spielen wäre genause einfach nur wie gesagt im Artikel - Live System! sudo dd if=/media/BackupDisk/Backup-DATUM-UHRZEIT.img of=/dev/sdY status=progress conv=sync,noerror Hinweis: DATUM und UHRZEIT sind Platzhalter, die ersetzt werden müssen, weil dort die echten Zeitangaben stehen.

Somit könnte man eine große 4 TB Festplatte öfter verwenden - Bei 500 GB wären es 7 Backup Dateien, eigentlich 8, ABER man weiß nie ob Fehlersektoren da sind, darum einmal weniger. Einfach ein vorheriges Backup.img löschen und schon ist Platz für ein neues. Wenn man unbedinkt eine komplette Festplatte klonen möchte.

Mein Backup kommt erst, wenn ich einen neuen Rechner mir zusammenstelle alle mind. 15 Jahre. Ich möchte so lange wie möglich immer mein Rechner bediehnen und nicht den Stand der Technik hinterher gegen und Konsumieren. Anderes Thema.

Dein Artikel war schön zu lesen und an manchen stellen musste ich auch lächeln. Zitat-aus-dem-Artikel: Man weiß dann nie, ob man dieser Person gratulieren, sie bewundern oder sie verächtlich ignorieren soll, weil man selbst zum fünften Mal in diesem Jahr Linux neu aufgesetzt hat. Mein System ist auch schon einige Jahre im Einsatz seit Ubuntu 16.04 LTS bis jetzt 22.04.4 LTS. Ich bleib gerade bei dieser Version, weil Snap mir nicht geheuer ist und ich noch einen schönen alten CPU nutze. Es wurden wieder Kernel entfernt, deswegen warte ich auf einen guten moment um mir einen neuen Rechner zuzulegen. CPU: i7 4790k RAM: 32 GB - Ich habe einige Virtuelle PCs am laufen darunter auch ein paar Windoofs

Apu
Geschrieben von Apu am 5. September 2024 um 11:00

Wie kommst du auf die 64 KB Blocksize und warum ermittelst du nicht die bs und den count von z. B. /dev/sda und setzt es in deinen DD-Befehl ein?

Actionschnitzel
Geschrieben von Actionschnitzel am 5. September 2024 um 11:43

Stand im ArchWiki. Lief gut und dann hab ichs nie versucht zu verbessern. https://wiki.archlinux.org/title/Dd

Apu
Geschrieben von Apu am 5. September 2024 um 13:13

Alles klar - danke. Hast du mal versucht eine DVD mit dd zu sichern? Ich habe das Problem, dass bei mir das Sichern der DVD sehr lange dauert. Hast du damit Erfahrungen?

Günter
Geschrieben von Günter am 5. September 2024 um 11:05

x mal durchgeführt und funktioniert perfekt. Das gesamte System kann danach von z.B. einer externen SSD geladen werden und läuft wie auf dem Original. Allerdings kann getrost "bs=" auf 1M statt 64K gesetzt werden, dann geht es noch schneller.

Enno
Geschrieben von Enno am 5. September 2024 um 14:40

Bei mir ließ sich Debian von einer externen SSD nicht starten, bis dass ich den Schalter --removable bei update-grub fand.

raspel
Geschrieben von raspel am 5. September 2024 um 13:40

Sehr schöner Artikel...

Anmerkungen:

  • Das Kommando dd erzeugt ein physiches Abbild
  • Es kümmert sich nicht um geöffnete Dateien wie Datenbanken
  • Aus einem laufendem System sollte es nicht auf das Wurzelverzeichnis angewendet werden z.B.: /sys oder /proc sind ein Abbild des laufenden Kernels auf Dateiebene
David
Geschrieben von David am 5. September 2024 um 15:10

Es wird ja nicht ein Verzeichnis (also auch nicht /root) angewandt, sondern auf das device-File der gewünschten HD/SSD. Da wären dann auch keine Daten aus dem RAM drin.

The_Raven
Geschrieben von The_Raven am 5. September 2024 um 18:55

Spielt absolut keine Rolle. Wenn man ein rw (gemountetes) Dateisystem mit dd sichert ist ist die Chance SEHR gross das man es nicht mehr zurück spielen kann bez. das es korrupt ist! Schon x mal probiert. Manchmal merkt man es zuerst gar nicht. Sobald man aber z.B. Videos oder Bilder öffnet sind diese nicht abspielbar oder werden nicht richtig angezeigt! Das ist echt gefährlich weil man meint man hätte ein Backup, dieses ist jedoch korrupt!!! Ich backupe mit einem bash script das auf rsync basiert.

David
Geschrieben von David am 5. September 2024 um 15:15

Genau genommen sollte man dieser Methode besser auch aus einem read-only-System (z.B. über eine Live-System) sichern, es drohen sonst Inkonsistenzen der Dateisysteme, die während des Backups sich verändern können.

chris_blues
Geschrieben von chris_blues am 5. September 2024 um 16:56

Um SSDs zu beschreiben, würde ich das nicht empfehlen. Bei HDDs kein Problem!

Da dd alle Bits kopiert, werden auch alle leeren Bereiche deiner Platte mit kopiert. Und sowas mögen SSDs eher nicht so. Jeder Schreibvorgang in jede Zelle ist einer weniger, für zukünftige Schreibvorgänge. Und diese sind bei SSDs (und auch USB-Sticks) begrenzt...

Jruß

Karolin
Geschrieben von Karolin am 5. September 2024 um 19:57

Hast du's schon mal mit BorgBackup versucht? Ich finde das toll, weil es viel Speicherplatz spart.

Michael
Geschrieben von Michael am 5. September 2024 um 21:09

Aus meiner doch schon längerer Erfahrung als Systemler kann und sollte ich von solchen Lösungen für eine Bare-metal backup/restore abraten da es immer wieder zu inkonsistente backups führen kann.

Für regelmässige Backups empfehle ich den Veeam Agent für Linux (oder auch Windows) der frei verfügbar ist und einfach auf eine ext. Festplatte oder NAS Backupen kann, hat mich bis jetzt noch nie im stich gelassen hat. Das und zusätzlich eine File Backup mit Pika (GUI für BorgBackup) sollte ausreichen…

Naja
Geschrieben von Naja am 6. September 2024 um 09:32

Dann geb ich auch noch meinen Senf dazu :-)

Erst mal danke für die Einführung ins Cloning mit dd! Der große Vorteil von dd ist, das es überall an Bord ist und eine Kopie damit ein echter No-Brainer ist.

Wenn es um Cloning geht empfehle ich allerdings auch, nicht ein laufendes System zu clonen, sondern das in einer Live-Umgebung zu machen, um Inkonsistenzen wegen geöffneter Dateien zu vermeiden.

dd braucht sehr lange, weil es alle, auch die unbeschriebenen, Bereiche kopiert und das ist ja eigentlich gar nicht notwendig. Bei einer SD-Card o.ä. finde ich das noch ok, aber komplette HDs/SSDs sind heute so groß, das halte ich nicht für praktikabel, jedenfalls bei vielen Systemen. Daher mache ich so etwas mit Clonezilla https://clonezilla.org/. Das hat mich noch im Stich gelassen, kopiert zuverlässig ganze Devices oder einzelne Partitionen und zwar nur die beschriebenen Bereiche, stellt sie aber komplett wieder her. Clonezilla beruht auf partclone, eine Beschreibung dazu gibt es z.B. hier https://blog.doenselmann.com/festplatten-image-mit-partclone-erstellen/ es lässt sich also wie dd fürs direkte cloning verwenden.

Das Problem mit einem solchen Snapshos ist aber eben genau das, es handelt sich um einen Snapshot, d.h. der von letzer Woche ist schon wieder eine Woche alt, das System hat sich seitdem verändert. Ich sichere die Systeme bei uns daher immer mit einem Tool, das inkrementelle Backups auf Dateiebene macht, nämlich rsnapshot. (Das beruht auf rsync mit Hardlinks, es gibt einige Tools und Scripte, die darauf basieren.) Der große Vorteil ist, dass die Backups sich ganz einfach durchsuchen lassen, einzelne Dateien oder Verzeichnisse lassen sich ganz einfach finden.

Naja
Geschrieben von Naja am 6. September 2024 um 09:37

"Das hat mich noch im Stich gelassen" sollte natürlich heißen "Das hat mich noch nie im Stich gelassen" und "Das Problem mit einem solchen Snapshos" sollte heißen "Das Problem mit einem solchen Snapshot"

Schade dass es hier keine Voransicht für die Kommentare gibt.

Osyryn
Geschrieben von Osyryn am 7. September 2024 um 08:40

Danke für die ausführliche Beschreibung. Ich habe dd nur ein einziges Mal benutzt, und das ist ewig her. Es hat mir schlichtweg zu lange gedauert, und das zurückspielen ging schief. Da ich gerne experimentiere, oder auch diverse Distris ausprobiere, habe ich immer ein Backup in der Hinterhand. Ich nutze seit Jahren REDO Rescue. http://redorescue.com/ Das ist simple gehalten, hat eine grafische Oberfläche, und hat sich als sehr zuverlässig erwiesen. Was will ich wohin speichern, bzw. von wo will ich zurücksichern. Als bootfähige .iso, ein 4GB Stick reicht.

Tom Mayer
Geschrieben von Tom Mayer am 7. September 2024 um 13:06

Ich musste gerade schmunzeln, „Laufwerbezeitungen“ ist eine schöne Wortkreation (letzter Satz). 8)

Actionschnitzel
Geschrieben von Actionschnitzel am 7. September 2024 um 16:52

Ich hab das dann mal verbessert :-D

Peter V.
Geschrieben von Peter V. am 8. September 2024 um 21:45

wenn dd, könnte auch erwähnt werden: GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying to rescue the good parts first in case of read errors. + Warum nach über 40 Jahren PC in den Betriebssystemen immer noch kein Image Programm existiert, das im laufenden System ein Image herstellen kann, ist mir schleierhaft. Plus ein Restore-USB-Stick, um ein kaputtes System durch das Image zu ersetzen.

kai
Geschrieben von kai am 11. September 2024 um 16:18

Hi, danke für den "Fachvortrag". Hierüber bin ich gestolpert: "...SSDs hingegen müssen, genau wie USB-Sticks, ab und an mit Strom versorgt werden, da sonst Datenverlust droht...." Wie ist das gemeint? Danke im Voraus, Gruß Kai

kai
Geschrieben von kai am 11. September 2024 um 16:24

Dies habe ich noch vergessen: Warum DD, wenn doch Clonezilla "alles" viel besser kann, u.a. eigenes UI?

Actionschnitzel
Geschrieben von Actionschnitzel am 12. September 2024 um 00:22

Das ist ja, kein Clickbait-Artikel, der sagt nicht: "dd ist das Beste, was es gibt!"

Natürlich gibt es bessere Lösungen, es geht viel mehr um die Umsetzung und das überhaupt sowas gibt. Meine Artikel sollen auch immer dazu einladen, sich selbst weiterzubilden und sich für Themen zu interessieren. Austausch ist auch wichtig.