Ich habe eine Partition (/dev/sda1) mit 10 GB. Außerdem habe ich eine „dd“-Datei einer anderen 7 GB großen Partition (/dev/sdb1).
Wenn ich den Befehl wie folgt ausführe:
dd wenn=sdb1.dd von=/dev/sda1
dann läuft alles gut, aber ich kann den restlichen 3 GB Speicherplatz von /dev/sda1 nicht nutzen
Gibt es eine Möglichkeit, DD anzuweisen, den verbleibenden freien Speicherplatz (in diesem Fall 3 GB) zu nutzen?
Antwort1
dd
kümmert sich überhaupt nicht um freien Speicherplatz (wie im Dateisystemkonzept), es kopiert einfach Block für Block.
Wenn sdb1.dd
es sich um ein Dateisystemabbild handelt, können Sie es resize2fs
nach dem Kopieren möglicherweise mit oder anderen Tools (je nach Dateisystemtyp) vergrößern.
resize2fs /dev/sda1
Antwort2
Gibt es eine Möglichkeit, DD anzuweisen, den verbleibenden freien Speicherplatz (in diesem Fall 3 GB) zu nutzen?
NEIN.
Genauer gesagt: Vorausgesetzt, die Zielpartition hat die richtige Größe (wie Sie sagen), schreiben Sie effektiv ein Dateisystem, das nur den ersten Teil der Partition kennt und sich dd
nicht um die Bedeutung der an der Quelle oder am Ziel geschriebenen Daten kümmert.
Abhängig vom verwendeten Dateisystem können Sie möglicherweiseErweitern Sie das Dateisystemdie gesamte Partition zu verwenden, aber das geht weit über die Zuständigkeiten hinaus dd
und die Einzelheiten hängen stark davon ab, welches genaue Dateisystem sich in dieser Image-Datei befindet.
Antwort3
dd kopiert keine Dateien, wenn es Bytes kopiert. Dazu gehört auch die Struktur des Dateisystems, das ein 7-Gigabyte-Dateisystem ist. Wenn Sie mit dem Kopieren fertig sind, zeigen die Dateisystemdaten an, dass es sich um ein 7-Gigabyte-Dateisystem handelt.
Wenn Sie nur alle Dateien duplizieren möchten, ist die Verwendung von dd zum Erstellen einer Kopie nicht das Richtige für Sie. Verwenden Sie tar oder führen Sie einen Dump/Restore auf einem neu erstellten Dateisystem durch.