it-swarm.com.de

Wie kann ich mein gesamtes System (Ubuntu und Windows) mit kostenloser Ubuntu-Software oder -Methoden auf meiner externen Festplatte sichern?

Um zu vermeiden, dass meine Betriebssysteme auf meinem Lenovo Laptop (80Q0001NUS) bei jedem Ausfall zurückgesetzt werden müssen, muss Ubuntu und Windows vollständig gesichert werden können. Ich hatte gehofft, tar.xz-Dateien zum Speichern auf meiner externen Festplatte zu erstellen, bin mir aber völlig unsicher, was ich tun soll, nachdem ich online gesucht habe. Mein Ziel bei meinen Backups ist es, entweder Ubuntu oder Windows so wiederherzustellen, wie sie waren, als sie komprimiert und archiviert wurden. Ich habe diese Partitionen:

Speicherlaufwerke

128 GB SSD

  • / dev/sda1: FAT32/boot/efi-Partition
  • / dev/sda2: NTFS Windows 10-Primärpartition
  • / dev/sda3: BTRFS-Ubuntu-Root-Partition
  • / dev/sda4: Partition tauschen

1 TB Festplatte

  • / dev/sdb1: NTFS-Speicherpartition (Windows)
  • / dev/sdb2: EXT4 (Shared) Speicherpartition
  • / dev/sdb3: BTRFS (Ubuntu) Speicherpartition

4 TB HDD (Externes Sicherungslaufwerk)

  • / dev/sdc1: NTFS-Partition
  • / dev/sdc2: EXT4-Partition
  • / dev/sdc3: BTRFS-Partition

Ich hoffe,/dev/sda1 und/dev/sdb1 (separat, wenn es der beste Weg ist) nach/dev/sdc1,/dev/sdb2 nach/dev/sdc2 und/dev/sda3 und/dev/sdb3 nach/zu sichern. dev/sdc3. Ich möchte, dass jedes dieser Backups leicht zu organisieren ist (wie einzelne Dateien, mit denen ich jede Partition so wiederherstellen kann, wie sie sich zum Zeitpunkt der Backup-Erstellung befanden). Ich brauche sie auch stark komprimiert, falls zutreffend. Ich möchte nicht die vollständigen Partitionen sichern, wenn dies vermeidbar ist. Ich möchte nur die geschriebenen Daten wiederherstellen, die ich in einem ähnlichen Setup von Partitionen und Speicherlaufwerken wiederherstellen kann. Schließlich muss ich in der Lage sein, mein System mit ihnen wie einer Live-CD oder Ähnlichem wiederherzustellen, um den Verlust von Software, Dateien usw. zu verhindern. Ich möchte nicht immer wieder Dateien herunterladen und meine Betriebssysteme einrichten müssen Mal scheitern sie. Ich hoffe, alle meine Konfigurationen, Einstellungen, Dateien und alles andere zu behalten, sobald die Wiederherstellung abgeschlossen ist. Bitte teilen Sie mir den besten Weg, dies zu tun. Danke.

2
NAE

Ich gehe davon aus, dass Sie mit einem LiveUSB oder einer LiveCD gebootet haben, und Sie brauchen root für grundsätzlich alles , was ich hier erkläre.

Damit ich nicht erkläre, was "dd" ist. Die Abkürzung bedeutet "Plattenspeicherauszug" und kann ein Image über alles erstellen, was ein Blockgerät (das für Sie Platten sind) von Dateien ist. Gehen wir die Grundlagen durch:

dd if=source-device of=target-device bs=blocksize count=numberofblocks
  • if Eingabedatei, auch bekannt als, woher die Daten stammen

  • of Ausgabedatei, auch bekannt als, wohin die Daten gehen

  • bs Blockgröße, auch bekannt als, wie viele Daten Sie im Speicher "puffern" möchten. Wenn Sie dies nicht verwenden, wird es grundsätzlich direkt von einem Gerät auf ein anderes kopiert und ist langsam. Geben Sie für die meisten Vorgänge etwas an. Normalerweise benutze ich etwas wie bs=1G. Natürlich müssen Sie 1 GB freien RAM haben, um dies tatsächlich zu tun

  • count Wie viele "Blöcke" (Menge definiert durch bs) möchten Sie verschieben. Im allgemeinen Fall wird dies nicht benötigt, da Sie alle Blöcke wünschen.

Stellen Sie sich vor, Sie haben eine SSD mit 128 GB und dem Namen/dev/sda, und Sie möchten ein vollständiges Image davon erstellen (so wird der Vorgang bezeichnet), einschließlich aller darauf befindlichen Elemente. Partitionstabellen. Sie haben eine Sicherungsdiskette mit viel Speicherplatz auf/mnt/bigdisk. Um ein Image der gesamten Festplatte zu erstellen, geben Sie den folgenden Befehl ein:

dd if=/dev/sda of=/mnt/bigdisk/backup-20160812.img bs=1G

Dies wird eine Weile dauern (bis Sie dies auf einer 4-TB-Festplatte getan haben), und schließlich finden Sie eine 128-GB-Datei mit dem Namen backup-20160812.img in/mnt/bigdisk. dd gibt während dieser Zeit keine Ausgabe aus und Sie werden eine starke Verschlechterung der Systemleistung feststellen. Oh, und aus Liebe zu allem, was gut ist: Stellen Sie sicher, dass nichts , keine einzelne Partition, eingehängt ist oder/dev/sda verwendet.

Sobald Sie die große Datei haben, können Sie mit der echten Festplatte machen, was immer Sie wollen (außer sie physisch zu zerstören). Wenn Sie wiederherstellen möchten, tun Sie Folgendes:

dd if=/mnt/bigdisk/backup-20160812.img of=/dev/sda bs=1G

Dies sind bitgenaue Kopien, was Folgendes bedeutet:

  • Die Größe der großen Datei entspricht genau der Größe der Festplatte
  • Offensichtlich können Sie nicht auf einer Festplatte wiederherstellen, die kleiner als diese Größe ist
  • Selbst wenn Sie eine größere Festplatte wiederherstellen, funktioniert dies möglicherweise nicht. Normalerweise sind es die gewünschten Partitionen, gefolgt von einem riesigen Block mit freiem Speicherplatz. Sie müssen die Größe ändern, und wenn es sich um eine SSD handelt, überprüfen Sie die Ausrichtung.
  • Sollte die Quelldisk defekt sein, stoppt dd bei Fehlern. Wenn Sie dies nicht möchten, müssen Sie zusätzliche Parameter angeben. Die Manpages sind offensichtlich dein Freund.
  • Auch hier wird alles abgebildet , auch nicht genutzter Speicherplatz . Wenn Sie eine Festplatte mit 100 GB haben und diese nur zu 10% verwendet wird, ist Ihre Datei 100 GB groß und es wurden 90% der Zeit für das Kopieren nicht verwendeter Blöcke verschwendet.

Mit diesem Wissen, so die Logik, können Sie mit dd eine einzelne Partition sichern. Schauen Sie sich den folgenden Befehl an und sehen Sie vielleicht warum:

dd if=/dev/sda1 of=/mnt/bigdisk/backup-sda1-20160812.img bs=1G

Der einzige Unterschied ist die Verwendung von/dev/sda1 anstelle von /dev/sda (und ich habe einen anderen Zieldateinamen verwendet). Warum? Weil /dev/sda die gesamte Festplatte darstellt und /dev/sda1 die erste Partition auf dieser Festplatte darstellt. Das war's ... Alle Bemerkungen darüber, dass es sich um eine bitweise Kopie handelt, bleiben bestehen.

Die in dd generierte Datei kann komprimiert werden und führt zu kleineren Dateien. Sie können dies mit Pipes tun. Der Befehl image würde folgendermaßen aussehen:

dd if=/dev/sda bs=1G | gzip > /mnt/bigdisk/backup-20160812.img.gz

Der Wiederherstellungsbefehl sieht ungefähr so ​​aus:

dd if=/mnt/bigdisk/backup-20160812.img.gz bs=1G | gunzip > /dev/sda

Einige allgemeine Hinweise zum Verständnis: Wenn Sie of weglassen, werden alle Ausgaben an stdout gesendet. Diese Daten werden mit der Pipe | an gzip (oder gunzip) gesendet. Da gzip/gunzip keine Datei angegeben hat, verwenden sie diese Daten und gzipen sie. Die Ausgabe wird an stdout gesendet, das wir dann mit dem Symbol > an eine Datei senden.

Nun zu ntfs-Partitionen. ntfsclone Es gibt andere verknüpfte Tools, die Sie möglicherweise untersuchen möchten (ntfsresize, ntfsfix. Geben Sie ntfs in die Befehlszeile ein und füllen Sie die Tabulatortaste aus.) Statt nur alle Bits zu kopieren, wird ntfsclone kopiert die Dateisystemstruktur und die Daten (es sei denn, Sie weisen sie an, dies nicht zu tun) und ignorieren daher nicht verwendeten Speicherplatz. Dies führt dazu, dass die Dateien viel kleiner und nicht viel größer sind als die tatsächlich "verwendete" Dateigröße der ntfs-Partition. Auch der Befehl:

ntfsclone -s -o /mnt/bigdisk/backup-20160812-sda2.ntfsclone /dev/sda2

Es wird während der Arbeit alle möglichen Informationen liefern, was viel beruhigender ist als dd. Was bedeutet das alles?

  • -s Bedeutet, dass Sie ein Image speichern möchten (und nicht einen Geräte-zu-Geräte-Klon durchführen) - -o Wohin senden Sie die Daten? In diesem Fall eine Datei. Wenn die Datei existiert, wird sie nicht überschrieben.
  • Die letzte Option im Befehl ist die Quelle, in diesem Fall die Partition zwei von sda.

Hier für die Wiederherstellung:

ntfsclone -r -O /dev/sda2 /mnt/bigdisk/backup-20160812-sda2.ntfsclone

Wieder beruhigende Informationen und hier ist, was die Optionen bedeuten:

  • -r bedeutet Wiederherstellung aus dem Image. Grundsätzlich ist es -s ein Pendant zur Wiederherstellung.
  • -O ist der Ort, an den die Daten geschrieben werden sollen. In diesem Fall ist es ein Großbuchstabe -O, da dadurch die Datei überschrieben wird. Dies ist notwendig, da /dev/sda2 bereits existiert und Sie es überschreiben möchten.
  • Die letzte Option ist wiederum die Datenquelle. Dies ist natürlich die Datei, die wir gerade mit dem ersten Befehl erstellt haben.

Die Größe dieser Bilder kann nicht geändert werden. Sie werden es nicht auf einer kleineren Festplatte/Partition wiederherstellen, auch wenn es aufgrund der Dateigröße passen würde. Die Strukturen des Dateisystems, die gesichert wurden, sind an die Größe der Festplatte gebunden. Auch wenn das Image, das Sie von einer 100-GB-Partition mit 10-GB-Daten erstellt haben, auf kleinere 50-GB-Partitionen passt, funktioniert es nicht. Sie können eine größere Partition wiederherstellen, aber die Strukturen bleiben unverändert. Daher müssen Sie ntfsresize verwenden, um diesen zusätzlichen Speicherplatz tatsächlich nutzen zu können.

Kommen wir zu dump. Wie ich in meinem Kommentar erwähnt habe, habe ich das seit Ewigkeiten nicht mehr benutzt. Ich erstelle gerade eine Sicherungskopie meiner Datendateien, da ich weiß, dass Neuinstallationen von Linux im Grunde genommen problemlos sind, insbesondere wenn Sie/home auf einer anderen Partition behalten. Was hier geschrieben wird, ist im Grunde das, was ich herausgefunden habe, als ich es geschrieben habe. Meine OpenBSD-Backup-Skripte, die dump verwenden, sind so alt, dass ich es nicht wagen würde zu sagen, dass ich immer noch weiß, wie sie funktionieren. Um zu entleeren.

dump -0 -f /mnt/bigdisk/backup-20160812-sda3.dump /dev/sda3

Nochmals, was bedeutet das?

  • -0 ist die Ebene des Dumps. Dies ist für inkrementelle Sicherungen gedacht und sehr nützlich. Sie werden sich jedoch vorerst daran erinnern, dass ein Speicherauszug der Stufe 0 das vollständige Dateisystem bedeutet.
  • -f Die Daten des Dumps werden an die angegebene Datei gesendet, in diesem Fall: /mnt/bigdisk/backup-20160812-sda3-level0.dump

Wiederherstellen? Nun, Sie müssen wissen, dass Sie nur auf einem sauberen Dateisystem und einem bereitgestellten Dateisystem wiederherstellen können. Deshalb müssen Sie zuerst sicherstellen, dass das Ziel als sauber formatiert ist, und es bereitstellen:

mkfs.ext4 /dev/sda3
mount /dev/sda3 /mnt
cd /mnt
restore -r -f /mnt/bigdisk/backup-20160812-sda3-level0.dump
  • -r bedeutet Wiederherstellen
  • -f aus Datei
  • Das Ziel ist das aktuelle Verzeichnis, daher das Verzeichnis/mnt

Wahrscheinlich erhalten Sie eine Warnung wie restore: ./lost+found: File exists, da lost+found in jedem neu erstellten Dateisystem vorhanden ist.

Interessanterweise sollte es möglich sein, auf einer kleineren Festplatte wiederherzustellen, aber ich habe es nicht versucht.

Nun, da ich "Montage" angesprochen habe. Diese Vorgänge sollten nicht auf bereitgestellten Datenträgern ausgeführt werden, mit Ausnahme des Restore-Teils des Dumps.

Zum Schluss noch ein Backup von MBR und GPT: Der MBR ist einfach und um ehrlich zu sein, ich bevorzuge die Verwendung, solange meine Festplatten 2 TB nicht überschreiten. Wie auch immer, der MBR ist im Grunde genommen Block 0 auf Ihrer Festplatte, von dem der erste Teil der Startcode und der zweite Teil die Partitionstabelle ist. Die ersten 446 Bytes des ersten Sektors, die nächsten 66 Bytes sind die Partition. Wenn Sie also nur den Boot-Code extrahieren, sieht das so aus:

dd if=/dev/sda of=/mnt/bigdisk/backup-20160812-bootcode.dd bs=446 count=1

Das Extrahieren des Startcodes mit der Partitionstabelle sieht folgendermaßen aus:

dd if=/dev/sda of=/mnt/bigdisk/backup-20160812-mbr.dd bs=512 count=1

Das ist es. Offensichtlich können Sie diese nur auf genau der gleichen Festplatte (oder einer mit genau den gleichen Eigenschaften) wiederherstellen.

Wie Sie sehen, ist MBR einfach. GPT ist nicht und es ist ein Schmerz. GPT ist eine variable Länge, und Sie sollten es zum besseren Verständnis besser googeln. Ich habe keine GPT-Datenträger auf dem Computer, auf dem ich das teste. Überprüfen Sie also alles. Nach meinem Google-Standard ist das zu verwendende Tool gdisk. Leider scheint es ein interaktives Werkzeug zu sein. Das ist in Ordnung, aber wir wollen einen einfachen Einzeiler:

printf "b\\n/mnt/bigdisk/backup-20160812-gpt.gdisk\n" | gdisk /dev/sda

Grundsätzlich senden Sie den Text:

b
/mnt/bigdisk/backup-20160812-gpt.gdisk

zur Anwendung gdisk am Gerät /dev/sda arbeiten. Die Datei /mnt/bigdisk/backup-20160812-gpt.gdisk sollte jetzt eine Sicherung des GPT enthalten. Die Wiederherstellung sollte in etwa so sein, aber ich habe es nicht versucht, also benutze es auf eigenes Risiko.

printf "b\\nr\\nl\\n/mnt/bigdisk/backup-20160812-gpt.gdisk" | gdisk /dev/sda

Dies sollte der folgende Text zum interaktiven Menü gdisk sein, um in den Wiederherstellungsmodus zu wechseln und aus der Datei wiederherzustellen.

Wenn Sie Googeln GPT in Verbindung mit dd starten, werden Sie viele Leute sehen, die Sie warnen, dies aufgrund der von GPT verwendeten UUID nicht zu tun. Das ist mit Sicherheit wahr: Sie werden Probleme bekommen, wenn Sie zwei Festplatten in demselben System mit derselben UUID aktiv haben. Außer natürlich, dass du das hier nicht tust. Zu keinem Zeitpunkt haben Sie zwei identische UUIDs im System, wenn Sie sich an das Kopieren in Dateien halten (was in allen meinen Beispielen der Fall ist).

Wie Sie sehen, ist dies eine ziemlich große Menge an Informationen, die zu verdauen sind, und ich werde nicht einmal die Mühe machen, sie erneut zu lesen, um Rechtschreibfehler, Tippfehler usw. zu finden. Wenn alles zu viel ist, schauen Sie in Clonezilla Möglicherweise liegt es näher an dem, was Sie tatsächlich benötigen. Ich hätte vielleicht sogar so viel Schreiben gespart, wenn ich Ihnen das erzählt hätte.

3
jawtheshark