Hallo
Ich habe eine HDD mit einer ganzen Anzahl defekter Sektoren. Mit
diversen tools kann ein auffüllen der HDD mit zeros gemacht werden. Dies
soll der HDD Firmware dabei helfen schlechte sektoren zu markieren und
entsprechend zu umgehen.
Kann man hier nicht etwas tiefer ansetzen und eine art "factory mode" in
der FW einsteigen und die Spuren der HDD (neu) schreiben, wie dies im
Werk gemacht wird?
So gut wie alle HDD werden heute über Servospuren auf der Platte
gesteuert, die nie neu geschrieben werden. Wenn diese beschädigt sind,
ist es vorbei.
Eine lange Formatierung (kein QuickFormat) kann allerdings defekte
Sektoren ausblenden, indem sie in die Liste nicht benutzbarer Sektoren
eingetragen werden. Auch ein vollständiger Offline Test mit SMART kann
helfen.
HDD schrieb:> Kann man hier nicht etwas tiefer ansetzen und eine art "factory mode" in> der FW einsteigen und die Spuren der HDD (neu) schreiben, wie dies im> Werk gemacht wird?
Nein, das geht nun schon seit Jahrzehnten nicht mehr. Die in den Platten
verbaute Hardware ist dazu schlicht schon lange nicht mehr in der Lage.
Ich würde empfehlen, das zu vergessen.
Erstens haben heutige Festplatten Reserve-Sektoren, die bei Fehlern
automatisch eingeblendet werden. Nach außen sichtbare Fehler entstehen
daher meistens erst, wenn die Reserve aufgebraucht ist.
Zweitens ist davon auszugehen, daß der Prozess, der die fehlerhaften
Sektoren ausgelöst hat, weiter fortschreitet. Die Platte wird nicht mehr
besser, sondern nur schlechter. Zuverlässigkeit, daß man seine Daten
auch morgen noch lesen kann, erreicht die Platte nie wieder.
Matthias S. schrieb:> So gut wie alle HDD werden heute über Servospuren auf der Platte> gesteuert, die nie neu geschrieben werden. Wenn diese beschädigt sind,> ist es vorbei.
Das war vor ca. 20-30 Jahren so als Festplatten aus einem dicken Stapel
bestanden. Heute hat eine 1GB Platte genau eine Scheibe, die
Korrekturwerte stehen irgendwo in einem ROM der während der Fertigung
beschrieben wird.
@BimBam
Das mit den Servospuren stimmt schon. Deine Erwiderung dazu hat mit
diesen Servospuren nichts zu tun.
Dass defekte Sektoren ab Werk in einem ROM stehen, könnte sein,
bezweifle ich allerdings. Denn in der Praxis kommen nach der Produktion
weitere defekte Bereiche dazu, die ebenfalls in die Reserve-Bereiche
ausgelagert werden.
BimBam schrieb:> Das war vor ca. 20-30 Jahren so als Festplatten aus einem dicken Stapel> bestanden. Heute hat eine 1GB Platte genau eine Scheibe, die> Korrekturwerte stehen irgendwo in einem ROM der während der Fertigung> beschrieben wird.
Nö. Dann würde die Platte nur genau in einer Betriebslage funktionieren
und eine Korrektur der Spurlage im Betrieb wäre unmöglich. Auch würde
jede Temperaturänderung die Justage verändern.
Was du meinst,sind die alten Schrittmotoren, die früher mal bei Platten
die Köpfe bewegt haben, heute funktionieren alle Kopfträger nach dem
Prinzip 'Drehspulinstrument', auch 'Voice Coil' genannt.
BimBam schrieb:> Matthias S. schrieb:>> So gut wie alle HDD werden heute über Servospuren auf der Platte>> gesteuert, die nie neu geschrieben werden. Wenn diese beschädigt sind,>> ist es vorbei.>> Das war vor ca. 20-30 Jahren so als Festplatten aus einem dicken Stapel> bestanden.
Unsinn. Vor 30 Jahren konnte man eine Platte tatsächlich noch
"LowLevel"-Formatieren (obwohl: selbst vor 30 Jahren, also 1988, war das
schon Glückssache, es gab zu dieser Zeit schon reichlich Platten, bei
denen das nicht mehr möglich war).
Und das hatte natürlich absolut nix mit der Zahl der Platter zu tun (es
gab auch damals schon sehr variable Zahlen), sondern allein mit der Art
der Steuerung der Köpfe. Die hatte früher(tm) eine absolute
Positionierung, ganz ähnlich wie bei einer Diskette (falls noch
irgendwer weiss, was eine Diskette war) und war eben dadurch in der
Lage, unabhängig eine echte Neuformatierung vorzunehmen. Später wurde
das Konzept zugunsten höherer Speicherdichten durch ein Servo-Konzept
ersetzt, welches zwingend eine "Vorformatierung" erforderte. Für eine
kurze Übergangszeit war es aber auch mit der Plattenelektronik selber
noch möglich, das Vorformatierungsmuster komplett neu aufzubauen. Das
wurde aber sehr schnell eingespart, da es in einer wenig
kontrollierbaren Umgebung sowieso nur noch sehr suboptimale Ergebnisse
erbracht hat.
> Heute hat eine 1GB Platte genau eine Scheibe, die> Korrekturwerte stehen irgendwo in einem ROM der während der Fertigung> beschrieben wird.
Unsinn.
1) Heute wie damals gibt es Platten mit einer recht variablen Zahl von
Plattern/Scheiben. Eben je nach geforderter und erreichbarer Kapazität
pro Platter.
2) Im ROM steht heute garnix mehr, weil es schlicht keinen ROM gibt,
sondern nur eine mehr oder weniger große Menge Flash. Wenn es Flash
gibt, der deutlich größer als für die Firmware selber nötig, dann dient
der typisch als Datencache. Die BadSectorList kann darin gespiegelt sein
oder auch nicht. Abgelegt ist sie aber auf der Platte selber, typisch
sogar in mehreren Instanzen.
3) Das "Formatierungsmuster" (die Servospuren) werden heute im
Produktionsprozess aufgebracht, lange bevor der Platter(stapel) das
erste mal mit seiner zukünftigen Steuerelektronik und deren Firmware in
Berührung kommt. Auch die initiale BadSectorList (und viele andere
Initialisierungswerte für die Firmware) werden unabhängig von der
zukünftigen Steuerelektronik/Firmware auf den Platter(stapel)
geschrieben.
4) Das ist so, weil die Plattenhardware selber dazu einfach nicht in der
Lage wäre. Die kann heute nur dann funktionieren, wenn die Servospuren
auf den Plattern bereits existieren.
Sprich: Matthias S. hat es völlig richtig dargestellt und du hast
einfach mal nicht den Hauch einer Andeutung einer Ahnung von modernen
Festplatten und deren Produktion...
Stefan U. schrieb:> Die Festplatten mit einem Kopfantrieb ähnlich dem Diskettenlaufwerk sind> allerdings noch deutlich älter als 30 Jahre.
Es geht hier natürlich nicht um den konkreten Antrieb, sondern um das
Konzept der absoluten Positionierung des Antriebs. Und das gab es bis in
die späten 80er Jahre tatsächlich auch bei HDs.
Ich hätte dir mehr zugetraut...
Ich muss hier dem c-hater recht geben. Beispiele für Festplatten mit
Schrittmotoren sind ST225, ST296N, ST125, ST157, D3142 ... und die
wurden noch Anfang der 90er produziert.
Linearmotoren und dedizierte Servoköpfe waren zu der Zeit deutlich
teureren Platten vorbehalten, "embedded Servo", d.h. der Verzicht auf
eine dedizierte Servooberfläche einer Platte kam erst etwas später.
Das "low level format" endete recht gleichzeitig mit dem Ende der
MFM-Schnittstelle; die allerersten IDE-Festplatten konnten das auch
noch, aber als durch IDE die kapazitätssteigernde Nutzung
unterschiedlicher Datenraten in Abhängigkeit des Spurdurchmessers
möglich wurden ("zone bit recording"), war das "low level format" eh'
Geschichte. Ab da mussten Festplatten mit "CHS mapping" arbeiten, da
kein Betriebssystem etwas mit unterschiedlichen Sektoranzahlen in
Abhängigkeit von der jeweiligen Spur hätte anfangen können.
Wie läuft eigentlich der Herstellungsprozess (moderne Festplatten)?
Mein (evtl fehlerhafter Wissenstand):
1. Die neuen magnetisch beschichteten Scheiben werden direkt in der HDD
mit neuen köpfen etc verbaut. Ohne vorherige behandlung.
2. Nach der Montage, wird die HDD in einem "factory mode" in der FW
gestartet. Dabei wird nach erreichen der Nenndrehzahl mit der voice coil
und der feinpositionierung die spur (bestimmtes format für spätere
zuweisung etc.) in die Platten geschrieben.
3. Dabei handelt es sicht nicht mehr um mehrere Ringe, sondern um eine
Spirale die ausgehend von der Parkposition über die gesamte Platte geht.
4. Die festplatte wird jeweils komplett mit ones und zeros beschrieben
und gelesen. Dabei entdekt die FW defekte sektoren und speichert die
defekten in einer Liste im Flash der HDD ab.
5. verpacken und ausliefern
Bei einem späteren Zugriff auf einn bestimmten Block sucht der Lesekopf
eine Spur welche an der Position oder geringfügig darunter ist. Der die
feinpositionierung des Kopfs ist auf die Stärke des Spurensignals
geregelt, und folgt dieser entsprechend.
Ich habe es in einzelne Punkte gegliedert; nur für den Fall, dass alles
falsch ist ;-)
c-hater schrieb:> Abgelegt ist sie aber auf der Platte selber, typisch sogar in mehreren> Instanzen.
Nö, nicht notwendigerweise.
Wir hatten hier (im Forum) schon mal den Fall, bei dem jemand das PCB
einer SATA-Platte getauscht hat („aus zwei mach eins“). Hatte erst
funktioniert, nachdem er auch den EEPROM ebenfalls getauscht hat.
War ein Standard I²C 24Cxx-EEPROM. Er tat sich ein bisschen schwer
damit, so ein SOIC-8 auszulöten, daher schlug er hier im Forum auf.
Was auch immer da drin steht, aber es scheint halt Festplatten zu
geben, bei denen nicht (mehr) komplett alle notwendige Info auf
der Platte selbst steht.
Bei SCSI-Platten konnte man noch ziemlich lange eine Art low-level
Formatierung in Auftrag geben. Je nach Platte ließ sich dabei sogar
die Anzahl der Bytes pro Block abändern – einige Hersteller von
Computern mochten zumindest eine Zeitlang gern eigene ECC-Bytes hinter
den eigentlichen Nutzdaten ablegen, sodass man Platten brauchte, die
sowas wie 528 Byte pro Block unterstützen (für 512 nutzbare Bytes).
Ich glaube, AIX war mal so ein Kandidat. Das funktionierte dann halt
nicht mit Platten aller Hersteller, und selbst bei denen, wo es ging,
gab es zwei verschiedene Varianten, wie man der Platte die Blockgröße
mitteilt, mit der sie formatiert werden soll (mode page vs. block
parameter header).
Ben B. schrieb:> Ich würde empfehlen, das zu vergessen.>> Erstens haben heutige Festplatten Reserve-Sektoren, die bei Fehlern> automatisch eingeblendet werden. Nach außen sichtbare Fehler entstehen> daher meistens erst, wenn die Reserve aufgebraucht ist.
Unter der Voraussetzung, dass die Festplatte rechtzeitig merkt, dass der
Sektor schlecht zu lesen ist, um die Daten noch fehlerfrei auf den
Reservesektor zu kopieren, bevor der Quellsektor vollends kaputt ist.
Das ist nicht immer gegeben.
> Zweitens ist davon auszugehen, daß der Prozess, der die fehlerhaften> Sektoren ausgelöst hat, weiter fortschreitet. Die Platte wird nicht mehr> besser, sondern nur schlechter. Zuverlässigkeit, daß man seine Daten> auch morgen noch lesen kann, erreicht die Platte nie wieder.
Ich hatte schon mal eine Platte die eine Zeitlang immer mehr defekte
Sektoren bekam und dann aber irgendwann sich wieder "stabilisiert" hat.
Dann kamen keine mehr dazu. Ich hab die Platte natürlich nur noch für
unwichtiges verwendet, das ich jederzeit mit wenig Aufwand wieder
herstellen kann, aber sie lief noch Jahre, ohne weitere Fehler zu
bekommen.
c-hater schrieb:> 2) Im ROM steht heute garnix mehr, weil es schlicht keinen ROM gibt,> sondern nur eine mehr oder weniger große Menge Flash. Wenn es Flash> gibt, der deutlich größer als für die Firmware selber nötig, dann dient> der typisch als Datencache.
Verwechselst du hier nicht den Flash, aus dem die Firmware kommt, mit
dem SSD-Cache einer Hybrid-Festplatte? Ich kenne das noch so, dass der
Firmware-Flash eher deutlich kleiner ist als für die gesamte Firmware
nötig, und dass daher der Rest der Firmware auch schon von der Platte
gelesen werden muss.
> Die BadSectorList kann darin gespiegelt sein oder auch nicht. Abgelegt> ist sie aber auf der Platte selber, typisch sogar in mehreren Instanzen.
Eine Instanz kann ja auch gar nicht reichen, denn es könnte ja sein,
dass gerade dort, wo die Liste steht, der Sektor defekt ist.
Ich wollte damit nicht sagen, daß die Platte gar nicht mehr geht.
Vielleicht hat die im Betrieb mal eine in die Fresse bekommen und
dadurch einen leichten Headcrash - dann wäre es möglich, daß die Platte
die betroffenen Sektoren irgendwann alle ausgeblendet hat.
Aber ich würde der Platte auf keinen Fall mehr vertrauen. Also als
Daten-Transport-Platte für alles was nicht durchs Internet oder auf
einen USB-Stick passt vielleicht noch brauchbar. Aber sobald man
irgendwelche wichtigen Daten draufpackt oder die Platte dort einsetzt wo
ein Ausfall mindestens sehr ärgerlich ist (z.B. als Systemplatte),
versagt sie mit Sicherheit (wenn nicht jetzt, dann nächste Woche). Dann
ärgert man sich richtig, wieso man die nicht gleich weggeschmissen hat.
Irgendwo habe ich mal gelesen, dass mehrere Eierige Spuren übereinander
geschrieben werden. Man geht davon aus, dass jede Spur ein kleines
bisschen von der vorherigen abweicht und man daher jeder einzelnen
folgen kann (so wie Fahrrad Spuren im Schnee).
Mir kommt dieses Verfahren allerdings sehr gewagt vor. Wobei Flash
Speicher wohl auch alles andere als solide funktionieren. Irgendwie hat
man es geschafft, das Glück zu pachten, könnte man meinen.
Bei Flash ist das Problem halt, daß die Bausteine durch die
Schreibprozessor verschleißen und man mehrere Bits in eine Speicherzelle
packt (verschiedene Spannungen oder Ladungen). Die Probleme fangen an,
wenn die Speicherzellen irgendwann ihre Ladung verlieren, dann kippen
bei SSDs gleich mehrere Bits. Umso mehr Bits in einer Zelle gespeichert
sind, desto geringer ist die Fehlertoleranz.
Rolf M. schrieb:> Unter der Voraussetzung, dass die Festplatte rechtzeitig merkt, dass der> Sektor schlecht zu lesen ist, um die Daten noch fehlerfrei auf den> Reservesektor zu kopieren, bevor der Quellsektor vollends kaputt ist.> Das ist nicht immer gegeben.
Das erweckt einen falschen Eindruck. Natürlich wird der Sektor ersetzt,
auch wenn die Daten des defekten nicht mehr lesbar sind, nur kann die
Platte dann halt die Originaldaten nicht übernehmen.
Man hat dann eine fehlerfreie Platte mit fehlerhaften Daten. In dem Fall
kann man löschen oder formatieren, bloss bringt das die Daten auch nicht
zurück.
Georg
Platten formatieren ist Hexenwerk.
Der (Low-Level-)Formatierer für Quantumplatten hatte eine
obfuskierte Skriptsprache. (So etwa wie der Spiegel online.)
Dumm nur wenn man statt eines "FD" ein "FDALL" in das Skript baute.
Das formatierte dann die Firmware auf der Platte gleich mit weg...
Stefan U. schrieb:> Irgendwo habe ich mal gelesen, dass mehrere Eierige Spuren übereinander> geschrieben werden. Man geht davon aus, dass jede Spur ein kleines> bisschen von der vorherigen abweicht und man daher jeder einzelnen> folgen kann (so wie Fahrrad Spuren im Schnee).>> Mir kommt dieses Verfahren allerdings sehr gewagt vor. Wobei Flash> Speicher wohl auch alles andere als solide funktionieren. Irgendwie hat> man es geschafft, das Glück zu pachten, könnte man meinen.
Nicht umsonst haben Festplatten und vermutlich auch SSDs eine FEC, die
fehlerhafte Daten on-the-fly repariert. Eine gewisse Menge an Fehlern
wird einfach als gegeben hingenommen, da sie im Rahmen dessen liegt, was
wegkorrigiert werden kann. War ja bei CDs auch schon so.
Rufus Τ. F. schrieb:> HDD schrieb:>> also sinds bei modernen Festplatten Ringe?>> Es war noch nie anders.
Und die Spuren werden nicht durch die HDD selbst (im Werk) geschreiben,
sondern bei der HDD werden bereits gespurte Scheiben verbaut?
HDD schrieb:> Und die Spuren werden nicht durch die HDD selbst (im Werk) geschreiben,> sondern bei der HDD werden bereits gespurte Scheiben verbaut?
Jo. Da dabei nur eine hochpräzise Schreibstation beim Hersteller
benötigt wird, ist das viel billiger, als in jeder Platte RAM oder Flash
dafür zu verschwenden, zumal die Voice Coil ja eh keine Ahnung von der
absoluten Position hat, auf der sie gerade steht, wenn noch keine
Servo/Kontrollspuren auf der Platte sind. Es gibt nicht mal 'Spur 0'
Sensoren oder sowas.
Man kann das mit einem CD Player vergleichen, dem man nur eine blanke
Silberscheibe unterschiebt (kein Rohling, sondern wirklich nur eine
blanke Scheibe).
Der arme Kerl hat dann keine Ahnung, wo sich der Laser gerade befindet,
der einzige Anhaltspunkt ist der Sensor für die Ruheposition, den HDDs
gar nicht haben.
Die meisten Platten haben heute ihre Firmware auf der Disk und laden sie
in den RAM, den man sowieso als Cache verkaufen kann und besitzen nur
einen Bootloader in dem MC, der die Platte steuert.
Hi,
also ich würde Dir erst mal das Programm Spin Rite empfehlen.
Das Progi kann so einige defekte Sektoren wieder zum Leben erwecken,
falls dir deine Daten darauf wichtig waren/sind.
Bevor du Dir das Programm kaufst, solltest dich schlau machen über
dessen Arbeitsweise und funktionen.
https://www.grc.com/spinrite.htm
and
https://www.youtube.com/watch?v=hqatPQo8vhc
Viel Erfolg mit deinem neuen Wissen. :-)
HDD schrieb:> Und die Spuren werden nicht durch die HDD selbst (im Werk) geschreiben,> sondern bei der HDD werden bereits gespurte Scheiben verbaut?
Nein. Das Servoschreiben erfolgt in situ, also mit verbauten
Magnetscheiben und Leseköpfen, allerdings nicht mit der späteren
Elektronik.
Die Formatierstation steuert Voice Coil und Schreib/Leseköpfe direkt an.
An der Seite des Festplattengehäuses ist ein Schlitz, der mit einem
Aufkleber verdeckt ist. Da geht der Strahl eines Laserinterferometers
rein. Mit dem kann die Formatierstation die Position der Köpfe präzise
ermitteln. So werden die Spuren nacheinander optisch angefahren und dann
die Servodaten geschrieben.
Jede SCSI- und jede IDE/SATA/SAS-Platte kennt ein Kommando zum
lowlevel-Formatieren ("04 FORMAT UNIT"). Was genau da passiert ist
herstellerabhängig. Bei heutigen Platten erfolgt meist eine
Oberflächenanalyse, bei der schlechte Sektoren markiert und ausgelagert
werden. Die Servodaten werden dabei nicht verändert.
HDD schrieb:> 3. Dabei handelt es sicht nicht mehr um mehrere Ringe, sondern um eine> Spirale die ausgehend von der Parkposition über die gesamte Platte geht.
Optische Medien wie CDs und DVDs verwenden Spiralen, da sie für
kontinuierlichen Datenfluss bei konstanter Bitrate konstruiert sind. Bei
Medienanwendung arbeiten sie mit konstanter Bitrate relativ zur
Oberfläche und daher variabler Drehzahl, andernfalls variieren je nach
Device sowohl Bitrate als auch Drehzahl.
HDDs haben immer mit konzentrischen Ringen gearbeitet, mit konstanter
Drehzahl und jenseits der ersten Jahre variabler Bitrate.
HDD schrieb:> habe eine HDD mit einer ganzen Anzahl defekter Sektoren
Überlege wieviel eine neue HD kostet und was eine Datenretteung kostet.
Ich habe bei tausenden Platten noch nie erlebt, daß eine "gesünder"
wurde. Merke Dir schon mal diesen Link:
https://www.krollontrack.de/datenrettung/
soul e. schrieb:> Jede SCSI- und jede IDE/SATA/SAS-Platte kennt ein Kommando zum> lowlevel-Formatieren ("04 FORMAT UNIT").
Für Interessierte: Die sg_utils unterstützen FORMAT UNIT:
https://linux.die.net/man/8/sg_format