So klappt man / dev / sda richtig auf / dev / sdb

2621
nikozavar

Ich habe zwei Festplatten mit den gleichen Größen - dargestellt als / dev / sda und / dev / sdb. Ich versuche, / dev / sda auf / dev / sdb zu kopieren. / dev / sda hat eine ext3-Partition. / dev / sda und / dev / sdb haben dasselbe Partitionslayout. Ich benutze den folgenden Befehl:

dd if = / dev / sda von = / dev / sdb

Wenn ich das Dateisystem unter / dev / sdb mounte, sehe ich, dass nicht alle Änderungen auf dem Gerät angezeigt werden. Mit anderen Worten sind die Festplatten nicht gleich. Also scheitert es. Und ich scheine nicht herauszufinden warum. Kann dies die Partitionstabelle unter / dev / sdb beschädigen? Ist dies der richtige Weg, eine Festplatte zu klonen?

Nun, ich mounte das Dateisystem nicht auf / dev / sda, bevor ich mit dem Klonen beginne. Aber ich bin absolut sicher, dass niemand darauf schreibt, während das Klonen ausgeführt wird.

0
Tatsächlich können Sie sich sicher sein, dass jemand ** auf / dev / sda aufbaut, nicht umgekehrt. Linux verfügt über unzählige Dienste, die alle Arten von Echtzeit-Informationen protokollieren, die nicht unter Ihrer Kontrolle stehen und die Sie fast alleine lassen sollten. Die richtige Methode zum Klonen der Festplatte ist die, die Sie verwenden, wobei jedoch beide Festplatten nicht bereitgestellt sind. Ihre aktuelle Operation ist auch gefährlich für / dev / sda. Sie sollten diese Seite des Arch Linux-Wiki unter https://wiki.archlinux.org/index.php/Disk_cloning#Create_disk_image lesen. Dort steht: ** Stellen Sie sicher, dass keine Partitionen von der Quellfestplatte bereitgestellt werden. ** MariusMatutiae vor 8 Jahren 0
@MariusMatutiae warum ist es gefährlich für / dev / sda? ilkhd vor 8 Jahren 0
Da sich die Inode-Informationen möglicherweise ändern, nachdem dd die Indoe kopiert hat, werden die Informationen in Inode veraltet, Teile einer Datei werden nicht berücksichtigt und so weiter. MariusMatutiae vor 8 Jahren 0
@MariusMatutiae dd sperrt die Datei während des Lesens nicht oder liegt ich falsch? ilkhd vor 8 Jahren 0

1 Antwort auf die Frage

2
misha256

Um eine Festplatte zu klonen, sollten Sie unbedingt alle Partitionen aushängen. Alle modernen Desktop-Betriebssysteme verfügen über viele Dienste, die im Hintergrund ausgeführt werden und in die Betriebssystempartition schreiben. Außerdem können sie aus verschiedenen Gründen regelmäßig in andere gemountete Partitionen (sogar auf andere Festplatten) schreiben. Die Schreibvorgänge sind zwar klein und wenig, aber alle Schreibvorgänge - insbesondere diejenigen, die Metadaten des Dateisystems betreffen - führen zum Zerstören des Klonens.

Normalerweise kopiert man komplette Laufwerke durch Booten eines Linux Live-CD / DVD / USB-Keys (wählen Sie eine beliebige Distribution aus, ich bevorzuge Mint für diese Art von Dingen). Auf diese Weise können Ihre Festplatten unmontiert bleiben.

Der Befehl, den Sie dort haben, funktioniert gut, aber wenn ein Sektor aus irgendeinem Grund nicht gelesen werden kann, ddwird er aufhören. Möglicherweise möchten Sie dieses Verhalten oder Sie möchten, dass es weitergeht. Arch verfügt über eine hervorragende Dokumentation für das Klonen von Datenträgern und empfiehlt Folgendes:

# dd if=/dev/sdX of=/dev/sdY bs=512 conv=noerror,sync 

Lesen Sie jedoch die Dokumentation, insbesondere zum Anpassen bsan höhere Werte, da dies die Klongeschwindigkeit erheblich beeinflussen kann. Wenn Sie ddanhalten möchten, wenn ein Fehler auftritt, entfernen Sie das conv=noerror,syncTeil.

misha256 danke für deine antwort. Ich habe übrigens auch fsfreeze -f / verzeichnisname verwendet, um das Dateisystem einzufrieren, während das Klonen läuft, aber es schlägt auch fehl. nikozavar vor 8 Jahren 0
@nikozavar Keine Sorgen. Hmm, "fsfreeze" sieht interessant aus, muss das untersuchen. Irgendwie glaube ich nicht, dass "fsfreeze" auf der Root-Partition eines laufenden Betriebssystems arbeiten kann (oder dafür konzipiert wurde), aber ich könnte mich irren. misha256 vor 8 Jahren 0