ubuntuusers.de

S.M.A.R.T. Überwachung und Start in Ubuntu

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

ingo2

Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Ich habe die 'smartmontools' aus dem Ubuntu-Repository mit Synaptic installiert und sie scheinen auch automatisch die (einzige) Platte /dev/sda in gewissen Abständen abzufagen und auch Plattentests anzustoßen.

Aber ich finde in der Prozeßliste den 'smartd' absolut nicht

Laut System->Systemverwaltung->Dienste ist dort 'Hardwareüberwachung smartmontools' aktiviert.
Laut Boot-up-manager ebenso: smartmontools in allen Runleveln aktiviert, aber bei 'Läuft' ist ein '?'

In der Konfigurationsdatei /etc/smartd.conf ist nur folgende Zeile aktiv:

DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner

In der /etc/default/smartmontools steht nur folgendes:

# Defaults for smartmontools initscript (/etc/init.d/smartmontools)
# This is a POSIX shell fragment

# List of devices you want to explicitly enable S.M.A.R.T. for
# Not needed (and not recommended) if the device is monitored by smartd
#enable_smart="/dev/hda /dev/hdb"

# uncomment to start smartd on system startup
#start_smartd=yes

# uncomment to pass additional options to smartd on startup
#smartd_opts="--interval=1800"


Bisher habe ich die Zeile '#start_smartd=yes' noch nicht aktiviert, da ja Ubuntu offensichtlich den auf eine andere Art und Weise startet?
Wie könnte er sonst unter 'Dienste' gelistet werden?

Diese (gute) Doku zu dem Thema habe ich auch gefunden:
http://www.howtoforge.de/howto/den-zustand-der-festplatte-mit-smartmontools-debian-ubuntu-uberprufen/

Offensichtlich hat Hardy ja Start-Scrips für alle Runlevel und die vorhandenen System-Tools haben auch 'smartmonmtools' als aktiviert gekennzeichnet, ohne daß ich den in /etc/default/smartmontools aktiviert habe.

Kann da vielleicht Jemand diese Widersprüche klären?
Ruft Hardy eventell per cron-job 'smartctl' auf und benutzt die Konfigurationsdateien garnicht?
(ich habe auf meinem System aber dazu nix gefunden)

Viele Grüße,
Ingo

Nachtrag:
habe jetzt mal die Zeile

start_smartd=yes

aktiviert und sogar neu gebootet - kein smartd in der Prozeßliste ☹

Dann ein Versuch im Terminal:

root@pp:/home/ingo# /etc/init.d/smartmontools stop
 * Stopping S.M.A.R.T. daemon smartd                                     [ OK ] 
root@pp:/home/ingo# /etc/init.d/smartmontools start
 * Starting S.M.A.R.T. daemon smartd                                     [fail] 


Was ist da bloß los? Mit smartctl kann ich die Platte auslesen, Test starten und offensichtlich tut Hardy das vonb Haus aus - aber wie???
Und hier das Syslog dazu:

ingo@pp:~$ cat /var/log/syslog |grep smart
Jun  6 20:17:00 pp smartd[6298]: smartd version 5.37 [x86_64-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen 
Jun  6 20:17:00 pp smartd[6298]: Home page is http://smartmontools.sourceforge.net/  
Jun  6 20:17:00 pp smartd[6298]: Opened configuration file /etc/smartd.conf 
Jun  6 20:17:00 pp smartd[6298]: Drive: /dev/sda, implied '-a' Directive on line 25 of file /etc/smartd.conf 
Jun  6 20:17:00 pp smartd[6298]: Configuration file /etc/smartd.conf parsed. 
Jun  6 20:17:00 pp smartd[6298]: Device: /dev/sda, opened 
Jun  6 20:17:00 pp smartd[6298]: Device /dev/sda: ATA disk detected behind SAT layer 
Jun  6 20:17:00 pp smartd[6298]:   Try adding '-d sat' to the device line in the smartd.conf file. 
Jun  6 20:17:00 pp smartd[6298]:   For example: '/dev/sda -a -d sat' 
Jun  6 20:17:00 pp smartd[6298]: Unable to register SCSI device /dev/sda at line 25 of file /etc/smartd.conf 
Jun  6 20:17:00 pp smartd[6298]: Unable to register device /dev/sda (no Directive -d removable). Exiting. 
Jun  6 20:23:03 pp smartd[6851]: smartd version 5.37 [x86_64-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen 
Jun  6 20:23:03 pp smartd[6851]: Home page is http://smartmontools.sourceforge.net/  
Jun  6 20:23:03 pp smartd[6851]: Opened configuration file /etc/smartd.conf 
Jun  6 20:23:03 pp smartd[6851]: Drive: /dev/sda, implied '-a' Directive on line 25 of file /etc/smartd.conf 
Jun  6 20:23:03 pp smartd[6851]: Configuration file /etc/smartd.conf parsed. 
Jun  6 20:23:03 pp smartd[6851]: Device: /dev/sda, opened 
Jun  6 20:23:03 pp smartd[6851]: Device /dev/sda: ATA disk detected behind SAT layer 
Jun  6 20:23:03 pp smartd[6851]:   Try adding '-d sat' to the device line in the smartd.conf file. 
Jun  6 20:23:03 pp smartd[6851]:   For example: '/dev/sda -a -d sat' 
Jun  6 20:23:03 pp smartd[6851]: Unable to register SCSI device /dev/sda at line 25 of file /etc/smartd.conf 
Jun  6 20:23:03 pp smartd[6851]: Unable to register device /dev/sda (no Directive -d removable). Exiting. 

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Habe jetzt mal den Hinweis aus dem Syslog befolgt und die Option

-d sat

ergänzt:

siehe da smartd startet jetzt!

Bleibt die mysteriöse Erscheinung, daß der Dienst von den System-Tools als 'gestartet' gemeldet wird, obwohl er nicht läuft?
Auf jeden Fall ist auf die Konfiguration durch Synaptic kein Verlass, ohne Editor ist der smartd einfach tot ☹

Ingo

seekme

Anmeldungsdatum:
21. April 2008

Beiträge: Zähle...

Hi Ingo,

Öha.
Ich benutze smardmon jetzt schon ne weile.
Ohne deinen Beitrag wäre mir gar nicht aufgefallen dass der smartd seit dem Upgrade auf 8.04 nicht mehr läuft.

die selbe Fehlermeldung in /var/log/daemon.log

Device /dev/sda: ATA disk detected behind SAT layer
Jun  6 19:48:17 Castor smartd[5100]:   Try adding '-d sat' to the device line in the smartd.conf file.
Jun  6 19:48:17 Castor smartd[5100]:   For example: '/dev/sda -a -d sat'
Jun  6 19:48:17 Castor smartd[5100]: Unable to register SCSI device /dev/sda at line 143 of file /etc/smartd.conf

Aus "man smart.d" wegen -d sat

sat - the device type is SCSI to ATA Translation (SAT).  smartd will generate ATA  (smart)  com‐
mands  and then package them in the SAT defined ATA PASS THROUGH SCSI commands. The commands are
then routed through the SCSI pass through interface to the operating system. There are two types
of  ATA  PASS  THROUGH  SCSI commands: a 12 byte and 16 byte variant.  smartd can use either and
defaults to the 16 byte variant. This can be overridden with this syntax:  ´-d  sat,12´  or  ´-d
sat,16´.

Nach dem Upgrade hab ich zwar hda durch sda ersetzt, die logfiles bin ich aber nicht durchgegangen ob noch alles geht.
Ein kleines Kickerapplet wäre schön.

(bei mir tauchts in den Prozessen als smartd auf. Bei Systemdienste aber "läuft nicht")

ciao

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Tja, ich stehe jetzt vor einem Problem mit der smartd.conf:

mit 'DEVICESCAN' findet er offensichtlich keine SATA-Platten, da er nur nach dem 6. Buchstaben im Device-Namen schaut (IDE oder SCSI).

Ich hab hier eine externe eSATA-Platte für Backup-Zwecke. Die ist natürlich nicht immer angeschlossen.
Wenn ich nun beide Platten (sda und sdc) mit je einer Zeile und der Option -d sat in smartd.conf eintrage, beendet sich smartd, wenn er die eSATA-Platte sdc nicht beim Start vorfindet. Er startet nur und registriert beide Platten, wenn sdc beim Booten da ist.

Dafür gibt's dann die Option -d removable, dann startet der smartd auch ohne angeschlossene sdc - ok.
Aber mit angeschlossener eSATA-Platte findet er sie natürlich nicht, da müßte die Option stattdessen '-d sata lauten. Für mich nicht lösbar das Rätsel,
Ingo

seekme

Anmeldungsdatum:
21. April 2008

Beiträge: 13

Ich weiß jetzt nicht ob ich dich richtig verstanden habe.

Wenn die externe Platte beim Starten angesteckt ist findet er sie mit der Directive "-d sat".
Ist das richtig?
(Ich habe keine SATA Festplatte und weiß nicht ob die nun unter ATA, SCSI oder SAT läuft)

Du brauchst aber "-d removable" weil die Platte nicht immer angestekct ist und der daemon sonst nicht startet?

Die Option "-d sata" seh ich im manual nicht.

Geht "-d removable sat" denn nicht?

weil:
" removable - This Directive may be used in conjunction with the other ´-d Directives. "

Gute Nacht.

Edit: ich lass mit evtl. Fehler mit Postfix per mail schicken. Schicke Sache 😀

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Die Option "-d sata" seh ich im manual nicht.

Sorry, das ist ein Typo, meine natürlich '-d sat'

Geht "-d removable sat" denn nicht?

Das muß ich probieren. Aber die man-page von smartd sagt:
"-d TYPE
Specifies the type of the device. This Directive may be used multiple times for one device, but the arguments ata, scsi, sat, marvell, cciss,N and 3ware,N are mutually-exclusive. If more than one is given then smartd will use the last one which appears. "

Eine Möglichkeit wäre noch, den DEVICESCAN einzuschränken:

DEVICESCAN -d ata -m root@example.com


laut man-page gilt dann:
".... will do the same, but restricts the scan to ATA devices only."

Na ich lasse das erstmal mit der eSATA-Platte und kümmere mich um die Mail-Benachrichtigung. Dabei stehe ich noch vor einem kleinen Problem:

1. Thunderbird kann keine System-Mails abholen - jedenfalls weiß ich noch nicht wie
2. smartd kann keine Mails extern (mit Authentifizierung) z.B. an gmx.net verschicken - jedenfalls weiß ich noch nicht wie

Wer hat da eine Idee?

Viele Grüße,
Ingo

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Habe jetzt mal die Konfiguration von smartmontools soweit verstanden und eine brauchbare smartd.conf erstellt

Dazu aber noch eine Frage:
in der Ubuntu-Konfiguration wird nach jedem S.M.A.R.T.-Test (alle 30 min.) das Script smartd-runner ausgeführt:

cat /usr/share/smartmontools/smartd-runner
#!/bin/bash -e

tmp=$(tempfile)
cat >$tmp

run-parts --report --lsbsysinit --arg=$tmp --arg="$1" \
    --arg="$2" --arg="$3" -- /etc/smartmontools/run.d

rm -f $tmp

Kann mir Jemand bitte erklären, was dieses Script tut?
Offensichtlich wird da der Output des Tests ausgewertet - um zu warnen?

Viele Grüße,
Ingo

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

So, habe jetzt auch noch den
smart-notifier installiert und getestet mit der Option '-M test' in smartd.conf → geht, kommt ein Pop-Up mit Warnung.

Jetzt habe ich aber eine wichtige Frage:

was oder wann sendet der smart-notifier eine solche Warnung???
und wie kann man konfigurieren, wann er aktiv werden soll???

Zumindest mit der Konfiguration in /etc/smartd.conf hat das nicht direkt zu tun, denn:

wenn ich in smartd.conf einen Parameter (z.B. Temperatur) auf 'ignore' setze (Option '-I 194'), dann taucht dieser Parameter/Attribut auch nicht mehr in /var/log/syslog auf - ok, korrekt.

Aber das Attribut 190 (100 - Temperatur) erscheint noch im syslog - ok.

Wenn sich das aber ändert, dann wird smart-notifier nicht aktiv ☹

Das ist natürlich wenig vertrauenerweckend, ich kann zwar testen, daß smart-notifier an sich funktioniert, aber wann er nun eine Warnung ausgibt, bleibt mir ein Geheimnis - wer kann da helfen?

Viele Grüße,
Ingo

seekme

Anmeldungsdatum:
21. April 2008

Beiträge: 13

Ohne irgendwelche Anleitungen zu lesen VERMUTE ich, daß sich der Notifier nur dann meldet wenn:

a) Ein smart-Wert die Grenze (Threshold) ünterschreitet oder
b) einer der vom smartd durchgeführten Tests etwas anderes als 'Completed without Error' ausgibt.

Das einzige das wirklich zu testen wäre:
1) Eine Grenze für Temperatur festzulegen, die Temp zu erhöhen (Fön, Schal..) und kucken ob der Notifier anspringt.
2) Eine große Datei schreiben, dabei die Platte kräftig schütteln und kucken ob der Notifier was von nem Headcrasch erzählt 😉

2. IST EIN SCHERZ! MACH DAS NICHT!!!

ciao

ingo2

(Themenstarter)
Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

die Temp zu erhöhen (Fön, Schal..)

hab' ich schon probiert: der Fön war nicht heiß genug, werde morgen eine Heißluftpistole besorgen 😉

Aber etwas weiter bion ich schon gekommen:

1. Das Script /usr/share/smartmontools/smartd-runner (-M exec Option in /etc/smartd.conf)
führt alle Scripte in /etc/smartmontools/run.d aus! Dabei werden 4 Argumente: $tmp, "$1", "$2", "$3" übergeben.
Genau hier liegen auch die Scripte '60smart-notifier' und '10mail'

2. Beide Scripte in /etc/smartmontools/run.d verwerten offensichtlich nur ein Argument davon:

#!/bin/bash -e
# Send mail if /usr/bin/mail exists or exit silently
[ -x /usr/bin/mail ] || exit 0
input=$1
shift
/usr/bin/mail "$@" < $input
#!/bin/bash
[ -x /usr/bin/smart-notifier ] || exit 0
cat ${1} | /usr/bin/smart-notifier --notify


Jetz bin ich da natürlich Laie und was der Unterschied zwischen '$1' und '${1}' ist, weiß ich auch nicht.
Auch was da wer in den Argumenten/Variablen abgelegt hat, oder wie man die Scripte testen oder modifizieren kann ???

Viele Grüße,
Ingo

Antworten |