it-swarm.com.de

Wie behebe ich einen Ein- / Ausgabefehler mit dd?

Hallo, ich versuche, mein Windows 7-System mit einer kaputten Festplatte zu reparieren, aber es läuft noch.

Ich versuche, alle Daten auf ein neues Laufwerk zu kopieren, um Windows 7 neu zu installieren. Das Laufwerk heißt SQSERVICE.

Ich kann überhaupt nicht kopieren - siehe unten:

$ Sudo dd if=/dev/sdc1 of=/dev/sda1
dd: reading `/dev/sdc1': Input/output error
11233976+0 records in
11233976+0 records out
5751795712 bytes (5.8 GB) copied, 187.731 s, 30.6 MB/s

Wie kann ich diesen "Input/Output Fehler" beheben?

10
Erazer

Sie haben es selbst gesagt: Ihre Festplatte ist kaputt. Sie können ddrescue versuchen. Möglicherweise kann der fehlerhafte Pfad umgangen werden. Beachten Sie jedoch, dass Sie Daten verlieren.

Das Wiederherstellen von einem Backup wird einfacher sein :)

Die korrekte Verwendung von ddrescue lautet wie folgt:

Sudo apt-get install gddrescue
Sudo ddrescue /dev/sdc1 /dev/sda1

oder wenn Sie stdout an das Progess Monitoring Tool leiten möchten:

Sudo ddrescue /dev/sdc1 /dev/sda1 | pv
13

Ich weiß nicht, ob dies für irgendjemanden nützlich ist, aber wenn ich diese Seite bei meiner Suche gefunden habe, hilft es vielleicht jemandem (außer dem OP, der hoffentlich sein Problem vor Monaten gelöst hat).

ddrescue ist in diesem Fall möglicherweise die beste Wahl für die Datenwiederherstellung (anders als "Beheben" des Fehlers/der Festplatte, als die ursprüngliche Frage formuliert wurde), wie Dennis vorschlug.

Alternativ können Sie auch den Datenträger einhängen und die Dateien kopieren. Dies ist VIEL schneller, wenn viel freier Speicherplatz vorhanden ist oder wenn Sie nur bestimmte Dateien möchten. WARNUNG: Wenn dies auf einem Linux-Computer ausgeführt wird, gehen alle erweiterten Attribute, wie z. B. Dateiberechtigungen, verloren. Dies ist eine sehr schlechte Wahl für Betriebssystemdateien, ist jedoch für Benutzerdateien tolerierbar. Wenn Sie es von Windows aus tun, sollten diese erhalten bleiben, es kann jedoch vorkommen, dass Fehler nicht reibungslos behandelt werden, was möglicherweise zu einer sehr langsamen Ausführung führt.

Eine andere Möglichkeit, die Sektoren tatsächlich zu "reparieren", anstatt sie nur zu umgehen, besteht darin, die fehlerhaften Sektoren neu zuzuweisen. Wenn Sie die Sektornummer kennen (in Ihrem Fall 11233976 unter der Annahme, dass Ihre Blockgröße in dd und die Sektorgröße 512 ist), führen Sie dies einfach aus und wiederholen Sie die Ausführung für jeden neuen fehlerhaften Sektor, den Sie finden:

hdparm –write-sector 11233976 –yes-i-know-what-i-am-doing /dev/sdb

WARNUNG: Dadurch werden die Daten in diesem Sektor zerstört. Stellen Sie also sicher, dass Sie wirklich wissen, was Sie tun. Wenn dieser Sektor nicht gelesen werden kann, werden die Fehler durch Überschreiben gestoppt. Dies bedeutet jedoch, dass der Sektor Datenmüll enthält und möglicherweise eine wichtige Datei beschädigt.

Weitere Informationen finden Sie hier: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/

Und wenn Ihre Festplatte eine große Anzahl (vielleicht Tausende) fehlerhafter Sektoren aufweist (entweder als Current_Pending_Sector, Offline_Uncorrectable oder Reallocated_Sector_Ct angesehen), oder wenn sie neu ist und noch Garantie hat oder wenn die Anzahl im Laufe der Zeit ständig steigt, sollten Sie die ersetzen Scheibe sowieso. Lassen Sie sich nicht sagen, dass die Neuzuweisung die Festplatte repariert. Es werden nur die bekannten fehlerhaften Sektoren behoben und die für die Neuzuweisung reservierten Sektoren verbraucht. Wenn die Festplatte dazu neigt, mehr fehlerhafte Sektoren zu entwickeln, tritt das Problem immer wieder auf, wenn Daten beschädigt werden.

6
Peter