Warum benötigt der Datenträger-Klon mit dd mehr Speicherplatz als die tatsächliche Datengröße?


1

Ich versuche, eine Festplatte mit dem ddBefehl zu klonen . Meine Eingabedatenträgergröße beträgt 1 TB, was nur einer Auslastung von 10% entspricht. Meine Ausgabedatenträgergröße beträgt 300 GB, was mehr ist, als ich erwartet hatte, zu klonen.

Aber nach meinem Klonen überwindet , konnte ich diese Meldung: No space left on device.

Das ist ein bisschen seltsam, wie 10% von 1 TB 300 GB Speicherplatz ausfüllten. Kann mir jemand erklären, warum das passiert ist? Wurden meine Daten beschädigt?


2
Durch das Klonen einer Festplatte wird die Festplatte geklont. Wollten Sie die Dateien kopieren?
David Schwartz

Ich kann mir vorstellen, zu versuchen, eine Festplatte mit ddeinem kleineren Ziel zu klonen , um MBR, Bootloader, Partitions-UUID (s) usw. zu erhalten. OP, ist das Ihr Ziel?
Kamil Maciorowski

Antworten:


4

Wenn Ihr Eingabegerät ( if=) 1 TB groß ist, ist unsere Ausgabedatei ( of=) ebenfalls 1 TB groß .

ddist ein sehr einfaches Tool, das einfach ALLE Bytes vom Eingabestream in den Ausgabestream kopiert, unabhängig davon, um welche Daten es sich handelt oder ob sie überhaupt zugeordnet sind. Das schließt sogar leere ( 0x00) Sektoren und solche mit Müll ein. Es beschäftigt sich nicht mit den übergeordneten Datenstrukturen, die "Dateien", "Verzeichnisse" usw. darstellen.

Wenn Sie einen exakten bye-for-byte-Klon der 1-TB-Festplatte erhalten möchten, müssen Sie die Daten durch einen Komprimierungsalgorithmus leiten, z. B. bzip2um sie auf eine kleinere Festplatte anzupassen.

Wenn es Ihr Ziel ist, lediglich Ihre Daten zu sichern, ddist dies nicht das richtige Werkzeug. Sie sollten tarstattdessen ein anderes Archivierungswerkzeug verwenden.


1

dd kopiert die zugrunde liegende Festplatte direkt, nicht das Dateisystem. Es kennt keine zugewiesenen Blöcke oder nicht genutzten Speicherplatz.

Wenn Sie nur das Dateisystem erfassen möchten und es sich um ein Linux EXTx-Dateisystem handelt, das nicht gemountet ist, würde ich empfehlen, es auf die minimale Größe zu verkleinern (muss zuerst gemountet und fscked sein)

resize2fs -M / dev / sd ??

Kopieren Sie dann die Partition, auf der sich das Dateisystem befindet, auf Ihre Sicherungsdiskette.

Führen Sie den Befehl aus, um den reifen Stamm wieder in seine ursprüngliche Größe zu bringen (um Ihren freien Speicherplatz wiederherzustellen)

resize2fs / dev / Ed ??

Besser noch, verwenden Sie ein dateisystemfähiges Archivierungstool wie tar.


OP erwähnte das Klonen der gesamten Festplatte. Das verkleinerte Dateisystem (wenn es nur eine Partition gibt) sollte alle Daten auf die Zieldiskette passen und es ist OK. Die geklonte Partitionstabelle wäre jedoch für den kleineren Datenträger falsch, und dies könnte einige Tools verwirren. Um zukünftige Probleme zu vermeiden, sollten die Partitionen ebenfalls verkleinert werden.
Kamil Maciorowski

Es stimmt, dass die Partitionstabelle immer noch auf die größere Größe eingestellt ist. Ich habe gesagt, die Partition zu kopieren, nicht die Festplatte. Was ich weggelassen habe, ist, wie man das Dateisystem anschließend wieder auf die Partitionsgröße vergrößert, was sowohl auf dem Original- als auch auf dem Sicherungsgerät möglich ist. Ich dachte, dies würde das OP in die richtige Richtung lenken, ist aber nicht der richtige Ort für ein vollständiges Tutorial über Festplatten und Dateisysteme ...
petiepooo

0

Das ist ein bisschen seltsam, wie 10% von 1 TB 300 GB Speicherplatz ausfüllten.

Nee. 100% von 1 TB füllten 300 GB Speicherplatz und wollten mehr.

Stellen Sie sich ein Notizbuch mit 100 Seiten und Notizen auf den ersten 10 Seiten vor. Wenn Sie das Notizbuch auf einen Xerox-Kopierer legen und das gesamte Buch kopieren, erhalten Sie 100 neue Seiten. Auch wenn die meisten leer sind.

Die Verwendung von dd ist eine RAW-Kopie. Verwendete Daten werden nicht kopiert. Dafür benötigen Sie etwas, das den Unterschied zwischen gefüllten Seiten und Seiten mit nur leeren Zeilen versteht.

Kann mir jemand erklären, warum das passiert ist? Wurden meine Daten beschädigt?

Nein, Sie haben nur einen Befehl gegeben, etwas anderes zu tun, als Sie wollten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.