it-swarm.com.de

Wie klone ich eine ganze Festplatte in eine neue?

Ich habe den Befehl dd verwendet, um meine 500-GB-Festplatte auf meine neue 1-TB-Festplatte zu kopieren. Nach 9 Stunden Systemanzeigemeldung wurde alles erfolgreich kopiert, aber ich kann keine Daten auf meiner neuen Festplatte anzeigen.
Ich gehe die folgenden Schritte durch.
Schritt 1:-

enter image description here

Nachdem das System die Meldung angezeigt hat: - Schritt 2: - enter image description here
aber jetzt 1 TB HDD kann nichts anzeigen. enter image description here
Wie kann das Problem gelöst werden?

3
Madhav Nikam

Dieses Problem wurde durch einen falschen Befehl dd verursacht. Der genaue Befehl dd für das Klonen von Datenträgern lautet:

dd if=/dev/sda of=/dev/sdb

sda und sdb verweisen auf die Festplatten selbst, einschließlich der Partitionstabelle. if= zeigt auf die Eingabedatei (in diesem Fall /dev/sda), und of= zeigt auf die Ausgabedatei (/dev/sdb).

dd Befehl ist zeitaufwendig, aber es ist vertrauenswürdiger und auch das Standard-System-Tool, daher habe ich dd Priorität eingeräumt.

enter image description here

Nach erfolgreicher Operation ist der nächste Schritt, das System neu zu starten . Ihre neue Festplatte sieht dann folgendermaßen aus:

enter image description here

Hier ist der vorletzte Schritt, der auch nach dd erforderlich ist: Verwenden Sie das Dienstprogramm Gparted , um die Größe der erweiterten Partition zu ändern . Die alte Festplattenpartitionstabelle war vom Legacy-Starttyp und unterstützte nicht mehr als 4 primäre Partitionen. Daher ist die Größenänderung die einzige sichere Option, um 500 GB freien Speicherplatz zu verwenden.

Nach der Größenänderung der erweiterten Partition:

enter image description here

9
Madhav Nikam

Vor kurzem musste ich dd für die Wiederherstellung und Image-Arbeit verwenden. Ich habe es vor 10 Jahren intensiv genutzt, um Laufwerke zu klonen und Partitionen zu sichern. Ich muss sagen, dass seine Verwendung Lichtjahre von direkt und einfach entfernt ist. In Bezug auf Festplatten müssen Sie genau wissen, wie das Laufwerk auf der untersten Ebene aufgebaut ist. Dazu benötigen Sie andere Programme, denen Sie vertrauen können (fdisk, sfdisk, cfdisk usw.). Vertrauen entsteht nur durch Experimentieren mit bekannten Objekten und Untersuchen der Ergebnisse - nicht durch Mundpropaganda. Ich bin einverstanden mit Murus anfänglichem Kommentar zum falschen Befehl dd, aber es sollte mehr gesagt werden. if =/dev/sda beginnt mit dem Lesen ganz am Anfang des Geräts (Byteadresse 0), während von =/dev/sdb1 in die erste Partition von Gerät b geschrieben wird. Das Ergebnis ist, dass sich Ihr sda-MBR zusammen mit Ihrem Betriebssystem usw. auf sdb-part1 befindet, und ich weiß nicht, was passieren wird, wenn sdb1 zu Ende geht, wenn es größer als sdb1 ist.

Ich vermute, dass sda das Startgerät ist und Sie möchten, dass sdb auch Ihr Startgerät ist, aber vielleicht möchten Sie nur, dass sdb1 ein Backup-Klon ist. Ihre Frage dazu ist vage. Möglicherweise können Sie Partitionen auf Partitionen kopieren, wenn diese genau die gleiche Größe haben, aber das Betriebssystem verfügt möglicherweise über nicht übereinstimmende Metadaten zum Partitionsdateisystem, sodass es diese nicht anzeigen kann. Wenn Sie nur einen Klon für das Backup wünschen, ist Ihr Befehl vielleicht in Ordnung, aber es gibt Probleme, das Ende der Partition zu erreichen und die nächste Partition zu überschreiben und ob Ihr Betriebssystem der Zerstörung des Dateisystems auf sdb1 widerspricht (das Booten immer noch von sda1 (?)). Im Prinzip könnte so etwas funktionieren, aber es ist wahrscheinlich besser, nur sda auf sdb zu schreiben und das Booten von sdb zu vergessen, es ist nur ein Klon zum Lesen. Sie könnten wahrscheinlich in eine Datei schreiben, wenn Sie extFAT oder ein System hätten, das 500 GB Dateigröße akzeptiert, aber ich bezweifle, dass Sie dies tun.

Es gibt noch Dutzende weiterer Fragen. Wenn Sie auf sdb übertragen und später von dort booten möchten, müssen Sie die zu kopierenden Bytes und Sektoren kennen und diese in Ihren Befehl einbeziehen. Stellen Sie sicher, dass Ihr Ausgabelaufwerk die erforderliche Größe hat, und zwar erneut von/dev/sda nach/dev/sdb sollte funktionieren, bis auf einige Probleme, auf die ich gestoßen bin. Was soll dd tun, wenn ein Lesefehler auftritt, der bei älteren Laufwerken häufig auftritt? Sie können dd so einstellen, dass sie ignoriert werden, aber was schreibt es dann? Meiner Erfahrung nach schreibt es nichts, sodass 512 Byte (normaler traditioneller Block, aber Ihre Festplatte könnte anders sein; neuere Laufwerke könnten 4096-Byte-Blöcke verwenden) aus dem Schreibvorgang entfernt werden und alle weiteren Bytes 'nach links' verschoben werden wo sie sein sollten. Dies geschieht für jeden Lesefehler, den Sie möglicherweise ignorieren möchten, da ein Lesefehler dd kalt stoppt und ein Neustart äußerst schwierig ist. Kurz gesagt, dd für das Klonen kann ausgeführt werden, sollte jedoch in einem Bash-Skript mit einer Fehlerbehebungsschleife ausgeführt werden, die ungelesene Blöcke mit Nullen füllt, der Befehl sollte die genaue Blockanzahl angeben und Sie sollten das Format auf niedriger Ebene von genau kennen die beteiligten Antriebe. Am Ende ist es wahrscheinlich am besten, für ernsthaftes Klonen eine dedizierte Open Source-C-Programmdatei zu verwenden, die das leistet, was dd und sfdisk tun, aber professioneller. Aber ich gebe zu, dass dd nützlich ist. Es ist wie ein Bowiemesser am Gürtel - beeindruckend und kraftvoll, aber mit begrenztem Nutzen.

Außerdem können Betriebssysteme nach UUIDs suchen, die auf freiem Speicherplatz und an anderen Stellen auf der Festplatte gespeichert sind, und dem Booten widersprechen, wenn sie nicht übereinstimmen. Dies ist einer der schwarzen Bereiche der Wettbewerbsfähigkeit von Betriebssystemen. Offizielle Software kennt diese Dinge.)

Im Gegensatz zu vor 10 Jahren sind GPT-Tabellen heutzutage ebenfalls wichtig und sogar unverzichtbar. Und EFI-Bootpartitionen erschweren die Sache ebenfalls. Mit dem geringen Wissen über die Formatierung von Festplatten auf niedriger Ebene werde ich nicht einmal meine Zeit damit verschwenden, eine ganze Festplatte zu klonen. Teile des Datenträgers können bei ganz besonderen Problemen hilfreich sein. Wenn Sie LVM und seine Bedeutung ignorieren, wird eine Partition möglicherweise geklont, jedoch nur zum Zurücklesen auf das ursprüngliche Laufwerk (kein Vermischen des Betriebssystems, Änderungen beim Booten usw.). t gegen ein anderes Laufwerk (Hardware-Signaturen?), dann wäre mein Vorschlag für ein erfolgreiches Experiment, die Low-Level-Formatierung auf dem 1-TB-Laufwerk genau wie das 500-GB-Laufwerk zu machen - ich meine genau! Sie müssen die MBR- und GPT-Tabellen mit einem Hex-Editor untersuchen. Dann schreiben Sie die Partitionen Byte für Byte auf das neue Laufwerk. Starten Sie dann das 1-TB-Laufwerk (vorausgesetzt, es ist erfolgreich) und erstellen Sie eine weitere Partition im neuen 500-GB-Speicherplatz oder erweitern Sie die Partition und das Live-Dateisystem, wenn Sie über eine solche Software verfügen und dieser vertrauen. Vertrauen in dieses Reich ist schwer zu finden, weil dieses Zeug schwierig und katastrophal ist, wenn es falsch verstanden wird. Kaufen Sie besser ein neues System oder eine neue Software mit einem guten Ruf und SHA256SUMed, damit Sie die Integrität überprüfen können. Digitale Systeme sind von Natur aus flüchtig und unbeständig. Sie sollten sich also daran gewöhnen, Änderungen vorzunehmen, wenn Sie mehr als das benötigen, was Sie haben.

2
Gavilan

Ich habe:

  • hinzufügen einer zweiten, größeren virtuellen Festplatte zur Ubuntu Virtual Machine (Virtual Box Setup)
  • kopierte die erste auf die zweite Platte mit "Sudo dd if =/dev/sda of =/dev/sdb"
  • hat die Swap-Partition auf SDB gelöscht (gparted)
  • vergrößertes sdb1 (gparted)
  • hat die Swap-Partition auf SDB neu erstellt (gparted)
  • hat die virtuelle Maschine gestoppt
  • das alte virtuelle Laufwerk entfernt (Virtual Box Setup)
  • ersetzt durch das neue kopierte und größere Laufwerk (Virtual Box-Setup)

Wenn es mit virtualbox funktioniert, funktioniert es auch mit realer Hardware ....

0
aldo