Wie kann ich verhindern, dass smartd meldet, dass keine Festplatte gefunden werden kann?


7

Ich habe meine Festplatten intelligent überwacht. Es funktioniert im Allgemeinen einwandfrei, aber das folgende Fehlerfenster wird regelmäßig alle 24 Stunden angezeigt.

This email was generated by the smartd daemon running on:
  host name: sparhawk-XPS-17
  DNS domain: [Unknown]
  NIS domain: (none)
The following warning/error was logged by the smartd daemon:
Device: /dev/sdc [SAT], unable to open device
For details see host's SYSLOG.
You can also use the smartctl utility for further investigation.
Another email message will be sent in 24 hours if the problem persists.

Es ist kein SDC angeschlossen, aber ich versuche es trotzdem sudo smartctl -a /dev/sdc. Das Ergebnis ist

smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.5.0-26-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
Smartctl open device: /dev/sdc failed: No such device

Die einzige nicht auskommentierte Zeile /etc/smartd.confist

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

Gibt es eine Möglichkeit, mit smartd das Entfernen dieser Festplatte korrekt zu identifizieren und sich nicht darüber zu beschweren? Wenn dies nicht möglich ist, gibt es dann eine Möglichkeit, smartd nur sda und sdb überwachen zu lassen?


1
Dieses Problem scheint in smartmontools 6.6 behoben zu sein (siehe hier ), aber leider ist diese Version im aktuellen Debian-Stall "Stretch" nicht verfügbar.
Mivk

Antworten:


5

Ich habe das gleiche Problem gehabt, also habe ich einige Nachforschungen angestellt. Ich habe das gefunden:

/etc/smartd.conf

# smartd will re-read the configuration file if it receives a HUP
# signal

# The file gives a list of devices to monitor using smartd, with one
# device per line. Text after a hash (#) is ignored, and you may use
# spaces and tabs for white space. You may use '\' to continue lines.

# You can usually identify which hard disks are on your system by
# looking in /proc/ide and in /proc/scsi.

# The word DEVICESCAN will cause any remaining lines in this
# configuration file to be ignored: it tells smartd to scan for all
# ATA and SCSI devices.  DEVICESCAN may be followed by any of the
# Directives listed below, which will be applied to all devices that
# are found.  Most users should comment out DEVICESCAN and explicitly
# list the devices that they wish to monitor.

Ich gehe davon aus, dass die Registrierung des Laufwerks vom Kernel über aufgehoben wird

root@localhost# echo 1 > /sys/block/sdX/device/delete

Entfernen Sie dann den Geräteeintrag aus /etc/smartd.conf.

Wenn Sie dann "sudo service smartmontools restart" ausführen, wird Ihr Problem behoben, und smartd meldet das fehlende Laufwerk nicht mehr.


+1, aber ich würde eine generische Lösung bevorzugen, um das Entfernen von Festplatten im Allgemeinen nur zu ignorieren. Vorzugsweise funktioniert es automatisch für alle Festplatten und scannt die Festplatten auch weiterhin auf andere Probleme.
Sparhawk

smartd ist Open Source. Ich bin mir sicher, wenn Sie eine solche Lösung implementieren, können Sie sie in den Upstream verschieben
Ace

Ja, das weiß ich, aber ich muss noch die Lösung finden, die das tut, was ich will.
Sparhawk

3

Sie können veranlassen, dass smartd nur einen bestimmten Satz von Geräten überwacht, indem Sie diese Geräte explizit in /etc/smartd.conf auflisten, anstatt das DEVICESCANSchlüsselwort zu verwenden.

Um also nur / dev / sda und / dev / sdb zu überwachen, würden Sie Folgendes aus Ihrer smartd.conf entfernen:

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

Und stattdessen hinzufügen:

/dev/sda -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sdb -m root -M exec /usr/share/smartmontools/smartd-runner

Starten Sie dann den smartd-Daemon neu.

Der Hauptnachteil dieses Ansatzes besteht darin, dass Sie jede Festplatte einzeln in der Konfiguration auflisten müssen. Zumindest mit nur zwei Festplatten ist das kein allzu großer Aufwand.


2
Dies funktioniert gut, um das Scannen von zu verhindern /dev/sdc. Wissen Sie jedoch, ob smartd normalerweise neu angeschlossene USB-Laufwerke scannt? Im Idealfall wird immer noch gescannt /dev/sdc, aber nicht gemeldet, wenn die Verbindung getrennt wird.
Sparhawk

2
Manuelles Gehen und Entfernen der Entdeckung ist nicht gerade ideal. Das HUPen oder Neustarten des Daemons entspricht eher dem, was OP tun wollte.
Benoit Duffez

1

In meinem Fall nach dem Ersetzen der fehlgeschlagenen Festplatte helfen Sie einfach csv und starten Sie den Dienst neu:

sudo systemctl stop smartmontools
sudo killall smartd
cd /var/lib/smartmontools
sudo rm attrlog.WDC_WD5000LPLX_00ZNTT0-WD_SERIAL_NUMBER.ata.csv
sudo rm smartd.WDC_WD5000LPLX_00ZNTT0-WD_SERIAL_NUMBER.ata.state
sudo rm smartd.WDC_WD5000LPLX_00ZNTT0-WD_SERIAL_NUMBER.ata.state~
sudo systemctl start smartmontools

Meine smartd.conf

DEVICESCAN -H -l error -l selftest -f -s (O/../.././14|L/../.././15|C/../.././17) -m admin@example.com -M exec /usr/share/smartmontools/smartd-runner

Mein /etc/smartmontools/run.d/10s-nail

#!/bin/bash -e

# Send mail if /usr/bin/s-nail exists
if ! [ -x /usr/bin/s-nail ]; then
  echo "Your system does not have /usr/bin/s-nail. Install the s-nail package" 
  exit 1
fi

# $1 - body file
# $2 - "-s"
# $3 - subject
# $4 - admin email

/usr/bin/s-nail -q $1 -s "$3" -S smtp=smtp://192.168.1.11 -S from="SERVER_NAME S.M.A.R.Td <servername@example.com>" $4

0

Vielleicht ist es gelöst -d removable, DEVICESCAN wie folgt hinzuzufügen :

DEVICESCAN -d removable -m root -M exec /usr/share/smartmontools/smartd-runner
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.