Wie man eine leicht beschädigte SSD richtig auf eine neue kopiert

504
confetti

So brach vor kurzem meine alte SSD (mit / root + / home-Partitionen für mein System) (Details in dieser Frage ), und ich ging zu einer neuen. Jetzt wollte ich es klonen, stieß jedoch auf folgende Probleme:

$ pv /dev/sdd > /dev/sda 4.24GiB 0:00:18 [ 234MiB/s] [==> ] 7% ETA 0:03:55 pv: /dev/sdd: read failed: Input/output error  $ dd if=/dev/sdd of=/dev/sda bs=1M status=progress dd: error reading '/dev/sdd': Input/output error 4397+1 records in 4397+1 records out 4611493888 bytes (4.6 GB, 4.3 GiB) copied, 22.0249 s, 209 MB/s 

Die alte SSD funktioniert noch irgendwie. Es gibt viele Systemstaus, da das System beschädigt wird, aber ich kann es dennoch ganz gut entsperren, montieren und verwenden. Ich kann auf alle Daten (AFAIK) zugreifen und ein komplettes Backup tarfunktioniert auch gut.

Die Gründe, weshalb ich einen direkten Klon vor dem tarKopieren von Dateien (oder ) vorziehen würde, sind:

  1. Bequemlichkeit
  2. Geschwindigkeit
  3. Eher komplexe Verschlüsselung auf der Festplatte, die ich lieber nicht erneut einrichten möchte

Diese Website empfiehlt die Verwendung conv=noerrormit dd, aber ich bin nicht sicher, ob dies sicher ist oder nicht. Ich habe die gleichen Bedenken dd_rescueund Klonzillas -rescue.

Frage : Wie kann ich meine alte SSD sicher auf die neue kopieren, und reicht eine md5sumÜberprüfung aus, um sicherzustellen, dass der Klon zu 100% erfolgreich war?

Die oben verlinkte Website empfiehlt die Verwendung von gparted, um zu überprüfen, ob der Klon erfolgreich war. AFAIK gparted funktioniert jedoch nicht mit LUKS-verschlüsselten Partitionen. (Um es komplizierter zu machen: Der LUKS-Header wird getrennt.)

Bonusfrage : Die Entschlüsselung meines Laufwerks erfolgt beim Booten unter Verwendung von grub und der ID der Partitionen (nicht UUID). Ist es für mich ausreichend, die ID in meiner Crypttab- und Grub-Konfiguration zu aktualisieren, oder muss ich mehr tun?


Edit : Ich habe gerade festgestellt, dass md5sumdas Laufwerk wahrscheinlich auch nicht lesen kann. Gibt es eine andere Möglichkeit, sicher zu sagen, ob der Klon erfolgreich war?


UPDATE: Ich habe Clonezilla mit der -rescueOption ausprobiert . Es schien zu funktionieren und ich kann den LUKS-Container entsperren, um den LVM anzuzeigen, aber wenn ich versuche, die Root-Partition einzuhängen, erhalte ich Folgendes:

$ sudo mount /dev/mapper/vvg-root /mnt/sda mount: wrong fs type, bad option, bad superblock on /dev/mapper/vvg-root, missing codepage or helper program, or other error 

Relevante Daten von dmesg:

[ 4686.401702] JBD2: no valid journal superblock found [ 4686.401707] EXT4-fs (dm-3): error loading journal 

Ich denke, das hat nicht wie geplant funktioniert. Hat jemand eine bessere Idee, bitte?


UPDATE2: Ich habe fsck.ext4 -yvauf der neuen Festplatte eine Partition ausgeführt. Ich wurde mit Fehlern überflutet. In die Millionen Jetzt kann ich es mounten, aber fast alle meine Dateien fehlen. Das / home-Verzeichnis ist unter vielen anderen vollständig weg. Es sollten ungefähr 30-35 GB Daten darauf sein. Jetzt sind es 53MB.

Ist meine einzige Möglichkeit, die tarSicherung, die ich habe, wirklich zurückzusetzen ? Ich denke, vielleicht ist eine Eins-zu-Eins-Rsync-Kopie besser, da dies melden würde, wenn eine bestimmte Datei beschädigt / nicht lesbar ist, oder? Ich habe es verwendet, --verifyals ich das tarArchiv erstellt habe und es hat keine Fehler gemeldet.

3
[Clonezilla] (https://www.clonezilla.org/) mit der Option "-rettung" im "Expertenmodus". Alex vor 6 Jahren 0
@Alex Was genau macht das? Ich würde davon ausgehen, dass es wie "dd_rescue" funktioniert, indem IO-Fehler einfach ignoriert / übersprungen werden? Das schreckt mich ein wenig ab, ich würde mich sehr über eine ausführliche Beschreibung darüber, wie dies funktioniert und wie sicher es ist, zu verwenden, sehr freuen. confetti vor 6 Jahren 0
Ja, clonezilla versucht, mehrfach gebrochene Sektoren zu lesen, und wenn es fehlgeschlagen ist, wird der Rest des Inhalts genauso kopiert wie `dd_rescue '. Ich würde zuerst versuchen, ein Bild mit clonezilla zu erstellen, um sicherzustellen, dass mindestens vorhandene Daten gespeichert werden, und dann versucht, SSD mit einem Low-Level-Tool wie mhdd oder victoria zu "heilen", um den internen SSD-Controller dazu zu zwingen, defekte Sektoren zu ersetzen. Low-Level-Werkzeuge funktionieren bei mechanischen Antrieben gut, sind jedoch bei SSD-Antrieben nur selten hilfreich. Alex vor 6 Jahren 0
@Alex Ich werde ein Bild mit `dd_rescue 'erstellen und dann diese Werkzeuge untersuchen. confetti vor 6 Jahren 0
Seien Sie vorsichtig mit "dd_rescue", es ist sehr bemüht, einen beschädigten Teil der Festplatte zu lesen, der möglicherweise noch mehr SSD-Schaden verursacht (wenn interne Firmware versucht, beschädigte Sektoren durch gesunde zu ersetzen, aber keine freien Zellen). Alex vor 6 Jahren 0
@Alex Würde Clonezillas "Rettung" nicht dasselbe tun? confetti vor 6 Jahren 0
Nicht so schwer wie "dd_rescue" (mehrmals zwangsweise lesen), clonezilla überspringt einfach schlechte Sektoren und die "-rettung" -Option ist ein einfaches Flag, das nicht fehlschlägt und bei Fehlern stoppt, sondern stattdessen den restlichen Inhalt kopiert. Alex vor 6 Jahren 0
@Alex Ich habe meiner Frage ein Update hinzugefügt. Nach der CloneZilla-Kopie kann die Partition nicht gemountet werden. confetti vor 6 Jahren 0
Das größte Problem in Ihrem Fall ist die LUKS-Verschlüsselung. Die einzige Möglichkeit, Daten jetzt wiederherzustellen, ist meiner Meinung nach, SSD dazu zu zwingen, defekte Sektoren neu zuzuordnen (Tools: Victoria, MHDD, HDD Regenerator) oder jemanden zu finden, der das PC-3000-Hardware-Tool hat. Wie viele von SMART in Attribut 5 gemeldete Umzüge? Wenn dieser Wert nur wenige Remaps enthält, besteht immer noch die Möglichkeit, ihn wiederherzustellen. Alex vor 6 Jahren 0
@Alex-Smart-Werte für # 5 sind: `VALUE: 099, WORST: 099, THRESH: 010, RAW_VALUE: 53248` - Denken Sie daran, dass ich keine echte Notwendigkeit habe, Daten wiederherzustellen. Ich habe eine vollständige "tar" -Sicherung, die in Ordnung zu sein scheint (zum Testen wird "--verify" verwendet). Ich denke, zu diesem Zeitpunkt wäre es am einfachsten, die neue SSD von Grund auf zu erstellen (Verschlüsselung und LVM) und dann die alte SSD (die noch funktioniert) zu mounten und die Daten mit rsync auf die neue zu kopieren. Ich lade gerade die Boot-CD von hiren herunter, um das auszuprobieren. confetti vor 6 Jahren 0
Ich denke, dass diese SSD mit einem so großen `RAW_VALUE: 53248` ein totes Pferd ist, aber Sie können es versuchen. Stellen Sie sicher, dass Sie mindestens zwei vollständige Scans durchführen, die mit Null-Remaps abgeschlossen wurden, und machen Sie so schnell wie möglich klonen, wenn Sie erfolgreich sind. Alex vor 6 Jahren 0

2 Antworten auf die Frage

0
Willyuiop

Zunächst würde ich empfehlen, die SSD nicht zu verwenden oder Tests durchzuführen, da das Laufwerk möglicherweise weiterhin ausfällt. Ich hatte einmal ein Laufwerk, das ich reparierte, und nachdem ich einige Integritätsprüfungen durchgeführt hatte, ließ es sich nicht zu überhaupt gelesen werden. Wenn Sie es immer noch von einem separaten System aus sehen können, sollte es dennoch speicherbar sein. Die Verwendung kann jedoch dazu führen, dass die Chips nicht mehr lesen, also probiere ich einen vollständigen Klon aus, bevor Sie etwas anderes tun. Ich empfehle Clonezilla von USB zu verwenden, um die SSD während des Klonens vor unnötigem Lesen / Schreiben zu schützen. Wenn Sie es geklont haben, ist md5sum der beste Weg, um zu bestätigen, dass alles vorhanden ist, auch wenn es bei einem Ausfall möglicherweise nicht zuverlässig ist. Ein Bonus für die Verwendung eines Klon-Betriebssystems oder Hardware-Kloners besteht darin, dass alle Daten Sektor für Sektor kopiert werden.

Das beantwortet meine Frage nicht ganz. Ich benutze die SSD nicht mehr und stimme in Ihren Punkten überein, jedoch ist ein "vollständiger Klon" das, was ich versuche. AFAIK funktioniert mit clonezillas "clonepart" nicht mit vollen Festplatten (korrigieren Sie mich bitte, wenn ich falsch liege), und clonezillas "dd" ist im Wesentlichen das Gleiche wie das Verwenden von "dd" von einem anderen System. Übrigens: Ich versuche das alles auf einem Manjaro-Live-System, wobei die SSD abmontiert und gesperrt ist. Bei Verwendung von "pv" oder "dd" wird eine Kopie auch Sektor für Sektor erstellt. Ein "klonendes Betriebssystem" verwendet nicht viel mehr als normale UNIX-Tools. confetti vor 6 Jahren 1
@confetti Clonezilla kann das vollständige Klonen von Festplatten durchführen, wenn Sie die Option "Disk-to-Image" oder "Disk-to-Disk" wählen Alex vor 6 Jahren 0
@Alex Ich frage nach dem zugrunde liegenden Werkzeug, das Clonezilla für das Klonen verwendet. Ich habe Clonezilla seit einiger Zeit nicht mehr verwendet, aber ich erinnere mich an das letzte Mal, als ich eine Diskette geklont habe, bei der `dd` verwendet wurde. confetti vor 6 Jahren 0
NEIN, clonezilla benutzt `dd 'nur, wenn Sie es danach gefragt haben. Alex vor 6 Jahren 0
@confetti Das zugrunde liegende Werkzeug wurde in dieser Reihenfolge verwendet: "partclone" (Standard), "partimage" (optional), "ntfsclone" (optional) oder "dd" als letzter Ausweg, wenn Dateisysteme nicht ermittelt werden können Alex vor 6 Jahren 0
@Alex Das habe ich mir gedacht, AFAIK 'partclone' und 'partimage' sind jedoch nur verfügbar, wenn Sie mit Partitionen arbeiten, nicht mit vollen Festplatten. "ntfsclone" ist auch keine Option, da es nicht NTFS ist. In meinem Fall würde es also "dd" verwenden. Ich lade gerade Clonezilla herunter, um es zu sehen, aber ich bin mir ziemlich sicher, dass ich es das letzte Mal probiert habe. confetti vor 6 Jahren 0
@confetti Clonezilla ist nicht nur eine LiveCD, auf der einfach "partclone" ausgeführt wird. Wenn Sie das vollständige Klonen von Disk-zu-Image / Diskette durchführen, wird die gesamte Festplattenstruktur einschließlich MBR / GPT neu erstellt. Außerdem werden alle vorhandenen Partitionen eingeschlossen eine Scheibe Alex vor 6 Jahren 0
@Alex Also habe ich es gerade ausprobiert und ja, `dd` wird von clonezilla für Disk-to-Disk-Operationen verwendet. Ich habe "-Rettung" benutzt und fertig. Was soll mein nächster Schritt sein? confetti vor 6 Jahren 0
@confetti Es ist seltsam, dass clonezilla `dd` verwendet hat. In der Regel wird auf diese Methode nur zurückgegriffen, wenn das Dateisystem nicht ermittelt werden kann. Ich habe große Erfahrung mit Victoria, um Firmware dazu zu zwingen, defekte Sektoren zu ersetzen. Das einzige, es erfordert IDE-Modus im BIOS. Es funktioniert nicht mit AHCI. Im erweiterten oder klassischen Remap-Scanmodus wird der interne Controller dazu gezwungen, defekte Zellen durch Ersatzzellen zu ersetzen. Alex vor 6 Jahren 0
@Alex Ich habe mir dieses Tool angesehen, aber es läuft anscheinend nur unter Windows. Gibt es eine Linux-Alternative? Ich habe gehört, dass das Schreiben in einen fehlerhaften Block die Platte zwingen wird, sie neu zuzuordnen, aber das Überschreiben von Daten ist nicht wirklich das, wonach ich strebe ... Außerdem: Nun, es könnte gut sein, dass clonezilla es nicht herausfinden konnte Das Dateisystem ist ein maskiertes LUKS-verschlüsseltes Laufwerk (ein separater Header). confetti vor 6 Jahren 0
@confetti Wenn es LUKS fährt, dann erklärt es warum `dd` verwendet wird. Was Victoria betrifft, ist keine Windows-Version, was ich erwähnt habe. Sie müssen die Boot-CD von Hiren finden. Es gibt eine DOS-Version (die im Real-Modus funktioniert). Verwenden Sie die russische Version, da sie aktuell ist (einige Worte) müssen übersetzt werden, alles andere in Englisch). Wählen Sie mit 'P' den SATA-Kanal und dann F4, um mit "klassischer Neuzuordnung" zu scannen. Vicroria überschreibt keine defekten Sektoren, sondern versucht zuerst, Daten in den RAM-Speicher zu extrahieren, dann mehrere Schreibvorgänge in einen fehlerhaften Sektor auszuführen, um die Neuzuordnung zu erzwingen und dann den Sektor an derselben Stelle wiederherzustellen. Verwenden Sie IDE im BIOS mit Victoria Alex vor 6 Jahren 0
0
confetti

Nachdem ich getan hatte, was ich in meiner Frage gesagt hatte, tat ich am Ende Folgendes:
1) Entfernen Sie den LVM von der neuen SSD nach der fehlgeschlagenen CloneZilla-Kopie.
2) Ich habe die äußere dm-crypt unberührt gelassen, da sie gut funktionierte.
3) Ich habe ein neues LVM neu erstellt und die Größe der neuen (größeren) SSD angepasst.

(Dies ist nur für meinen Fall relevant, daher die kleinere Schriftart, siehe Fragen-Updates).

Nun zum Klonen:

1) Ich habe die Root-Partitionen beider SSDs normalerweise in einem Live-System gemountet:

# unlock the LUKS containers with cryptsetup first mount /dev/mapper/ovvg-root /mnt/oldssd mount /dev/mapper/vvg-root /mnt/newssd 

2) Ich habe mit rsync die Dateien geklont:

rsync -ahv --progress /mnt/oldssd /mnt/newssd 

3) Bestätigt, dass die Größe aller Ordner übereinstimmt:

du -cs /mnt/oldsdd/* && echo " " && du -cs /mnt/newssd/* 

4) Bestätigt, dass alle Dateien vorhanden sind, zur Überprüfung:

find /mnt/oldssd | cut -d "/" - f 4- | sort > oldssd.txt find /mnt/newssd | cut -d "/" - f 4- | sort > newssd.txt diff oldssd.txt newssd.txt 

Acht Dateien waren nicht vorhanden. newssd.txtIch vermute, diese hatten Lesefehler. Am Ende habe ich diese Dateien in Ruhe gelassen, da ich Backups habe. Ich werde sie später manuell kopieren.

5) Erfüllte meine Paranoia weiter durch Prüfen der Checksummen:

cd /mnt/oldssd && find . -type f -exec md5sum {} \; | sort > /root/oldssd_md5.txt cd /mnt/newssd && find . -type f -exec md5sum {} \; | sort > /root/newssd_md5.txt cd /root && diff oldssd_md5.txt newssd_md5.txt 

Überhaupt keine Ausgabe - Das heißt, jede Datei ist gleich!

Wie für die Bonusfrage:

1) Ändern Sie den Gerätepfad (mit UUID) in /etc/fstab
2) Ändern Sie den Gerätepfad (Verwenden by-id) in /etc/default/grub
3) Da ich jetzt nicht in mein System chroot kann, habe ich das grub.cfgdirekt geändert, um die Änderung der Datenträger zu berücksichtigen by-id- jedoch ist es die bessere Vorgehensweise tun Sie dies nicht und chrootieren Sie stattdessen in das Root-System und konfigurieren Sie den GRUB-Bootloader erneut. Ich tat dies sofort, nachdem ich von der neuen SSD in das System gebootet hatte.

Komplizierter, als ich es mir gewünscht hätte, aber es funktionierte zumindest sicher.