Ich muss meine Festplatte sichern. Ich möchte dd
das Bild verwenden und auf eine externe Festplatte stellen.
- Kann ich dies mit
dd
dem Betriebssystem tun , das sich auf der Festplatte selbst befindet, oder muss ich von einem anderen Gerät booten, zum Beispiel einer LiveCD? - Ist es im Allgemeinen sicher, ein Image eines Geräts zu erstellen, wenn das Gerät aktiviert ist und funktioniert?
- Was ist, wenn das Gerät gemountet ist, aber ich bin mir sicher, dass es während der
dd
Ausführung keine andere E / A-Operation gibt?
Ich bin sicher, dass dies rsync
das beste Tool für Sicherungen ist, insbesondere für inkrementelle Sicherungen.
Aber ich interessiere mich dafür dd
, weil ich auch andere Speichergeräte sichern möchte und es auch Daten kopiert, die auf nicht partitioniertem Speicherplatz gespeichert sind. Beispielsweise verwendet mein E-Book-Reader einen nicht partitionierten Bereich zum Speichern von Uboot-, Kernel- und anderen Daten.
backup
dd
disk-image
Marco Sulla
quelle
quelle
Antworten:
Im Allgemeinen ist es nicht sicher. Der FS geht davon aus, dass Operationen in einer bestimmten Reihenfolge geschrieben werden, damit er neue Daten der Datei schreiben und dann aus anderen Daten einen Zeiger darauf erstellen kann. Die genauen Details hängen vom Dateisystem ab. Stellen Sie sich vor, wenn Folgendes passiert:
dd
Liest von Position X, die Müll oder einige Daten enthältdd
Liest von Position X + 1 Link zu Position XAus der Sicht der Sicherung erhalten Sie einen Datenmüll. Es gibt jedoch mehrere Möglichkeiten, dies zu umgehen:
xfs_freeze
ist einer und ich kenne keinen anderen - aber eine solche Option gibt es zumindest theoretisch)Als letzte Anmerkung -
dd
möglicherweise nicht die beste Art der Sicherung. Es kopiert eine vollständige Festplatte, was oftmals unnötig ist, wenn Sie auch den 'Müll' kopieren. Wenn Sie ein Disk- Image benötigen, ist so etwas wie partimage möglicherweise besser. Wenn Sie keine bessere Option haben, verwenden Sie entweder rsync, tar im differentiellen / inkrementellen Modus usw. oder ein vollständiges Backup-System wie Bacula , Tarsnap oder eines von vielen anderen. Die Datendeduplizierung kann bei der Größe von Sicherungen Wunder bewirken.quelle
Dies hängt davon ab, wozu die Partition genau dient und wozu die Kopie dient. Ich werde jedoch sagen, dass es sich im Allgemeinen
dd
um ein ungeeignetes Tool zum Sichern von Dateisystemen handelt . Das ist auch nicht das, wofür es gedacht war.Es wird viel Zeit verschwendet, leere Bereiche der Partition zu kopieren.
Dies kann zu Inkonsistenzen führen, wenn das Dateisystem gerade gemountet ist, auch weil es sich um eine Entität auf Betriebssystemebene handelt und möglicherweise nicht mit dem zugrunde liegenden Blockgerät synchronisiert ist.
sync
Anfänglich hilft ein Anruf nicht viel, da der Prozess nicht sofort abläuft.Verwenden Sie stattdessen
cp -a
oderrsync
. Sie müssen dann natürlich die Zielpartition erstellen, damit dies nicht ganz so einfach ist, aber es ist viel sicherer und flexibler. Wenn Sie ein Dateisystem- Image erstellen müssen , siehe unten.Wenn Sie beabsichtigen, das Root-Dateisystem zu kopieren, verwenden Sie es auf keinen Fall
dd
. Sie müssen so etwas wiersync -ax
(odercp -ax
für einzelne Toplevel-Verzeichnisse) verwenden, da es eine Menge Dinge gibt, die NICHT in der Kopie enthalten sein dürfen . Unter Linux umfasst dies:Einige davon sind tatsächlich Kernel-Schnittstellen und keine echten Verzeichnisse auf der Festplatte. Wenn Sie sie kopieren, kopieren Sie eine Reihe von Informationen, die in der Kopie nicht zutreffen. Wenn Sie versuchen, ein System damit zu betreiben, wird nur Speicherplatz verschwendet, da die reale Schnittstelle oben montiert wird. Andere enthalten temporäre Informationen, die von laufenden Prozessen verwendet werden, und diese stellen ein größeres Problem dar, da das System den Müll nicht aussortieren kann, wenn Sie ihn kopieren.
Wenn Sie eine Image-Datei des Root-Dateisystems (oder eines beliebigen Dateisystems) erstellen möchten , erstellen Sie eine leere Image-Datei. Dies ist eine geeignete Verwendung für
dd
:Das ist ein Image mit 1024 MB (1000000 * 1024). Passen
count
Sie an, ob Sie eine andere Größe wünschen. Erstellen Sie zB einext
Dateisystem in der Datei :Es wird Sie warnen, dass dies kein echtes Blockgerät ist. Vorgehen. Hängen Sie nun die Image-Datei ein:
/mnt/img
muss existieren aber könnte alles. Sie können jetztrsync
(odercp -a
) in/mnt/img
. Der Inhalt bleibtwhatever.img
beim Abmelden erhalten.Jedoch...
Verwenden Sie zur Verdeutlichung die eben beschriebene Dateisystem-Image-Methode nur, wenn Sie aus irgendeinem Grund unbedingt eine Image-Datei benötigen. Wenn Sie die Partition auf eine andere Festplatte kopieren möchten, benötigen Sie kein Image : Erstellen Sie eine neue Partition mit einem leeren Dateisystem auf diesem Laufwerk, hängen Sie sie ein und kopieren Sie sie dort hinein. Sie können den Inhalt des Dateisystems auch einfach in ein leeres Verzeichnis kopieren und archivieren:
Sie können diese dann in einer vorhandenen (leeren oder anderen) Partition bereitstellen, indem Sie sie in der obersten Ebene platzieren und Folgendes verwenden:
Beachten Sie, dass vorhandene Dateien überschrieben werden, wenn ihre Pfade mit denen im Archiv übereinstimmen. Andernfalls bleibt die vorhandene Verzeichnishierarchie unverändert.
quelle
cp
als auch rsync haben die Option-x
, eine Rekursion in andere Dateisysteme zu vermeiden. Maciejs Antwort erklärt am besten, warum diesdd
hier absolut unangemessen ist (es wird fast garantiert, dass eine unbrauchbare Kopie erstellt wird, es sei denn, Sie treffen die von Mark aufgeführten Vorsichtsmaßnahmen , da sonst während der Kopie Schreibvorgänge stattfinden).dd
kopiert keine Dinge, die keine echten Verzeichnisse sind, auf die Festplatte, daher bin ich mir nicht sicher, woher Ihr erster Punkt kommt. Geräte, die in/mnt
, Knoten in/proc
usw. eingebunden sind, gehören nicht zu dendd
erfassten Daten, da sie sich nicht auf der Festplatte befinden. Für nicht gemountete Dateisystemedd
gilt vollkommen; Sie erhalten ein genaues Duplikat. Der einzige Grund, warum es für gemountete Dateisysteme ungeeignet ist, besteht darin, dass sich Daten auf dem System während der langendd
Betriebszeit teilweise ändern bzw. teilweise geschrieben werden können .rsync ist das Tool der Wahl zum Sichern eines Dateisystems und kann ein bootfähiges Backup des aktuell ausgeführten Betriebssystems erstellen.
Einige Einschränkungen:
Einige Vorteile von rsync gegenüber anderen Methoden wie tar:
Imagesicherungen haben ihren Platz, aber sie kopieren das Laufwerk genauso wie es ist, einschließlich etwaiger Probleme. Eine Dateisicherung erstellt ein neues Verzeichnis und führt nebenbei zu einer Linearisierung (Defragmentierung) Ihres Laufwerks. Wenn Sie 10 identische Kopien Ihres aktuellen Betriebssystems erstellen möchten, würde ich rsync für den Kopiermaster und dann dd (oder ähnliches) für den Rest verwenden.
quelle
Es hängt davon ab, was Sie unter "aktuellem Betriebssystem" verstehen. Wenn Sie lediglich die Verwendung einer Startdiskette vermeiden möchten und sich nicht um die Unterbrechung von Diensten kümmern möchten, die auf dem Computer ausgeführt werden, ist Folgendes möglich:
sync
mount -o ro /
./etc/mtab
; ignorieren Sie sie).Ich verwende diese Methode, um ein Archiv eines Computers zu erstellen, von dem ich gerade ein Upgrade durchgeführt habe, und erwarte nicht, dass er viel mehr verwendet. Es ist keine sehr gute Methode für ein System im aktiven Betrieb: Es ist langsam (dauert Stunden oder Tage), die Backups sind riesig (so dass Sie nicht mehr als ein paar behalten können) und es ist unglaublich störend, das gesicherte System zu verwenden oben. Für alltägliche Backups empfehle ich etwas, das auf Dateisystemebene funktioniert, z
rsnapshot
.quelle
/etc/mtab
auf/proc/self/mount
- was auch funktioniert , wenn Sie solche Dinge wie chroots oder fs Namensräumen haben.mount -o remount,ro /
möglicherweise schreiben kann. Aber wenn dieser Befehl zurückkommt, in welcher Situation würden nachfolgende Schreibvorgänge stattfinden?Nehmen Sie Clonezilla ernst. Es ist das beste Open-Source-Dienstprogramm auf Linux-Basis, das Norton Ghost ähnelt. Es wird sowohl das Klonen von Partitionen als auch von vollständigen Festplatten durchgeführt, entweder von Festplatte zu Festplatte oder von Festplatte zu Dateisystem (als Datei speichern). Es unterstützt die meisten Linux-Dateisysteme, NTFS, FAT32 und mehr. Es kann auf einer internen Festplatte, einem externen Laufwerk oder sogar über das Netzwerk auf SMB- oder NFS-Freigaben gespeichert werden.
Es ist sehr einfach zu bedienen und spart Ihnen viel Zeit.
Bearbeiten: Um die Frage zu beantworten, nein, Sie können die
dd
meisten Dateisysteme nicht mounten, da die Gefahr besteht, dass Sie eine inkonsistente Kopie Ihres Dateisystems erhalten, da das Lesen von einem Blockgerät nicht atomar ist. Wenn Sie beispielsweise 100 Blöcke kopieren, hat das System möglicherweise den ersten und den letzten Block aktualisiert, als Sie sich noch in der Mitte befanden. Dies bedeutet, dass Ihre Kopie den geänderten letzten Block enthält, jedoch nicht den ersten.quelle