Problem mit defekten Sektoren

Markus83Muc

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.976
Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen.
Ich habe eine OCZ Vertex SSD im NTFS Format mit defekten Sektoren.

Ich würde gern versuchen ein Image der SSD auf eine andere Festplatte zu übertragen (dabei nehme ich den Verlust von ein paar Daten in Kauf). Allerdings läuft meine BackUp-Software (Acronis True Image Home 2011) immer auf einen Fehler sobald sie einen defekten Sektor findet und bricht den Vorgang ab. Dies passiert sowohl beim Klonen auf eine andere HDD als auch beim erstellen eines BackUps.
Aus diesem Grund würde ich gern die defekten Sektoren irgendwie ausschließen, ich weiß aber leider nicht wie. CheckDisk bricht leider ebenfalls ab.

Ein normales Backup über Acronis habe ich notfalls noch von vor 2 Wochen (letzte Woche hat es mit Fehler abgebrochen, wohl das erste Anzeichen für die defekte Platte).
Ich würde aber gern versuchen den letzten möglichen Datenbestand wiederherzustellen.

Ich hoffe von euch kann mir jemand einen Tipp geben.

PS: Momentan hängen die defekte Platte und die neue Platte an einem Windows 7 Rechner bei dem ich ebenfalls Acronis True Image installiert habe.
 
Dies passiert sowohl beim Klonen auf eine andere HDD als auch beim erstellen eines BackUps.
Das wäre mir neu.

Aus diesem Grund würde ich gern die defekten Sektoren irgendwie ausschließen, ich weiß aber leider nicht wie. CheckDisk bricht leider ebenfalls ab.
Die SSD ist ganz einfach defekt; tausch sie aus... :)

Was sagt denn CrystalDiskInfo zu deiner SSD?
 
Eine SSD die defekte Zellen nicht "umparkt"? Komisch...

Ich würde das ganz mal ausserhlb von Win probieren z.B. mit der Parted magic CD.
 
Markus83Muc schrieb:
Ich würde gern versuchen ein Image der SSD auf eine andere Festplatte zu übertragen (dabei nehme ich den Verlust von ein paar Daten in Kauf). Allerdings läuft meine BackUp-Software (Acronis True Image Home 2011) immer auf einen Fehler sobald sie einen defekten Sektor findet und bricht den Vorgang ab. Dies passiert sowohl beim Klonen auf eine andere HDD als auch beim erstellen eines BackUps.
Aus diesem Grund würde ich gern die defekten Sektoren irgendwie ausschließen, ich weiß aber leider nicht wie. CheckDisk bricht leider ebenfalls ab.

Direktes Klonen funktioniert bei defekten Sektoren nicht (mehr), du kannst aber mit True Image ein Sektor-für-Sektor Image deiner SSD machen und dieses dann auf eine neue Platte zurückspielen, das klappt.

Ist nur ein Arbeitsschritt mehr und dauert eben etwas länger...
 
Freak-X schrieb:
Die SSD ist ganz einfach defekt; tausch sie aus... :)
Na was, auf die Idee bin ich noch nicht gekommen.
endo schrieb:
du kannst aber mit True Image ein Sektor-für-Sektor Image deiner SSD machen und dieses dann auf eine neue Platte zurückspielen, das klappt.
Ging leider auch nicht. Sobald die defekten Sektoren erreicht wurden ist die Festplatte abgebrochen.

Mein versuch mit einer Linux-Start CD hat leider auch nicht geholfen.

Letztendlich habe ich jetzt das 2 Wochen alte BackUp eingespielt und die geänderten Daten die ich noch auslesen konnte manuell überführt.
Erfreulich fand ich wie einfach man mit Acronis ein BackUp auch auf eine Festplatte mit anderer Größer einspielen konnte.
 
Startet mal CrystalDiskInfo und poste einen Screenshot wo alle Attribute drauf zu sehen sind. Ggf. musst Du das Fenster etwas vergrößern.
 
Da inzwischen das Problem gelöst ist und alle wichtigen Daten wiederhergestellt sind, schicke ich die Platte jetzt nur noch zum Hersteller ein als Garnatiefall.
 
Nachtrag: Selbstverständlich können auch bei SSDs defekte Sektoren, oder nicht lesbare Blöcke entstehen. Wenn plötzlich z.B. ein Transistor in der Adressierungseinheit versagt, wird's dunkel im betroffenen Gebiet. ECC kann nur 1 Bit, manche Varianten auch mehrere Bits korrigieren. Bei defekten Blöcken ist das unmöglich.
Zum Auslesen eignet sich z.B. eine Knoppix-DVD, von der man "dd_rescue" startet. Man erzeugt erstmal eine Image-Datei, und tastet sich von beiden Seiten aus an die defekte Stelle heran. Dann kopiert man das Image auf einen neuen Datenträger, und scannt die Daten mit einem geeigneten Programm.
 
_TK_, die ECC von SSDs kann deutlich mehr als ein Bit korrigieren, denn ein gekipptes Bit ist bei SSDs keine Seltenheit sondern ehr schon normal. Darum kümmert sich aber der Controller und der ersetzt Blöcke immer erst, wenn er sie entweder nicht löschen oder nicht mehr beschreiben kann. Kritisch wird es erst, wenn er das nicht erkennt oder keine Reserveblöcke mehr hat. Die Vertex (ohne 2 oder 3) hat noch den Indilinx Barefoot und der hat eine extrem hohe WA und ein unterirdisch schlechtes Wearleveling.

Jede SSD hat übrigens schon ab Werk defekte Blöcke, da wo z.B. ein Staubkorn lag und damit einen Block geschädigt hat, wirft man ja nicht das ganze NAND weg. Dafür haben die ja auch alle immer mehr Flash verbaut als der User nutzen kann. Immerhin müssen ja auch die FW und Verwaltungsdaten wie die Mappingtabelle von LBA auf Flashadressen dort untergebracht werden.
 
Ich bin kein Experte, was Fehlerkorrektur angeht. Dazu gibt es sicherlich gute Literatur.
Aber mit Speichermedien kenne ich mich einigermaßen aus, daher muß ich noch ein wenig Senf dazugeben..

FLASH- oder auch DRAMs haben zwar bei der Herstellung genug defekte Speicherzellen, aber diese werden während des Wafertests (Front End) ausgeblendet. Das passiert, indem durch einen Laserstrahl die entsprechenden Zellen deaktiviert, und mittels eines feinen Metall"Pinsels" (Focused Ion Beam) Leitungen zu den Reservezellen aktiviert werden. Die nunmehr 100% guten Zellen werden aber durch Benutzung nicht besser, hier kommt es zu Korngrenzendiffusion und anderen Effekten - und schon wird die Fehlerkorrektur aktiv. Solange, bis der Speicherling entweder im Müll, oder beim Datenretter landet.

Die Firmware des FLASH-Speichermediums ist meines Wissens im Controller untergebracht. Eine Mappingtabelle von LBA auf "normale" Adressen gibt es so nicht, bei FLASH-Medien verwendet man entweder Blocknummern (90%) oder Translatortabellen. Das Wear Leveling verteilt Schreibzugriffe durch geschicktes Umlagern der Blöcke / Blocknummern.
 
_TK_, Du solltest Dich wirklich nochmal mehr mit aktuellen SSD Controllern befassen. SandForce hat eine Technik die sich RAISE nennt und eine Die nur für die Prüfsummen verwendet, obwohl Flashpages schon von sich aus Platz für die Prüfsummen bieten. Schau Dir mal diese Ergebnisse von HD Tune und HD Tach dieses Tests einer Intel X-25V bei awardfabrik.de an:

hd_tach_8mb.png


hd_tune_bench_read.png


Die SSD kann gar keine 200MB/s oder gar mehr lesen:

crystal_disk.png


Die Kurven zeigen nur da die reale Geschwindigkeit halbwegs richtig an, wo der Speicher auch wirklich belegt ist. Würden die Blocknummmern nur immer mal vertauscht, so wäre unter jeder LBA immer eine Speicheradresse zu lesen. Das ist aber nicht so, wie man deutlich sieht. Außerdem muss der Controller für jede LBA auch wissen, ob die Daten darin noch gültig sind oder schon ungültig wurden, weil sie entweder überschrieben oder getrimmt worden sind. Das alles nur auf Blockebene zu verwalten wäre zu ineffizient, würde die Performance verschlechtern, die WA erhöhen und das Wearleveling wäre extrem ineffizient.

Die FW kann man zwar auch im Controller unterbringen, aber wenn man sowieo GB an Flash hat, dann ist es günstiger die auch gleich dort abzulegen. Bei HDDs macht man das ja auch so, dass man die FW einfach auf die Platte selbst schreibt. Spart halt extra noch mal Flash auf der Platine dafür verbauen zu müssen bzw. der Controller aufwendiger zu machen.
 
Zuletzt bearbeitet:
Holt schrieb:
_TK_, Du solltest Dich wirklich nochmal mehr mit aktuellen SSD Controllern befassen.
Keine Sorge, das tue ich. Seit ca. 2 Jahren beschäftige ich mich ausgiebig mit Interna von FLASH-Speichermedien. Mit Gewerbeschein. Hauptberuflich arbeite ich bei einer Firma, die Wafertester herstellt.

Holt schrieb:
Schau Dir mal diese Ergebnisse von HD Tune und HD Tach ... an:
...Die SSD kann gar keine 200MB/s oder gar mehr lesen:
Da es nur noch sehr selten den guten SLC-FLASH-Speicher (Single Level Cell, also 1 Bit je Speicherzelle) zu kaufen gibt, verteilt man Schreib- und Lesezugriffe auf mehrere Chips. Im Fachjargon Interleaving genannt, d.h. ein Bit rechts, ein links usw. Das kann man auch mit Bytes, Pages usw. so tun, ganz wie es sich der Entwickler ausgedacht hat. Damit kaschiert man die langsamen Zugriffe der einzelnen Speicherzellen, und treibt die Geschwindigkeit hoch. Ähnlich wie bei RAID-0 sinkt dabei natürlich auch die Zuverlässigkeit, wenn eine Teil des Speichers komplett versagt.

Holt schrieb:
Die Kurven zeigen nur da die reale Geschwindigkeit halbwegs richtig an, wo der Speicher auch wirklich belegt ist.
...bzw. wo die Fehlerkorrektur noch nicht arbeiten muß! Ich wage zu behaupten, die Lage von Betriebs- und Dateisystem erkennen zu können.
Fehlerkorrektur benötigt immer etwas Rechenzeit, auch wenn die Algorithmen fest verdrahtet sind. Fragt mal einen Datenretter, wie lange das Sichern (mit Fehlerkorrektur) mancher "ausgeleierten" FLASH-Speicher dauert! 24h sind keine Seltenheit, mein Rekord lag bei 32 Stunden für einen 32G-Speicher.
Holt schrieb:
Würden die Blocknummmern nur immer mal vertauscht, so wäre unter jeder LBA immer eine Speicheradresse zu lesen. Das ist aber nicht so, wie man deutlich sieht.
Was der Anwender zu sehen bekommt, ist nicht das, was in den FLASH-Speichern hinterlegt ist. Ich kann Dir gern Rohdaten zur Verfügung stellen.
Holt schrieb:
Außerdem muss der Controller für jede LBA auch wissen, ob die Daten darin noch gültig sind oder schon ungültig wurden, weil sie entweder überschrieben oder getrimmt worden sind. Das alles nur auf Blockebene zu verwalten wäre zu ineffizient, würde die Performance verschlechtern, die WA erhöhen und das Wearleveling wäre extrem ineffizient.
Man kann ja einfach einen Aktualitätszähler einfügen, was man in der Praxis auch so macht. Der Block mit dem höchsten Index ist aktuell.

Holt schrieb:
Die FW kann man zwar auch im Controller unterbringen, aber wenn man sowieo GB an Flash hat, dann ist es günstiger die auch gleich dort abzulegen. Bei HDDs macht man das ja auch so, dass man die FW einfach auf die Platte selbst schreibt...
Das mit den HDDs stimmt so nur zum Teil, bei SSDs bin ich mir nicht sicher. Die Festplatten-Firmware ist auf den äußeren Spuren der Platten untergebracht, aber jede Festplatte hat einen kleinen FLASH-Speicher (extern oder im Controller integriert), der die Koordinaten dorthin zeigt, und meistens noch einen Teil der adaptiven Parameter enthält. Woher soll der Controller denn sonst wissen, wo er die Firmware suchen soll?
Ich gehe davon aus, daß es bei vielen FLASH-Controllern ähnlich gehandhabt wird.
 
_TK_, wir reden komplett aneinander vorbei, mit SLC und Interleave hat das alles nch nicht einmal etwas zu run. Also lassen wir es besser. Ich wünsche Dir beruflich jedenfalls viel Erfolg.
 
Wie Du meinst. Wir waren ja schon ein wenig vom Thema dieses Threads abgekommen.

Gruß

Thomas
 
Zurück
Oben