此 SMART 自检是否表明驱动器出现故障?

Jef*_*ing 12 hard-drive smart

我想知道这个 SMART 自检的结果是否表明驱动器出现故障,这是唯一一个在结果中出现“已完成:读取失败”的驱动器。

# smartctl -l selftest /dev/sde
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)   LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%      8981         976642822
# 2  Extended offline    Aborted by host               90%      8981         -
# 3  Extended offline    Completed: read failure       90%      8981         976642822
# 4  Extended offline    Interrupted (host reset)      90%      8977         -
# 5  Extended offline    Completed without error       00%       410         -
Run Code Online (Sandbox Code Playgroud)

除了 SMART 自检的输出之外,驱动器还没有显示任何故障迹象。这是当前正在运行 SMART 自检的同一系统中不同驱动器的输出

# smartctl -l selftest /dev/sdc
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Self-test routine in progress 30%     15859         -
# 2  Extended offline    Completed without error       00%      9431         -
# 3  Extended offline    Completed without error       00%      8368         -


SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       1
  3 Spin_Up_Time            0x0027   176   175   021    Pre-fail  Always       -       4183
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       48
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   088   088   000    Old_age   Always       -       8982
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       46
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       34
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       13
194 Temperature_Celsius     0x0022   111   101   000    Old_age   Always       -       36
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       1
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       2
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 11

希望您早就更换了驱动器,但是由于还没有人直接回答这个问题......

您运行了两个测试,两个测试都未能读取磁盘的相同逻辑扇区,如Completed: read failure两个测试中的 和 相同的 LBA 所示。这确实表明磁盘有缺陷,您应该能够在保修期内更换它。尝试在该扇区中存储数据可能会也可能不会导致驱动器在写入过程中注意到它有缺陷并重新映射该扇区,但是如果驱动器没有注意到并且以后无法读取数据,则您已经丢失了它。


Ale*_*mak 7

遇到你的情况我该怎么办?

首先我找出哪些文件受到影响。有一些说明如何执行此操作 https://www.smartmontools.org/wiki/BadBlockHowto。是的。就你而言,这更困难,因为你有一个数组。但这是可能的。然后,确保备份该文件,然后向故障扇区写入零。有两件事可能发生。

  1. 驱动器成功向该扇区写入零。之后 Current_Pending_Sector、Reallocated_Sector_Ct 应为零。
  2. 驱动器无法写入该扇区。然后它将这个扇区重新映射到“备用”区域。

无论如何,您最终都会得到一个固定驱动器。您应该从备份中恢复文件(因为您覆盖了其中的一个扇区)。此外,您还应该重新运行扩展自检,以确保不再出现错误。

保持健康!

PS 我知道这篇文章有点旧了。但我用谷歌搜索了它。我认为提供另一个好的答案是个好主意。


Bac*_*its 5

您的数据值得在可疑驱动器上冒险吗?

如果是我,我会更换驱动器并感谢 SMART 让我免于头疼。

  • 当您知道什么智能输出表示驱动器发生故障时,这更容易做到,但很难分辨什么表示和不表示驱动器发生故障。 (5认同)

Sga*_*uuw 5

我想添加到另一个答案中的评论中,但由于缺乏代表,我不能,去算一下。

您不需要制作 cron 脚本,smartmontools 包中有一个smartd 守护程序,可以处理您想做的事情:定期检查 SMART 状态。您只需要创建一个配置并启动服务。smartmontools 包还包含一些示例脚本,当某些事情开始失败时 smartd 可以调用这些脚本。