Christoph Schnauß: SMART-Fehler

hallo Forum,

seit ein paar Tagen ärgert mich ein Rechner damit, daß er ab und an nicht richtig hochfahren will. Entweder bricht GRUB mit einem Error ab, oder es gibt einen Hinweis auf einen SMART-Fehler, oder er startet nach dem dritten oder vierten reboot doch noch.
Ich weiß nicht recht, wie ich das reparieren soll. Einen Plattendefekt konnte ich nicht diagnostizieren. Hat jemand eine Idee, was da los sein könnte?

Und noch eine Kuriosität: main Mainboard hat einen Soundchip. Den Treiber dafür gibts in WindowsXP nicht, den muß ich von der zum Board gehörenden CD holen. Hat etliche Jahre ganz gut funktioniert.
Neuerdings "vergißt" Windows aber beim Herunterfahren den Treiber. Wird neu gestartet, gibt es keine Systemklänge mehr und auch nicht die "Eröffnungsmelodie" zu der Meldung "Benutzereinstellungen werden geladen". Ich muß in der Systemsteuerung über den Gerätemanager das dort durchaus angezeigte Audiogerät (SoundMAX Integrated Digital Audio) deinstallieren, danach über Hardware "neue Hardware" suchen gehen, dann ist alles wieder da, auch ohne den Treiber neu von der CD zu holen. Nervig. Eventuell ist irgendein Update dran schuld, aber da bin ich mir nicht sicher.

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|
  1. Hallo Christoph,

    seit ein paar Tagen ärgert mich ein Rechner damit, daß er ab und an nicht richtig hochfahren will. Entweder bricht GRUB mit einem Error ab, oder es gibt einen Hinweis auf einen SMART-Fehler, oder er startet nach dem dritten oder vierten reboot doch noch.
    Ich weiß nicht recht, wie ich das reparieren soll. Einen Plattendefekt konnte ich nicht diagnostizieren. Hat jemand eine Idee, was da los sein könnte?

    Du kennst das doch: Ohne die genaue Fehlermeldung kann Dir niemand sagen, was auch nur los sein _könnte_.

    Aber einen SMART-Fehler würde ich dringendst näher untersuchen. Das heißt nämlich nicht zwangsläufig, dass die Platte futsch ist, sondern dass die Platte auf dem Weg dazu ist. Jede moderne Festplatte besitzt die Möglichkeit, bis zu 100 defekte Sektoren in einem separaten Speicher unterzubringen. D.h. sobald die Platte einen defekten Sektor erkennt, wird der Inhalt (sofern er noch zu retten ist) in den Extra-Speicherbereich kopiert und dieser Sektor als "defekt" markiert - die Platte liest und schreibt dann die Inhalte dieses Sektors immer von/in den Extra-Speicherbereich. Damit bekommt das Betriebsystem oder sonstige Software das i.d.R. gar nicht mit. Die Anzahl der defekten Sektoren kann über Utilities, die den SMART-Status der Festplatte auslesen, abgefragt werden. Jede Festplatte besitzt weiterhin einen sog. Threshold, der angibt, ab wie vielen defekten Sektoren sie "FEHLER" schreien soll. Moderne BIOSe fragen diesen Status ab und wenn die Platte über diese Fehlerzahl hinausgekommen ist, wird das auch gemeldet. Es gibt noch weitere Kriterien, an Hand derer eine Platte sich als "Fehlerhaft" einstuft, aber das ist wohl der häufigste. Sobald eine Platte also "SMART-Fehler" meldet, solltest Du dringendst mit einem geeigneten SMART-Auslesetool (kann smartctl unter der Linux-Kommandozeile sein, es gibt jedoch noch etliche andere) die genaue Ursache für diesen Fehler erkunden und dann, falls nötig, sofort möglichst alle Daten sichern. Die Wahrscheinlichkeit, dass die Festplatte nach einem SMART-Fehler Daten verliert, evtl. ganz kaputt geht, ist sehr groß. Am besten Ersatz beschaffen und die alte nicht mehr verwenden (wenn noch Gewährleistung/Garantie drauf ist und Du nichts mit der Platte angestellt hast, was sowas provozieren könnte (unnötigen Erschütterungen ausgesetzt, Feuchtigkeit, Feuer, ...), solltest Du sie einschicken).

    Viele Grüße,
    Christian

    --
    "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
    1. hallo Christian,

      Du kennst das doch: Ohne die genaue Fehlermeldung kann Dir niemand sagen, was auch nur los sein _könnte_.

      Natürlich. Ich habe diese Fehlermeldung aber seit drei Tagen nicht wieder zu sehen bekommen, dafür brach heute morgen GRUB mit einem Error ab, beim erforderlichen reboot lief dann alles durch udn der Rechner startete.

      Aber einen SMART-Fehler würde ich dringendst näher untersuchen.

      Würde ich ja gerne, deshalb habe ich nachgefragt.

      Sobald eine Platte also "SMART-Fehler" meldet, solltest Du dringendst mit einem geeigneten SMART-Auslesetool (kann smartctl unter der Linux-Kommandozeile sein, es gibt jedoch noch etliche andere) die genaue Ursache für diesen Fehler erkunden

      smartctl war mir bisher nicht bekannt. Ich werde es mal probieren - vermutlich muß das ja erst emerged werden.

      und dann, falls nötig, sofort möglichst alle Daten sichern.

      Das ist passiert mit Stand von 19.30 Uhr, wobei die Backup-Archive eh nur minimal ergänzt werden mußten. Im übrigen bewege ich mich jetzt im Moment grade auf dieser Platte.

      wenn noch Gewährleistung/Garantie drauf ist

      Nö, leider nicht mehr, ist im Juli abgelaufen.

      Laut Wikipedia-Artikel müßten die Fehlermeldungen irgendwo archiviert sein. Ich nehme an, daß ich mit smartctl da herankomme? Oder ist dir eventuell ein Windows-Tool bekannt, das dieses Protokoll auch auslesen und darstellen könnte?

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hallo Christoph,

        smartctl war mir bisher nicht bekannt. Ich werde es mal probieren - vermutlich muß das ja erst emerged werden.

        Das Paket unter Gentoo heißt übrigens smartmontools.

        Laut Wikipedia-Artikel müßten die Fehlermeldungen irgendwo archiviert sein. Ich nehme an, daß ich mit smartctl da herankomme?

        Ja.

        Oder ist dir eventuell ein Windows-Tool bekannt, das dieses Protokoll auch auslesen und darstellen könnte?

        Es gibt welche (vmtl. hunderte), mir ist aber keines bekannt.

        Viele Grüße,
        Christian

        --
        "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
        1. hallo Christian,

          Das Paket unter Gentoo heißt übrigens smartmontools.

          Aha. Danke. Ich habs nun emerged.

          Laut Wikipedia-Artikel müßten die Fehlermeldungen irgendwo archiviert sein. Ich nehme an, daß ich mit smartctl da herankomme?
          Ja.

          öhm ... die Ausgabe von
             smartctl --all /dev/hda
          zeigt mir diese Liste. Und nu? Wie bewerte ich das (es handelt sich immerhin wirklich um die problematische Platte)? Da gibts zwar einen Hinweis auf
             "Error 19366 occurred at disk power-on lifetime: 14704 hours (612 days + 16 hours)"
          aber was hilft mir das, wenn ich herausfinden will, wie ich den gelegentlich auftretenden Startfehler zu beheben habe (jaja, du hast ja recht, ich sollte noch so gründlich als möglich "man smartctl" nachlesen)? Alle "Errors" sind beinahe zwei Jahre alt, aber einen Hinweis auf eventuell fehlerhafte Sektoren sehe ich nicht ...

          :-(

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Moin!

            öhm ... die Ausgabe von
               smartctl --all /dev/hda
            zeigt mir diese Liste. Und nu? Wie bewerte ich das (es handelt sich immerhin wirklich um die problematische Platte)?

            Die Ausgabe sagt dir einerseits (die Tabelle weiter oben, "Vendor Specific SMART Attributes with Thresholds"), dass die diversen Plattenparameter alle noch innerhalb der Toleranzgrenzen sind (Value und Worst > als Thresh).

            Andererseits meldet dir die Platte, das mittlerweile 19368 Fehler aufgetreten sind, die letzten 5 wurden gespeichert und waren Lesefehler.

            Und Lesefehler sind etwas, das man auf keiner Festplatte haben will.

            Alleine deshalb solltest du den Plattentausch alsbald durchführen, und diese fehlerhafte Platte danach dann einer ggf. auch datenzerstörenden (weil schreibenden) Funktionsprüfung unterziehen.

            Lesefehler werden, wie Christian schon schrieb, von modernen Platten eigentlich unbemerkt ausgeglichen - sofern das möglich ist. Das bedeutet, dass die Platte beim letztmalig erfolgreichen Lesen des jetzt fehlerhaften Sektors sowohl fehlerfrei (Prüfsumme stimmt) lesen konnte, als auch gemerkt hat, dass der Sektor "nachläßt" und nicht weiter benutzt werden sollte. Dann würde das interne Remapping greifen, das anstelle dieses Sektors einfacn einen Reservesektor transparent benutzt. Das merkt man nur daran, dass sich beim seriellen Lesen an dieser Stelle der betroffenen Datei ein Sinken der Lesegeschwindigkeit bemerkbar macht, weil die Köpfe woanders hin positioniert werden müssen.

            Wenn der Sektor aber beim letzten erfolgreichen Leseversuch noch nicht als schlecht erkennbar war, und beim jetzigen Leseversuch die Prüfsumme nicht mehr stimmt, kann die Platte nicht einfach remappen, weil dann Datenverlust droht. Deshalb wird die Platte den Sektor einfach so lange auf der Abschußliste belassen, bis er noch ein letztes Mal korrekt ausgelesen werden konnte. Alternativ könnte das Betriebssystem den Sektor auch neu beschreiben wollen. Dann wäre der bisherige Dateiinhalt ja obsolet, und es würde direkt ein Reservesektor verwendet. So ein Beschreiben des Sektors kann man auf Betriebssystemebene im Zweifel auch provozieren - sofern du dich mit dem verwendeten Dateisystem und dessen Debugging-Tools auskennst, alternativ würde auch die Übersetzung der von SMART gemeldeten Sektornummer in eine vom OS genutzte Cluster- bzw. Blocknummer und einen darauf gemünzten Schreibzugriff auf die Platte helfen können, den Fehler loszuwerden - allerdings dann auch den Inhalt dieses Sektors, der mutmaßlich zu einer evtl. nicht ganz unwichtigen Datei gehört, die dadurch auch beschädigt würde.

            Deshalb: Festplatte retten, indem du die Daten kopierst. Dann kannst du hinterher soviel experimentieren, wie du willst.

            aber was hilft mir das, wenn ich herausfinden will, wie ich den gelegentlich auftretenden Startfehler zu beheben habe (jaja, du hast ja recht, ich sollte noch so gründlich als möglich "man smartctl" nachlesen)? Alle "Errors" sind beinahe zwei Jahre alt, aber einen Hinweis auf eventuell fehlerhafte Sektoren sehe ich nicht ...

            Mit smartctl kannst du einen Selbsttest der Festplatte starten, wobei es drei Typen von Tests gibt. Nimm am besten den LONG - der dauert eine Weile (deine Festplatte meint 37 Minuten), in der die Platte nicht genutzt werden sollte, der versucht aber alle Sektoren zu lesen (ohne Datentransfer zum Rechner, nur plattenintern) und würde bei Problemen auch abbrechen und Meldungen im Fehlerlog hinterlassen.

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
            1. hallo,

              Die Ausgabe sagt dir [...], das mittlerweile 19368 Fehler aufgetreten sind, die letzten 5 wurden gespeichert und waren Lesefehler.
              Und Lesefehler sind etwas, das man auf keiner Festplatte haben will.

              Daten sind alle "gerettet". Ich habe inzwischen die Platte völlig leergefegt, alles auf 00 zurückgesetzt einschließlich MBR, danach neu partitioniert und neu formatiert. System ist noch keines wieder drauf. Inzwischen meldet mir smartctl aber 20337 Fehler, also fast tausend mehr. Nett, aber ich verstehe es nicht. Ich finde keine fehlerhaften Sektoren, allerdings meldet mir "smartd" mittlerweile im log: "Device: /dev/hda, 10 Currently unreadable (pending) sectors". Kann ich dieses Protokoll auch irgendwie löschen, damit es aktuell neu aufgebaut wird? In "man smartctl" habe ich keine solche Option gefunden.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Moin!

                Inzwischen meldet mir smartctl aber 20337 Fehler, also fast tausend mehr.

                Dann sind tausend weitere Leseversuche gescheitert. Das können tausend Sektoren gewesen sein. Die bemerkst du nicht zwingend, wenn du mit Betriebssystemmitteln auf die Festplatte zugreifst, weil du vom Betriebssystem aus nur eine logische Ansicht der Platte kriegst. Aber die Festplattenelektronik, zu deren Interna du lesenden Zugriff über SMART erhälst, die registriert natürlich die Leseprobleme.

                Nett, aber ich verstehe es nicht. Ich finde keine fehlerhaften Sektoren, allerdings meldet mir "smartd" mittlerweile im log: "Device: /dev/hda, 10 Currently unreadable (pending) sectors".

                Wie gesagt: SMART liefert Einblick in interne Meßwerte, die über das normale Festplatteninterface dem Betriebssystem nicht zugänglich gemacht werden. Es ist heutzutage absolut normal, dass Festplatten nicht in allen Oberflächenbereichen absolut 100%ig benutzbar arbeiten. Jedenfalls nicht zwingend für ihre gesamte Lebensdauer. Weil es billiger ist, in der Elektronik etwas Fehlerredundanz (in Form von Redundanzbits, robusten Prüfsummen, transparentes Remapping von defekten Bereichen auf Reservebereiche) einzubauen, anstatt eine wesentlich höhere Ausschußrate durch 100% Fehlerfreiheit zu provozieren, gibt es halt interne Meßwerte, die die Funktionsfähigkeit der Platte prüfen. Und wenn diese Werte ohnehin schon intern existieren, kann man sie auch nach außen transportieren. :)

                Deine Fehlermeldung bedeutet, dass bei 10 Sektoren der letzte Leseversuch mit einem Fehler geendet hat, der Sektor eigentlich umgemappt werden muß, aber das erst geschieht, wenn dieser Sektor wieder komplett beschrieben wird, oder wenn er noch einmal fehlerfrei gelesen werden konnte (dann werden die Daten automatisch in einen Ersatzsektor geschrieben, der dann künftig transparent anstelle des alten genutzt wird).

                Kann ich dieses Protokoll auch irgendwie löschen, damit es aktuell neu aufgebaut wird?

                Nein, SMART-Daten sind read-only. Sie geben die existierende Festplattenwahrheit wider. Die Festplattenelektronik interessiert die Betriebssystemlogik einer Partitionierung oder eines Dateisystems nicht, sie hat sich für die Lesbarkeit jedes einzelnen Sektors zu interessieren. Und da sind im Moment 10 Stück so fehlerhaft, dass sie unbedingt umgemappt werden müssen.

                Diesen Fehlereintrag kannst du nur eliminieren, indem du die fraglichen Sektoren mit neuen Daten (Nullen, Einsen, Rauschen, egal was) überschreibst, weil dann ein Ersatzsektor genutzt und der alte Sektor aus dem Betrieb genommen wird.

                Es wäre also eine gute Idee, einfach noch mal eine Weile /dev/null nach /dev/hda zu kopieren, und danach noch einmal den langen Selbsttest der Platte aufzurufen.

                - Sven Rautenberg

                --
                "Love your nation - respect the others."
                1. hallo Sven,

                  Es wäre also eine gute Idee, einfach noch mal eine Weile /dev/null nach /dev/hda zu kopieren, und danach noch einmal den langen Selbsttest der Platte aufzurufen.

                  Na ok, also ein Rüberkopieren von /dev/null nach /dev/hda läuft grade. An der Platte kann ich ja eh nix mehr kaputtmachen, sondern höchstens "eingeschränkte Benutzbarkeit" wiederherstellen, und irgendwelche ungesicherten Daten sind auch nicht (mehr) drauf.

                  Das Testergebnis, das ich mit
                     smartctl --test=long --log=error  /dev/hda
                  kriege, ist mir aber unverständlich. Es ist lediglich die Zahl der Lesefehler angewachsen, aber sonst unterscheidet sich das log nicht von dem, was ich bereits verlinkt habe - ich habs daher nicht nochmal neu gemacht, also nicht nochmal neu in mein temporäres Vereichnis geladen.

                  Mir gehts gar nicht so sehr darum, diese offensichtlich kränkelnde Platte mit Gewalt wieder gesundzupflegen - sobald ich im BIOS die SMART-Prüfung abschalte, sieht sie ja auch durchaus unbeschädigt aus. Sondern ich würde gerne richtig verstehen, was da passiert ist und vielleicht sogar, warum das passiert ist. Es gab vor vielleicht vier Wochen mal zwei Tage, an denen mir jeweils mit einem ganz leisen, feinen Klicklaut genau diese Platte einfach "ausgestiegen" ist, nach einem reboot war sie dann aber wieder da und ich dachte mir nix weiter dabei. Das hat sich inzwischen offenbar potenziert, und jetzt denke ich mir was bei Vewrwendung dieser Platte. Jedenfalls so lange, wie ich sie als primary master angestöpselt habe.

                  Ich habe den Rechner mit dieser Platte heute mindestens 20mal runter- und wieder hochgefahren, um den "Startfehler" vielleicht zu provozieren. Aber sie machts heute, nach der "low-Level-Formatierung" und einem Neuaufbau der Partitionstabelle(n), bisher problemlos.

                  Welches Tool würdest du denn einsetzen, wenn du herausfinden willst, ob es auf einer Platte fehlerhafte Sektoren gibt?

                  Grüße aus Berlin

                  Christoph S.

                  --
                  Visitenkarte
                  ss:| zu:) ls:& fo:) va:) sh:| rl:|
                  1. Moin!

                    Das Testergebnis, das ich mit
                       smartctl --test=long --log=error  /dev/hda
                    kriege, ist mir aber unverständlich. Es ist lediglich die Zahl der Lesefehler angewachsen, aber sonst unterscheidet sich das log nicht von dem, was ich bereits verlinkt habe - ich habs daher nicht nochmal neu gemacht, also nicht nochmal neu in mein temporäres Vereichnis geladen.

                    Was schade ist, denn die Testdurchläufe sollten sich im Log widerspiegeln, und das sollte man sehen können. Mal diff drauf angesetzt, um dir die Unterschiede zu präsentieren?

                    Mir gehts gar nicht so sehr darum, diese offensichtlich kränkelnde Platte mit Gewalt wieder gesundzupflegen - sobald ich im BIOS die SMART-Prüfung abschalte, sieht sie ja auch durchaus unbeschädigt aus.

                    Das ist der Denkfehler. Dieses SMART-Feature im BIOS ist extrem hilfreich. Es fragt (durchaus grobkörnig) die Platte, wie sie ihren Status sieht. Dasselbe faßt smartctl relativ am Anfang zusammen als "SMART overall-health self-assessment test result: PASSED" - wenn die Platte meint, sie würde noch einige Zeit laufen können.

                    Und gerade deshalb ist es extrem wichtig, dass man dieses SMART-Feature im BIOS einschaltet, weil man nur dann bevorstehende Probleme der Festplatte hoffentlich rechtzeitig gemeldet bekommt - und nicht erst, wenn die Daten restlos verloren gegangen sind.

                    Sondern ich würde gerne richtig verstehen, was da passiert ist und vielleicht sogar, warum das passiert ist. Es gab vor vielleicht vier Wochen mal zwei Tage, an denen mir jeweils mit einem ganz leisen, feinen Klicklaut genau diese Platte einfach "ausgestiegen" ist, nach einem reboot war sie dann aber wieder da und ich dachte mir nix weiter dabei. Das hat sich inzwischen offenbar potenziert, und jetzt denke ich mir was bei Vewrwendung dieser Platte. Jedenfalls so lange, wie ich sie als primary master angestöpselt habe.

                    Ich kann dir nicht sagen, was genau passiert ist. Klicklaute können durchaus mit dem Fehler in Zusammenhang stehen. Was aber die Ursache für diesen Klick war, kann man nur raten, solange man die Platte nicht aufschraubt und optisch von innen untersucht (das wiederum würde die Platte wegen des Staubs komplett unbenutzbar machen). Wobei noch die Frage ist, ob man das simple Nachlassen eines oder mehrerer Sektoren mit bloßem Auge erkennen kann. Headcrashes sind meist deutlich als Rille auf dem Träger erkennbar.

                    Ich habe den Rechner mit dieser Platte heute mindestens 20mal runter- und wieder hochgefahren, um den "Startfehler" vielleicht zu provozieren. Aber sie machts heute, nach der "low-Level-Formatierung" und einem Neuaufbau der Partitionstabelle(n), bisher problemlos.

                    Was zu erwarten war. Der fehlerhafte Sektor, der den Start beeinflußt, ist vermutlich schon lange ausgetauscht.

                    Welches Tool würdest du denn einsetzen, wenn du herausfinden willst, ob es auf einer Platte fehlerhafte Sektoren gibt?

                    Nichts anderes, als ich schon beschrieb: Platte komplett mit neuen Daten füllen, und dann den Plattenselbsttest - das bringt Info ziemlich direkt vom Schreib/Lese-Kopf. Ansonsten: Scandisk "intentiv". Wenn das Betriebssystem Sektoren nicht mehr lesen kann, sollte man das damit merken. Das wäre dann allerdings schon Alarmstufe Rot hinsichtlich der Vertrauenswürdigkeit der Platte, IMHO.

                    - Sven Rautenberg

                    --
                    "Love your nation - respect the others."
                    1. hallo Sven,

                      • ich habs daher nicht nochmal neu gemacht, also nicht nochmal neu in mein temporäres Vereichnis geladen.
                        Was schade ist, denn die Testdurchläufe sollten sich im Log widerspiegeln, und das sollte man sehen können.

                      Bitte. Das hier ist der bereits angegebene Zustand, und das hier ist das Ergebnis, nachdem hda völlig leergeräumt, mit Nullen überschrieben und anschließend neu partitioniert wurde.

                      Mal diff drauf angesetzt, um dir die Unterschiede zu präsentieren?

                      Ja. Die Ausgabe von diff habe ich nur nicht gleich verstanden, und einen Vergleich der beiden Ausgaben dann mit Textpad wiederholt - ist für mich leichter lesbar, sagt inhaltlich aber dasselbe aus.

                      sobald ich im BIOS die SMART-Prüfung abschalte, sieht sie ja auch durchaus unbeschädigt aus.
                      Das ist der Denkfehler. Dieses SMART-Feature im BIOS ist extrem hilfreich.

                      Ich bin diesem Denkfehler ja glücklicherweise nicht verfallen. Allerdings gibt es dieses Feature, SMART-Prüfungen zu erlauben oder zu unterbinden, vermutlich erst in BIOS' ab Baujahr 2002.

                      Grüße aus Berlin

                      Christoph S.

                      --
                      Visitenkarte
                      ss:| zu:) ls:& fo:) va:) sh:| rl:|