Datensicherung – Auweia – ein ungeliebtes Thema! Aber wenn wirklich was passiert, dann ist das Drama groß. Ich will den Bereich hier nicht komplett beleuchten, sondern mich auf das Klonen der Betriebssystemplatte beschränken. Die ist aus Geschwindigkeitsgründen heute häufig eine SSD mit überschaubarer Größe und wird durch eine Datenplatte im Terabyte-Bereich ergänzt. Dass die Daten auf letzterer gesichert werden müssen, das ist klar Aber auch ein Backup der SSD kann einem viel Arbeit und Ärger sparen, wenn denn der Ernstfall eintritt.
Ein Personal Computer der in die Jahre gekommen ist, taugt heute oft nur noch für den Wertstoffhof. Auch in der Verwandtschaft kann man kaum noch jemandem eine Freude machen, in dem man ihm das Altgerät andient. Aber Stopp, bevor der alte PC in den Schrott wandert, sollte man ihm die Festplatte(n) ausbauen. Schon aus Datenschutzgründen verbietet es sich Platten, die nicht wirklich sicher gelöscht wurden, aus der Hand zu geben. Eine alte Festplatte lässt sich noch prima einsetzen, um die Systemplatte des neuen PCs zu sichern. Wie das geht, erkläre ich in diesem Artikel.
Die Betriebssystemfestplatte braucht nicht ständig gesichert zu werden – eigentlich nur, wenn sich etwas darauf geändert hat, also zum Beispiel neue Programme installiert wurden. Dafür ist es ein wenig schwieriger so eine Sicherung durchzuführen. Hier kommt oft spezielle (kostenpflichtige) Software zum Einsatz, die es ermöglicht, Dateien, die in Benutzung sind, im laufenden System zu sichern. Wohl dem, der noch eine alte Festplatte besitzt, die sonst nicht mehr benötigt wird. Die kann mit einfachen Mitteln als Sicherungsmedium für die Systemfestplatte verwendet werden. Nur gleich groß oder großer muss das Sicherungsmedium natürlich sein. Bei der hier vorgeschlagenen Datensicherungsmethode spielt es übrigens keine Rolle, ob auf dem PC Linux oder Windows läuft. Das Kloning kopiert einfach alle Sektoren der Platte, egal, was sich darauf befindet.
Was wird benötigt
- Eine Boot-CD mit der unabhängig vom verwendeten Betriebssystem temporär ein Linux gestartet werden kann. Da das eigentliche Betriebsystem dabei nicht läuft, kann es keine Dateien blockieren und die Sicherung verhindern.
- Eine Festplatte als Sicherungsmedium. Die muss natürlich zumindest gleich groß oder größer sein, als die zu sichernde Platte.
- Ein USB-Adapter, damit die Festplatte extern an einem USB-Port betrieben werden kann. Alternativ kann man natürlich auch den PC aufschrauben, und die Festplatte an einen freien SATA-Port hängen.
So funktioniert es
Die Festplatte wird temporär an den PC angeschlossen, ein Linux Betriebssystem von CD gebootet und die komplette Systemplatte (SSD) 1:1 auf die Festplatte kopiert.
Und hier die Schritte im einzelnen:
Boot-CD erstellen
An sich kann für diesen Zweck jede Linux Boot-CD verwendet werden. Zu empfehlen ist allerdings eine CD, die auch alle nötigen Tools zum Partitionieren und zur Datenrettung enthält, falls das einmal nötig werden sollte. Meine Empfehlung ist die System Rescue CD von www.system-rescue-cd.org. Dort lässt sich kostenlos ein ISO-Image für eine Boot CD herunterladen und es gibt umfangreiche Informationen zum Thema Datenrettung und zur Verwendung der CD – auch auf Deutsch.
Download eines ISO-Images
Der Download erfolgt von der Webseite des Projekts http://www.system-rescue-cd.org/Download. Der Link auf die aktuellste Version befindet sich in der Tabelle unter Sourceforge download. Ein Klick startet den Download der ISO-Datei.
Prüfen des Downloads mit sha1sum oder md5sum
Der Download sollte kurz auf Integrität überprüft werden. Linux bietet dazu mehrere Tools an, eins von den drei folgenden genügt aber.
$ sha1sum ~/Downloads/systemrescuecd-x86-4.7.1.iso
36c29dbec12151476e8d543aacd709f95186a92f /home/ich/Downloads/systemrescuecd-x86-4.7.1.iso
$ md5sum ~/Downloads/systemrescuecd-x86-4.7.1.iso
e462ad1d521fdbaf6102f474aadffcba /home/ich/Downloads/systemrescuecd-x86-4.7.1.iso
$ sha256sum ~/Downloads/systemrescuecd-x86-4.7.1.iso
3d99953b14788c5b50d72083c7cc72d3edecb440077c71edd108fd90aef86505 /home/ich/Downloads/systemrescuecd-x86-4.7.1.iso
Die ermittelten Prüfsummen können dann mit den auf der Webseite angegebenen verglichen werden.
CD Brennen
Das ISO-Image kann mit einem üblichen Brennprogramm auf CD geschrieben werden, unter Linux auch mit dem Commandline-Tool cdrecord:
$ cdrecord ~/Downloads/systemrescuecd-x86-4.7.1.iso
...
Track 01: Total bytes read/written: 481220608/481220608 (234971 sectors).
Klonen der Systemfestplatte
Beim ersten Boot sollte die externe Festplatte noch nicht angeschlossen sein.
System Rescue CD booten
Falls der Rechner nicht von der eingelegten System Rescue CD booten will und statt dessen das übliche Windows oder Linux startet, dann muss im BIOS des PC die Bootreihenfolge so verändert werden, dass die CD vor der Festplatte kommt. Oder es wird einmalig die CD als Bootmedium ausgewählt.
Die System Rescue CD stellt beim Bootvorgang mehrere verschiedene Boot Optionen zur Verfügung. In der Regel kann die Default Boot Option ganz oben beibehalten werden. Bei der Abfrage der Sprache geben wir dann 10 für Deutsch ein. Das System bootet jetzt ein Gentoo Linux bis zum Systemprompt in der Textkonsole und meldet den User Root automatisch an. Um eine grafische Oberfläche zu bekommen geben wir startx ein und bekommen einen Desktop mit Dateimanager und einem geöffneten Terminalfenster.
Platten identifizieren
Alle Eingaben sollten mit Vorsicht durchgeführt werden, wir haben Rootrechte und Fehler können das installierte Betriebssystem schädigen. Deshalb verschaffen wir uns als erstes einen Überblick über die vorhandenen Festplatten und SSDs. Mit fdisk -l
fragen wir alle Laufwerke ab:
root@sysresccd /root % fdisk -l
Disk /dev/loop0: 337.6 MiB, 353955840 bytes, 691320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4F7DBE2A-AEA4-472A-8679-5EE9D7331E46
Device Start End Sectors Size Type
/dev/sda1 2048 321535 319488 156M EFI System
/dev/sda2 321536 195633151 195311616 93.1G Linux filesystem
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C35C609B-9201-43A0-A49F-E7A82C24AFB3
Device Start End Sectors Size Type
/dev/sdb1 2048 17577983 17575936 8.4G Linux swap
/dev/sdb2 17577984 3907028991 3889451008 1.8T Linux filesystem
root@sysresccd /root %
Das Loopdevice ganz oben können wir ignorieren. Dahinter werden zwei Platten erkannt, eine 120GB Platte als /dev/sda
, das ist hier die SSD und eine 2TB Datenplatte mit Swap- und Linux Partition als /dev/sdb
. Das zu sichernde Laufwerk ist also /dev/sda
. Selbst wenn auf dem Rechner Windows installiert wäre, würden hier keine üblichen Windows Laufwerksbuchstaben erscheinen, sondern die typischen Linux-Bezeichnungen.
Als nächstes stecken wir die externe Festplatte an. Bei USB kann das im laufenden System erfolgen. Dann fragen wir die Laufwerke erneut ab:
root@sysresccd /root % fdisk -l
Disk /dev/loop0: 337.6 MiB, 353955840 bytes, 691320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4F7DBE2A-AEA4-472A-8679-5EE9D7331E46
Device Start End Sectors Size Type
/dev/sda1 2048 321535 319488 156M EFI System
/dev/sda2 321536 195633151 195311616 93.1G Linux filesystem
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C35C609B-9201-43A0-A49F-E7A82C24AFB3
Device Start End Sectors Size Type
/dev/sdb1 2048 17577983 17575936 8.4G Linux swap
/dev/sdb2 17577984 3907028991 3889451008 1.8T Linux filesystem
Disk /dev/sdc: 372.6 GiB, 400088457216 bytes, 781422768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00020476
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 781422591 781420544 372.6G fd Linux raid autodetect
root@sysresccd /root %
Dazugekommen ist ein Laufwerk /dev/sdc
mit 400GB Kapazität. Der Inhalt interessiert uns nicht, der wird ja eh überschrieben. Wichtig ist es Klarheit über die Laufwerke zu haben, damit im nächsten Schritt keine Fehler passieren.
Kopiervorgang starten
Der Linuxbefehl dd kopiert sektorenweise eine Festplatte auf die andere. Dabei spielt es weder eine Rolle, ob es sich um klassische Harddisks oder SSDs handelt, noch dass die Zielplatte größer als das Original ist. Der restliche Platz bleibt einfach ungenutzt.
root@sysresccd /root % dd if=/dev/sda of=/dev/sdc bs=1M
Hinter if= wird die Platte angegeben, die kopiert werden soll, of= ist das Ziel der Kopieraktion. Die Angabe der Blockgröße mit bs= soll den Vorgang beschleunigen. Nach Enter beginnt ohne weitere Bestätigung sofort der Kopiervorgang, was man an den Laufwerkslämpchen sehen kann. Um es noch einmal deutlich zu sagen, wer hier unachtsam ist und zum Beispiel if und of vertauscht, der hat sich sein Betriebssystem zerstört.
Leider erfolgen während der Laufzeit des dd-Befehls keinerlei Ausgaben auf der Konsole. Um dem abzuhelfen gibt es aber einen kleinen Kniff.
Fortschritt des Kopiervorgangs beobachten
Da der dd-Befehl die Konsole blockiert, öffnen wir ein zweites Konsolfenster mit Edit – Open Terminal. In dem ermitteln wir zuerst die Prozess-ID des dd-Befehls mit ps -awx:
root@sysresccd /root % ps -awx
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 init [3]
2 ? S 0:00 [kthreadd]
3 ? S 0:06 [ksoftirqd/0]
...
2854 ? S 0:00 [kworker/2:0]
2856 ? S 0:00 [kworker/1:2]
2869 pts/0 D+ 0:41 dd if=/dev/sda of=/dev/sdc bs=1M
2870 pts/1 Ss 0:00 zsh
...
3290 pts/3 R+ 0:00 ps -awx
root@sysresccd /root %
Der Befehl gibt alle laufenden Linux-Prozesse aus – die vorstehende Ausgabe ist allerdings gekürzt, die Liste wäre viel länger. Wichtig ist es hier, den dd-Befehl zu finden und die zugehörige PID (process id). Im Beispiel ist das 2869. Diese Prozess-ID brauchen wir für den folgenden Befehl:
root@sysresccd /root % watch -n 10 kill -USR1 2869
Der watch-Befehl mit der Prozess-ID am Ende aktiviert nun im Terminalfenster des dd-Befehls alle 10 Sekunden eine Ausgabe des Kopierfortschritts. Das sieht in gekürzter Form so aus:
14716+0 records in
14716+0 records out
15430844416 bytes (15 GB) copied, 100.001 s, 154 MB/s
15107+0 records in
15107+0 records out
15840837632 bytes (16 GB) copied, 110.012 s, 144 MB/s
...
114261+0 records in
114261+0 records out
119811342336 bytes (120 GB) copied, 2580.63 s, 46.4 MB/s
114473+1 records in
114473+1 records out
120034123776 bytes (120 GB) copied, 2587.76 s, 46.4 MB/s
root@sysresccd /root %
Der beispielhafte Kopiervorgang von 120GB dauert also 2588 Sekunden, was in etwa 43 Minuten entspricht.
Danach kann der Rechner heruntergefahren werden. Das bewerkstelligt man zum Beispiel mit einem Klick der rechten Maustaste in einen freien Bereich des Desktops und dann Applications – Log Out.
Verwendung der Sicherung
Hier gibt es verschiedene Möglichkeiten:
Rücksicherung der kompletten Platte
Sollte die Original-Systemplatte defekt sein, oder ihr Datenbestand zerstört, so kann mit der System Rescue CD gebootet werden, so wie es oben beschrieben ist. Danach wird mit dem dd-Befehl eine Rücksicherung angestoßen. Der Befehl funktioniert genauso wie bei der Sicherung, nur dass die beiden Laufwerksangaben bei if= und of= vertauscht werden.
Verwendung der Kloneplatte als Systemplatte
Mit der Kloneplatte kann auch direkt gebootet werden, sie ist ja eine 1:1-Kopie des Originals. Entweder werden die beiden Platten physikalisch ausgetauscht, oder im Bios wird die Kloneplatte als Bootmedium eingestellt.
Zugriff auf einzelne Dateien der Sicherung
Auch auf einzelne Dateien der Kloneplatte kann zugegriffen werden.Dazu steckt man die Platte einfach an den USB-Port. Die meisten Betriebssysteme werden die darauf befindlichen Partitionen automatisch mounten.
Es geht aber auch per Boot mit der System Rescue CD. Im Terminalfenster wird ein Verzeichnis als Mountpoint angelegt und eine Partition der Sicherungsplatte dorthin gemountet. Im Beispiel ist es /dev/sdc2
:
root@sysresccd /root % mkdir /mnt/ext
root@sysresccd /root % mount /dev/sdc2 /mnt/ext
root@sysresccd /root %
Fazit
Neben einer regelmäßigen Sicherung des Datenbestands macht es ein gutes Gefühl, immer einen Klon der Systemfestplatte (oder SSD) in der Schublade liegen zu haben. Dazu kann ruhig eine alte, nicht mehr benötigte, Harddisk verwendet werden. Die wird ja nicht schlecht nur weil sie in die Jahre gekommen ist.