Schau mal hier rein, ob das nützlich ist: https://www.php.net/manual/de/function.dechex.php
// Input: A decimal number as a String.
// Output: The equivalent hexadecimal number as a String.
Freundlichen Gruß
Schau mal hier rein, ob das nützlich ist: https://www.php.net/manual/de/function.dechex.php
// Input: A decimal number as a String.
// Output: The equivalent hexadecimal number as a String.
Freundlichen Gruß
Die Funktion hab ich auch schon versucht, aber die spuckt auch nur 0x7FFFFFFF raus, da der Input eben zu gross ist.
#ifndef MfG
#define MfG
168598941204504 sind doch niemals die Betriebsstunden des Datenträgers.
Genau das ist ja das Problem an der Sache.
Umgerechnet in Hex ist der Wert 0x995700000018.
Und von diesem Wert brauche ich die unteren 32 bit => 0x995700000018 = 24 Stunden.
Diese 0x9957 oben rum sind "irgendwas" anderes. Keine Ahnung, ob das Sekunden sind, oder Minuten, Mondphase, Stärke vom Erdmagnetfeld, Anzahl Staubfussel aufm Gehäuse.... jedenfalls uninteressant und ohne erkennbares Muster, scheinbar völlig random.
Und Smartctl checkt das nicht, dass das da nicht dazugehört. Für den ist das der ausgelesene Raw Value.
#ifndef MfG
#define MfG
Was Du bekommst, ist ein wenigstens (angeblich) 48Bit großer Wert. Wenn die oberen Bits davon zufällig und willkürlich wechseln, würde ich von einem Fehler ausgehen. So weit hast Du das wohl auch schon bemerkt. Vermutlich was im Programm. Nächster Schritt für mich wäre, rausfinden, ob es an der neuen Platte liegt. Wäre für mich zwar nicht vorstellbar, aber ich würde nun eins nach dem anderen ausschließen.
Und ja, recht hast Du, an irgendeiner Stelle komme ich auch mit dem Umwandeln des Strings, aus Dezimalschreibweise, nicht weiter, weil irgendwann die 31 Bit während einer Berechnung überschritten werden. Eins ist vermutlich ein Vorzeichen-Bit.
MfG
Gibt es einen Unterschied zwischen "smartctl -A" und "smartctl -a" ?
Schon sehr alt, aber vielleicht gibt es hier Hinweise, denen man folgen kann.
Geändert von Moppi (12.10.2021 um 10:53 Uhr)
Nene das ist kein Fehler.
Es sind aktuell 14 Platten, und von denen haben das nur die 2 2TB von Seagate; auch alles unterschiedliche Modelle, also kein Serienfehler.
Alle anderen (Toshiba, Maxtor, WD) haben das Phänomen nicht. Hab auch vorher die Platte mal in Windows mit Speedfan ausgelesen, der liest den gleichen "Mist", nur eben brav als Hex. Aber der sieht den Wert auch unendlich hoch und die Festplatte damit als "uralt".
-A filtert die Ausgabe, so dass nur die Smart-Werte in der Tabelle ausgegeben werden.
Der Header fehlt dabei (also keine Disk-s/n, Modell, Firmware, etc.)
-a beinhaltet -A und noch bisschen was anderes (Health check, Capabilities, Fehlerausgaben, falls Fehler vorhanden)
Aber der Tipp mit dem Link war genial! Die Ausgabe in Minuten, Halbe Stunden etc. versagt halt zwar total, weil der gelesene Wert einfach Mist ist, ABER:
Ich kann die Ausgabe des Wertes als hex erzwingen mit "-v 9,hex48"; was komischerweise in meiner manpage nicht drinsteht.
Da heissts nur "Note that the printed output of smartctl displays numerical values in base 10 (decimal).", also kein Wort davon, dass das hex auch könnte.
Wundert mich etwas, da der Beitrag ja deutlich älter ist, als "meine" Version von smartctl.
Da hol ich mir dann einfach mit substr die hinteren 8 "Ziffern", hexdec, und fertig.
Jetzt schauen die Ausgaben nach was aus. Oben mit den noch fehlerhaften Werten, unten die richtigen Werte über Hex:
DAS war der perfekte Tip! Merci!
Der Wert mit den 36013 Stunden stimmt übrigens, die Platte hat schon einiges hinter sich.
MfG
Stefan
Geändert von Jaecko (12.10.2021 um 12:15 Uhr)
#ifndef MfG
#define MfG
Lesezeichen