Làm cách nào tôi có thể ngăn smartd báo cáo rằng nó không thể tìm thấy đĩa?


7

Tôi có smartd theo dõi ổ cứng của tôi. Nó hoạt động tốt nói chung, nhưng cửa sổ lỗi sau đã liên tục xuất hiện cứ sau 24 giờ.

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.

Không có sdc được kết nối, nhưng tôi vẫn cố gắng sudo smartctl -a /dev/sdc. Kết quả là

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

Dòng duy nhất không nhận xét trong đó /etc/smartd.conf

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

Có cách nào để làm cho smartd xác định chính xác việc loại bỏ đĩa này và không phàn nàn về nó không? Nếu điều này là không thể, thì có cách nào để smartd chỉ theo dõi sda và sdb không?


1
Vấn đề này dường như đã được khắc phục trong smartmontools 6.6 (xem tại đây ), nhưng thật không may, phiên bản đó không có sẵn trong bản "Stretch" ổn định của Debian hiện tại.
mivk

Câu trả lời:


5

Tôi đã trải qua vấn đề tương tự, vì vậy tôi đã làm một số nghiên cứu. Tôi đã tìm thấy cái này:

/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.

Tôi giả sử rằng hủy đăng ký ổ đĩa từ kernel thông qua

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

sau đó xóa mục nhập thiết bị khỏi /etc/smartd.conf,

sau đó thực hiện "sudo service smartmontools restart" sẽ khắc phục sự cố của bạn và smartd sẽ ngừng báo cáo ổ đĩa bị thiếu.


+1, nhưng tôi thích một giải pháp chung hơn là chỉ bỏ qua việc loại bỏ các đĩa nói chung. Tốt hơn là, nó hoạt động tự động cho tất cả các đĩa và vẫn quét đĩa cho các vấn đề khác.
Sparhawk

smartd là mã nguồn mở, tôi chắc chắn nếu bạn triển khai một giải pháp như vậy thì bạn có thể đẩy nó ngược dòng
Ace

Vâng, tôi biết điều này, nhưng tôi vẫn đang tìm giải pháp làm những gì tôi muốn.
Sparhawk

3

Bạn có thể khiến smartd chỉ giám sát một bộ thiết bị cụ thể bằng cách liệt kê rõ ràng các thiết bị đó trong /etc/smartd.conf, thay vì sử dụng DEVICESCANtừ khóa.

Vì vậy, để chỉ giám sát / dev / sda và / dev / sdb, bạn sẽ xóa khỏi smartd.conf của mình:

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

Và thay vì nó, thêm:

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

Sau đó khởi động lại daemon smartd.

Nhược điểm chính của phương pháp này là bạn cần liệt kê từng đĩa riêng lẻ trong cấu hình. Ít nhất chỉ với hai đĩa, điều đó không quá rắc rối.


2
Điều này hoạt động tốt để ngăn chặn quét /dev/sdc. Tuy nhiên, bạn có biết nếu smartd thường quét các ổ USB được kết nối mới không? Lý tưởng nhất là nó vẫn quét /dev/sdcnhưng không báo cáo khi bị ngắt kết nối.
Sparhawk

2
Làm thủ công và loại bỏ khám phá không chính xác lý tưởng. HUP daemon hoặc khởi động lại nó phù hợp hơn những gì OP muốn làm.
Benoit Duffez 17/03/2017

1

Trong trường hợp của tôi sau khi thay thế ổ cứng không thành công, chỉ cần xóa csv và khởi động lại dịch vụ:

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

Thông minh của tôi

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

/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

Có lẽ nó đã được giải quyết khi thêm -d removablevào DEVICECAN, như thế này:

DEVICESCAN -d removable -m root -M exec /usr/share/smartmontools/smartd-runner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.