GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So klonen Sie Festplatten mit dem Linux-Befehl dd

In diesem Tutorial beziehen wir uns auf ein praktisches Beispiel für den Linux-dd-Befehl, der von Systemadministratoren verwendet werden kann, um ein Windows-Betriebssystem oder ein Linux-Betriebssystem von einer größeren Festplatte, die im MBR- oder GPT-Layoutstil partitioniert ist, auf eine kleinere SSD zu migrieren oder zu klonen. In diesem Auszug verwenden wir als Beispiel ein Windows-System, das auf einer Festplatte mit mehreren Partitionen installiert ist. Diese Methode kann ziemlich kompliziert werden, wenn die Festplatte im MBR-Schema partitioniert ist und eine erweiterte Partition mit mehreren logischen Partitionen enthält oder die Partitionen nicht in der richtigen Reihenfolge sind. Ich schlage vor, dass Sie diese Methode nicht verwenden, wenn dies der Fall ist. In solchen Fällen ist es sicherer, ddrescure zu verwenden, das Ihr gesamtes Festplattenlayout (Partitionstabelle und verwendete Blöcke in jeder Partition) klonen kann, ohne den leeren Speicherplatz tatsächlich zu übertragen. DDrescure kann durch Installation des gddrescue-Pakets aus den Ubuntu-Hauptrepositorys bezogen werden.

SCHRITT EINS - Partition verkleinern

Sie können eine Linux- oder Windows-Partition mit einer Live-Linux-Distribution wie Gparted auf minimale Größe verkleinern (verkleinern) oder das gparted-GUI-Dienstprogramm von Ubuntu Desktop Live ISO-Image ausführen. Andere kostenpflichtige Linux-Distributionen, mit denen Sie die Dateisystemgrößen von Festplattenpartitionen (ext2, ext4, NTFS, xfs) manipulieren können, sind Partition Wizard oder Parted Magic. Sie können auch das Microsoft Windows-Dienstprogramm diskmgmt.msc verwenden, um eine NTFS-Partition zu verkleinern. Durch das Verkleinern des freien Speicherplatzes einer Partition wird die erforderliche Zeit, die dd benötigt, um nicht verwendete Festplattenblöcke zu kopieren, bei großen Partitionen drastisch reduziert. Im Falle einer großen Partition mit nur einem kleinen Prozentsatz des belegten Speicherplatzes ist es ratsam, das Dateisystem zu verkleinern, da das Dienstprogramm dd dabei auch den ungenutzten Speicherplatz kopiert (dd kopiert auch alle freien Blöcke einer 100-GB- oder 1-TB-Partition, die weniger als 10 % des belegten Speicherplatzes).

SCHRITT ZWEI – Festplatten klonen

Nachdem die Größe der Partition auf minimal geändert wurde, schließen Sie die zweite Festplatte oder SSD physisch an den SATA/SCSI-Controller usw. der Maschine an und starten Sie die Maschine mit einer Live-Linux-Distribution. Sobald die Live-Linux-Distribution in den RAM geladen wurde, öffnen Sie eine Linux-Konsole und führen Sie fdisk -l /dev/sda aus (vorausgesetzt, dass /dev/sda Ihr Windows-Installationsdatenträger oder Laufwerk C:in der Windows-Umgebung ist) und notieren Sie sich das letzte " Ende"-Sektor (44898303, wie im Beispiel unten gezeigt):

- Beispiel 1 – MBR-Festplatte klonen (Windows-Betriebssystem auf der zweiten Partition installiert)

In diesem Auszug sind die Laufwerke vertauscht, also stellt /dev/sdb die Windows-Installation das Laufwerk dar und /dev/sda stellt die leere SSD dar.

Führen Sie dann den folgenden Befehl mit Root-Rechten aus, um die Windows-Installationsfestplatte von HDD (/dev/sdb) auf SSD (/dev/sda) zu klonen. Das pv-Dienstprogramm ist in Ubuntu nicht standardmäßig installiert. Sie können es installieren, indem Sie Folgendes ausführen:

sudo apt install pv

Starten Sie dann den Klonvorgang, indem Sie den folgenden Befehl ausführen:

sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sda

ACHTUNG:Die Zielfestplatte muss mindestens die Größe des gesamten Speicherplatzes haben, der von allen Partitionen bis zur Windows-Partition von der Quellfestplatte belegt wird, einschließlich der Windows-Partition.

Erklärung des im obigen Beispiel verwendeten Befehls:

dd - dd steht für "Kopieren und Konvertieren". Einige mögen sagen, dass es für „Data Destroyer“ steht (falls Sie den Befehl irreführen, kann ernsthafter Schaden entstehen) oder Data Duplicate oder Data Description. Verwenden Sie die Beschreibung, die Ihren Anforderungen entspricht!

if - die Quellfestplatte (in/input file)

bs – Sektorgrößenwert aus fdisk-Ausgabe (Blockgröße oder Anzahl der Bytes, die einmal gelesen/geschrieben werden sollen)

count – Letzter „Ende“-Sektor der fdisk-Ausgabe, erhöht um eine Ganzzahl (+1) – Wie viele Blöcke der Größe 512 sollen kopiert werden, bevor sie stoppt. Hier sollten 44099584 Sektoren mit einer Größe von 512 Byte übertragen werden.

conv=sync,noerror - I/O synchronisieren und nicht stoppen, falls Blockfehler auf der Quellfestplatte auftreten

| - Linux-Pipe (Kommunikationskanal zwischen Prozessen in Linux oder FIFO)

pv -s 21GB - Überwachung des Klonfortschritts - Ungefähr 21 GB sollten durch die Pipe übertragen werden

of - die Zielfestplatte, auf die die geleiteten Daten tatsächlich geschrieben werden (Ausgabe-/Ausgabedatei)

Falls Sie mit einer größeren Blockgröße als der Standard-Festplattenblockgröße (512) arbeiten möchten, sagen wir, bis zu viermal so groß wie die Standardblockgröße (2048), können Sie zur Beschleunigung etwas rechnen und multiplizieren durch vier die Standard-Blockgröße der Festplatte (512x4) und teilen Sie dann die Gesamtzahl der Blöcke +1 der letzten Partition durch vier.

Beispiel:

In diesem Beispiel wird das "Ende" von sda2 :44898303+1 dividiert durch 4. dd mit einer Blockgröße von 2048 Bytes arbeiten.

sudo dd if=/dev/sda bs=2048 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sdb

Nachdem der Vorgang abgeschlossen ist (abhängig von Ihrer Festplattengröße und -geschwindigkeit kann es zehn Minuten oder sogar Stunden dauern), überprüfen Sie die Zielfestplatte mit demselben sfdisk-Befehl und vergleichen Sie die Ausgaben beider Festplatten. Die Ergebnisse sollten ähnlich sein.

- Beispiel 2 – GPT-Festplatte klonen (Windows-Betriebssystem auf der vierten Partition installiert)

In diesem Auszug arbeitet dd mit einer Blockgröße bis zum Achtfachen der Standardblockgröße (4096), um mehr Blöcke auf einmal zu übertragen. Das Windows-Betriebssystem befindet sich in der vierten Partition der Festplatte. Alle vorhergehenden Windows-Partitionen müssen ebenfalls geklont werden. Die Festplatte wird vollständig bis zum letzten 19855359-Sektor kopiert, der das Ende der Windows-Partitionsgrenze darstellt. Daten, die auf den Sektor 19855359+1 folgen, stellen die Partition D:in Windows dar, daher ist diese Partition für uns uninteressant, da wir nur die Betriebssystempartition klonen möchten.

Multiplizieren Sie die Standardblockgröße der Festplatte (512 x 8) mit acht und teilen Sie dann die Gesamtzahl der Blöcke +1 der letzten Partition durch acht, wie im folgenden Bild dargestellt. Das "Ende" von sda4, das die Windows-Partition darstellt, ist 19855359+1 dividiert durch 8. dd arbeitet mit einer Blockgröße von 4096 Bytes.

sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G |sudo dd of=/dev/sdb

Da wir in diesem Beispiel nur das Windows-Betriebssystem kopieren und nicht die gesamten Festplattendaten, die auf die vierte Partition folgen, müssen wir die letzte Partition löschen. Wir können es löschen, indem wir das cgdisk-Befehlszeilendienstprogramm direkt von der Konsole aus ausführen, wie in den folgenden Screenshots dargestellt

Überprüfen Sie die Unterschiede in den Partitionstabellen auf beiden Festplatten, indem Sie den Befehl fdisk ausgeben. Die Partitionstabelle sollte ähnlich sein, außer der 5. Partition von /dev/sda, die von der geklonten Festplatte (/dev/sdb ) entfernt werden sollte.

SCHRITT DREI – Testen Sie die geklonte Festplatte

Fahren Sie schließlich die Maschine herunter, trennen Sie die alte Festplatte und schalten Sie den Computer nur mit der neuen geklonten Festplatte ein. Es sollte in kürzester Zeit in Ihrem Betriebssystem hochfahren. Falls der Computer sich weigert zu booten, überprüfen Sie die SATA-Anschlüsse auf dem Motherboard physisch und versuchen Sie, sie umzukehren, oder gehen Sie zu den BIOS/UEFI-Einstellungen und stellen Sie sicher, dass die entsprechende Festplatte in der Startsequenz aktiviert ist.

Versuchen Sie, den Computer nicht zu booten, wenn beide Festplatten angeschlossen sind, da dies den Bootloader verwirren könnte, sodass Ihr Computer das Betriebssystem nicht starten kann. Nachdem Sie die Bestätigung erhalten haben, dass Ihr Betriebssystem normal hochfährt, verwenden Sie dasselbe Tool wie zum Verkleinern des Dateisystems, um die geklonte Partition zu erweitern, indem Sie den nicht zugeordneten Speicherplatz hinzufügen.

Mit dieser dd-Methode können Sie jede Variante des Windows- oder Linux-Betriebssystems mit all Ihren benutzerdefinierten Einstellungen, installierten Programmen und Dateien von einer größeren Festplatte auf eine kleinere SSD übertragen, ohne das Betriebssystem von Grund auf neu installieren und unzählige Stunden damit verbringen zu müssen, es anzupassen .


Linux
  1. So partitionieren Sie eine Festplatte unter Linux

  2. So sichern oder klonen Sie Linux-Partitionen mit dem Befehl „cat“.

  3. Verwalten Sie Datenträger mit DiskPart

  4. So richten Sie das ZFS-Dateisystem unter Linux mit zpool-Befehlsbeispielen ein

  5. So klonen Sie eine Linux-Festplattenpartition über das Netzwerk mit dd

So konfigurieren Sie IP-Netzwerke mit dem nmcli-Befehl unter Linux

So erstellen und verwalten Sie Festplattenpartitionen mit Fdisk in Linux

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl

So listen Sie Festplatten unter Linux auf

So verschlüsseln Sie eine Partition unter Linux

So erstellen Sie Festplattenpartitionen unter Linux