我的硬盘是否有坏道?

lan*_*oni 9 badblocks hard-disk smartctl

我有一个新驱动器,如果smartctl检测到坏扇区,我很困惑。短自检和扩展自检completed without error。但是Error Log指示Uncorrectable error in data96 sectors

这是smartctl输出:

smartctl 5.41 2011-06-09 r3365 [i686-linux-3.2.0-52-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Hitachi Deskstar T7K500
Device Model:     Hitachi HDT725025VLA380
Serial Number:    VFL104R73X993Z
LU WWN Device Id: 5 000cca 316f723ca
Firmware Version: V5DOA73A
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  ATA/ATAPI-7 T13 1532D revision 1
Local Time is:    Wed Feb  5 19:19:29 2014 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x80) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        ( 4949) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    (  83) minutes.
SCT capabilities:          (0x003f) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

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     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0007   110   110   024    Pre-fail  Always       -       338 (Average 340)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       1838
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   020    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   099   099   000    Old_age   Always       -       11746
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1822
192 Power-Off_Retract_Count 0x0032   099   099   000    Old_age   Always       -       2103
193 Load_Cycle_Count        0x0012   099   099   000    Old_age   Always       -       2103
194 Temperature_Celsius     0x0002   162   162   000    Old_age   Always       -       37 (Min/Max 12/48)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   253   000    Old_age   Always       -       0

SMART Error Log Version: 1
ATA Error Count: 27 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 27 occurred at disk power-on lifetime: 11706 hours (487 days + 18 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 e4 33 e7 47  Error: UNC 96 sectors at LBA = 0x07e733e4 = 132592612

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 03 80 c4 33 e7 40 00      02:28:22.700  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:22.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:22.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:22.200  READ DMA EXT
  ef 03 46 c4 33 e7 00 00      02:28:22.200  SET FEATURES [Set transfer mode]

Error 26 occurred at disk power-on lifetime: 11706 hours (487 days + 18 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 e4 33 e7 47  Error: UNC 96 sectors at LBA = 0x07e733e4 = 132592612

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 03 80 c4 33 e7 40 00      02:28:11.700  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:11.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:11.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:11.200  READ DMA EXT
  ef 03 46 c4 33 e7 00 00      02:28:11.200  SET FEATURES [Set transfer mode]

Error 25 occurred at disk power-on lifetime: 11706 hours (487 days + 18 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 e4 33 e7 47  Error: UNC 96 sectors at LBA = 0x07e733e4 = 132592612

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 03 80 c4 33 e7 40 00      02:28:00.700  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:00.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:00.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:28:00.200  READ DMA EXT
  ef 03 46 c4 33 e7 00 00      02:28:00.200  SET FEATURES [Set transfer mode]

Error 24 occurred at disk power-on lifetime: 11706 hours (487 days + 18 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 e4 33 e7 47  Error: UNC 96 sectors at LBA = 0x07e733e4 = 132592612

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 03 80 c4 33 e7 40 00      02:27:49.700  READ DMA EXT
  25 03 01 00 00 00 40 00      02:27:49.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:27:49.200  READ DMA EXT
  25 03 01 00 00 00 40 00      02:27:49.200  READ DMA EXT
  ef 03 46 c4 33 e7 00 00      02:27:49.200  SET FEATURES [Set transfer mode]

Error 23 occurred at disk power-on lifetime: 11706 hours (487 days + 18 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 60 e4 33 e7 47  Error: UNC 96 sectors at LBA = 0x07e733e4 = 132592612

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 03 80 c4 33 e7 40 00      02:27:38.900  READ DMA EXT
  25 03 08 7c a8 3a 40 00      02:27:38.900  READ DMA EXT
  35 03 08 7c a8 3a 40 00      02:27:38.900  WRITE DMA EXT
  25 03 08 7c a8 3a 40 00      02:27:38.900  READ DMA EXT
  25 03 08 a4 eb 94 40 00      02:27:38.900  READ DMA EXT

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%     11746         -
# 2  Short offline       Completed without error       00%     11744         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Run Code Online (Sandbox Code Playgroud)

这是带有以下内容的屏幕截图Error Log在此处输入图片说明

那么发生了什么?驱动器是否有坏道?


UPDATE1:
为了确保我也badblocks按照你如何使用坏块中的建议使用了?.

一、非破坏性,1h长的只读方法:

root@xubuntu:/home/xubuntu# badblocks -sv /dev/sda
Checking blocks 0 to 244198583
Checking for bad blocks (read-only test): done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)
Run Code Online (Sandbox Code Playgroud)

然后是破坏性的、长达 10 小时的写入方法(小心使用!):

root@xubuntu:/home/xubuntu# badblocks -wsv /dev/sda
Checking for bad blocks in read-write mode
From block 0 to 244198583
Testing with pattern 0xaa: done                                                 
Reading and comparing: done                                                 
Testing with pattern 0x55: done                                                 
Reading and comparing: done                                                 
Testing with pattern 0xff: done                                                 
Reading and comparing: done                                                 
Testing with pattern 0x00: done                                                 
Reading and comparing: done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)
Run Code Online (Sandbox Code Playgroud)

正如答案中所建议的那样,这个硬盘驱动器上看起来确实没有坏扇区。(好极了!)

Mik*_*kov 8

您的磁盘在从表面读取数据时出现了一些问题,但磁盘似乎已处理它。我有类似的情况:

Error 29 occurred at disk power-on lifetime: 18836 hours (784 days + 20 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 00 40 37 e6  Error: UNC 8 sectors at LBA = 0x06374000 = 104284160

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 08 00 40 37 e6 08      03:39:32.447  READ DMA
  c8 00 08 f8 3f 37 e6 08      03:39:32.447  READ DMA
  c8 00 08 f0 3f 37 e6 08      03:39:32.447  READ DMA
  c8 00 08 e8 3f 37 e6 08      03:39:32.447  READ DMA
  c8 00 08 e0 3f 37 e6 08      03:39:32.447  READ DMA
Run Code Online (Sandbox Code Playgroud)

当我想进行测试时,我得到了:

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 7  Short offline       Completed: read failure       90%     18845         104284160
Run Code Online (Sandbox Code Playgroud)

最终,我设法解除了扇区的阻塞,并在运行了扫描整个表面的扩展测试后,得到了以下结果:

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 3  Extended offline    Completed without error       00%     18858         -
Run Code Online (Sandbox Code Playgroud)

如果有坏块,可以在下表中观察到它们:

  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
Run Code Online (Sandbox Code Playgroud)

在你的情况下,没有坏扇区的迹象,因为在最后一个错误发生 (11706 h) 之后执行了扩展测试 (11746 h)。这样,你就可以安心睡觉了。:)

正如我在评论中提到的,有两种类型的坏块。以下是有关两者之间差异的简短信息:

坏道有两种类型——通常分为“物理”和“逻辑”坏道或“硬”和“软”坏道。

物理(或硬)坏扇区是硬盘驱动器上物理损坏的一组存储。硬盘驱动器的磁头可能接触到了硬盘驱动器的那部分并损坏了它,一些灰尘可能落在了那个扇区并毁坏了它,固态驱动器的闪存单元可能已经磨损了,或者硬盘驱动器可能有其他导致扇区物理损坏的缺陷或磨损问题。这种类型的扇区无法修复。

逻辑(或软)坏扇区是硬盘驱动器上似乎无法正常工作的一组存储。操作系统可能试图从该扇区读取硬盘驱动器上的数据,发现纠错码 (ECC) 与该扇区的内容不匹配,这表明出现问题。这些可能被标记为坏扇区,但可以通过用零覆盖驱动器来修复 - 或者,在过去,执行低级格式化。Windows 的磁盘检查工具也可以修复此类坏扇区。

  • 有两种类型的坏扇区——逻辑扇区和物理扇区。你可能有逻辑的。你可以在这里阅读更多关于两者之间的区别 - http://www.howtogeek.com/173463/bad-sectors-explained-why-hard-drives-get-bad-sectors-and-what-you-can -做事/ (2认同)