Nullen können nicht in fehlerhafte Sektoren / Festplatten geschrieben werden, ohne dass neu zugewiesene Sektoren gezählt werden

10

Ich habe ein Laufwerk, das meldet, dass die aktuell ausstehenden Sektoren "45" sind. Ich habe Badblocks verwendet , um die Sektoren zu identifizieren, und ich habe versucht, mit dd Nullen in sie zu schreiben .

Soweit ich weiß, sollte ein Versuch, Daten direkt in die fehlerhaften Sektoren zu schreiben, eine Neuzuweisung auslösen, die derzeit ausstehenden Sektoren um eins reduzieren und die Anzahl der neu zugewiesenen Sektoren erhöhen.

Auf dieser Festplatte sind jedoch sowohl die Rohwerte Reallocated_Sector_Ct als auch Reallocated_Event_Count 0, und dd schlägt mit E / A-Fehlern fehl, wenn ich versuche, Nullen in die fehlerhaften Sektoren zu schreiben. dd funktioniert jedoch gut, wenn ich an einen guten Sektor schreibe.

# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error

Bedeutet dies, dass mein Laufwerk in irgendeiner Weise keine freien Sektoren für die Neuzuweisung hat? Ist mein Laufwerk im Allgemeinen eine schreckliche Person? (Die Fahrt gehört nicht mir, ich helfe einem Freund. Vielleicht haben sie gerade eine billige Fahrt bekommen oder so.)

Falls es relevant ist, ist hier die Ausgabe von smartctl -i :

Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD15EARS-00Z5B1
Serial Number:    WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity:    1,500,301,910,016 bytes [1.50 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

UPDATE:
Ich habe shredauf der Festplatte ausgeführt, wodurch Current_Pending_Sector auf Null gesetzt wurde. Reallocated_Sector_Ct und Reallocated_Event_Count sind jedoch immer noch Null, und dd kann jetzt Daten in die Sektoren schreiben, die zuvor nicht möglich waren. Dies führt mich zu mehreren anderen Fragen:

  • Warum werden die Neuzuweisungen nicht von der Festplatte wiederhergestellt? Ich gehe davon aus, dass die Neuzuweisung stattgefunden hat, da ich jetzt Daten direkt in den Sektor schreiben kann und vorher nicht konnte.

  • Warum hat Shred eine Neuzuweisung verursacht und nicht dd? Macht die Tatsache, dass Shred zufällige Daten anstelle von Nullen schreibt, einen Unterschied?

MetaNova
quelle
Wie sind die anderen SMART-Werte? Ist Uncorrectable Sector Countmehr als null?
Synetech
Offline_Uncorrectable, von dem ich annehme, dass es dasselbe ist, hat einen Rohwert von 25.
MetaNova
Ja, und es hört sich so an, als ob das Laufwerk tatsächlich in einem schlechten Zustand ist. Sie können die Werte anhand dieser Tabelle überprüfen , wobei Sie besonders auf die roten Zeilen (gesundheitskritische Werte) achten. Am besten kopieren (nicht verschieben) Sie alles, was wertvoll / unersetzlich ist, an einen anderen Ort, starten Sie es neu, um es aus- und wieder einzuschalten. Wenn es immer noch funktioniert, löschen Sie es gründlich (vorzugsweise mit eigenen Tools ) und legen Sie es beiseite Ersatzspeicher für unwichtige Daten wie heruntergeladene Videos.
Synetech
Vielen Dank für Ihre Antwort. Meine Hauptfrage müsste wahrscheinlich sein, warum diese Sektoren nicht neu zugeordnet werden können. Sollte es nicht einfach erkennen, dass die Sektoren schlecht sind, sie in die Leere meiden, neu zuweisen und weitermachen? Ich mache mir keine Sorgen um Daten auf der Festplatte, da diese schon lange bereinigt wurden. Mein Freund ist nicht bestrebt, einen Briefbeschwerer von 1,5 TB zu haben, wenn er dies vermeiden kann.
MetaNova
Das scheint zu erwarten, aber es könnte sein, dass es einen schlechten Kopf hat. Wenn dies der Fall ist, funktioniert der Versuch, das Laufwerk zu lesen, so lange, bis Sie versuchen, auf den Plattenteller mit einem fehlerhaften Kopf zuzugreifen. Dann werden eine Reihe von Lesefehlern angezeigt, da ohne einen zu lesenden Kopf nicht auf den gesamten Plattenteller zugegriffen werden kann. Natürlich heißt es, dass Sektor 45 schlecht ist, was möglicherweise daran liegt, dass er bereits neu zugewiesen wurde, aber der SMART nicht aktualisiert wurde. Die Garantie ist vor einigen Monaten abgelaufen , aber Sie können versuchen, sie per E-Mail zu versenden, und möglicherweise werden sie durch einen Ersatz ersetzt.
Synetech

Antworten:

9

Das WD15EARS-Laufwerk (und die meisten anderen kürzlich hergestellten Laufwerke) verwendet das erweiterte Format. Dies bedeutet, dass die tatsächliche physische Sektorgröße dieses Laufwerks 4 KB beträgt und die herkömmliche Sektorgröße von 512 Byte nur emuliert wird. Aus diesem Grund werden alle 8 entsprechenden emulierten 512-Byte-Sektoren auf einmal unlesbar, wenn ein einzelner physischer 4-KiB-Sektor ausfällt.

(Die Sector Size: 512 bytes logical/physicalAusgabe von smartctlist nicht korrekt, da einige WD15EARS-Laufwerke eine falsche Größe des physischen Sektors melden.  Anscheinend verfügt Ihr Laufwerk über eine Firmware-Version, die in dieser Hinsicht fehlerhaft ist.)

Wenn ein einzelner emulierter 512-Byte-Sektor geschrieben wird, muss das Advanced Format-Laufwerk tatsächlich den gesamten physischen 4-KB-Sektor lesen, den entsprechenden 512-Byte-Teil davon ändern und dann den gesamten physischen Sektor auf das Medium schreiben. Wenn das Medium gut ist, führt diese Lese-, Änderungs- und Schreiboperation nur zu einer erheblichen Verlangsamung im Vergleich zu einem Laufwerk mit echten physischen 512-Byte-Sektoren. Wenn der physische 4-KiB-Sektor jedoch fehlerhaft ist und nicht gelesen werden kann, schlägt jeder Schreibvorgang fehl, bei dem der Sektor nicht vollständig neu geschrieben wird. Aus diesem Grund können Sie nicht Sektor Neuzuteilung auf solche Antriebe zwingen Verwendung ddmit bs=512 count=1 - Sie mindestens verwenden müssen , bs=512 count=8und stellen Sie sicher , dass die Sektornummer in derseek= Option ist ein Vielfaches von 8. (Dies setzt voraus, dass der „Windows XP-kompatible“ Jumper nicht installiert ist, andernfalls muss auch der von diesem Jumper hinzugefügte Ausrichtungsversatz berücksichtigt werden.)

Ein weiterer Grund, warum das Erzwingen der Neuzuweisung mit ddfehlschlagen kann, besteht darin, dass Linux standardmäßig einen Cache in der Blockschicht verwendet, um auf Blockgeräte zuzugreifen. Dies kann zu Lese-, Änderungs- und Schreibvorgängen in Software führen, die auch fehlschlagen, wenn ein nicht lesbarer Sektor auftritt. Sie können die oflag=directOption hinzufügen , diesen Cache für das von angegebene Gerät zu umgehen of=...(es gibt auch die iflag=directOption, die für das Eingabegerät gilt).

Sergey Vlasov
quelle
Danke, danke, danke, das war so hilfreich. Ich habe das Etikett auf dem Laufwerk gelesen und es steht "Advance Format". Ich weiß, was das jetzt bedeutet ... Haben Sie jedoch eine Vorstellung davon, dass das Laufwerk keine neu zugewiesenen Sektoren meldet?
MetaNova
1
"Derzeit anstehende Sektoren" sind nicht unbedingt schlechte Sektoren. Die Festplatte hatte nur ein wenig Probleme, sie zuvor bei ihren Leerlaufprüfungen zu lesen, möglicherweise weil sie dort lange nicht geschrieben hatte und die Daten zu verblassen begannen (dh eine Schwächung des Magnetfelds) ). Durch das Schreiben neuer Daten in diesen Sektor werden die Daten in diesem Sektor mit neuen Daten aktualisiert, die stark auf der Festplatte gebildet werden. Wenn Sie also in einen ausstehenden Sektor schreiben, geht die Festplatte davon aus, dass dies jetzt in Ordnung ist. Sie sollten versuchen, die Daten aus diesen Sektoren zurückzulesen, um zu bestätigen, dass sie stabil sind.
BeowulfNode42
Für diejenigen, die sich nicht um Daten auf der Festplatte kümmern und nicht die genaue Liste der Sektoren finden oder die Sektorzählung berechnen möchten, wird nur die gesamte Festplatte mit einer Blockgröße von einem Vielfachen von 4 KB, wie 16 MB, berechnet. Verwenden Sie dann eine Blockgröße von 4 KB für den letzten Teil der Festplatte, der kleiner als die zuvor ausgewählte Blockgröße ist.
BeowulfNode42
0

Ich musste dies kürzlich tun und stellte fest, dass das Ausführen von Shred auf der gesamten Festplatte sehr gut funktionierte. Während Shred für seinen beabsichtigten Zweck außer auf Disketten unbrauchbar ist, tut es genau das, was erforderlich ist, um die Selbstheilung auf schlechten Blöcken in Gang zu bringen.

Emil
quelle