我有一个 NTFS 磁盘用于存储数据,当 IDE/SATA 适配器出现问题(导致关闭我的磁盘)后,SMART 显示错误。
我想知道我还需要做什么来检查并修复此磁盘上的错误。
我已经使用 fsck 来检查磁盘,但是对我来说它不够详细。
andre@PITCAIRN:~$ sudo fsck /dev/sdb1
fsck from util-linux 2.20.1
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.
SMART
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 115 099 006 Pre-fail Always - 95292924
3 Spin_Up_Time 0x0003 100 100 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 097 097 020 Old_age Always - 3419
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 067 060 030 Pre-fail Always - 5425551
9 Power_On_Hours 0x0032 093 093 000 Old_age Always - 6345
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1501
183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 046 046 000 Old_age Always - 54
188 Command_Timeout 0x0032 100 100 000 Old_age Always - 0
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 062 048 045 Old_age Always - 38 (Min/Max 31/39)
194 Temperature_Celsius 0x0022 038 052 000 Old_age Always - 38 (0 19 0 0 0)
195 Hardware_ECC_Recovered 0x001a 041 022 000 Old_age Always - 95292924
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 20
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 20
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 96499325213315
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 2999278438
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 866573403
SMART 的错误
SMART Error Log Version: 1
ATA Error Count: 54 (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 54 occurred at disk power-on lifetime: 6088 hours (253 days + 16 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 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
60 00 08 ff ff ff 4f 00 10:17:38.985 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:38.983 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:38.971 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:38.970 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:38.970 READ FPDMA QUEUED
Error 53 occurred at disk power-on lifetime: 6088 hours (253 days + 16 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 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
60 00 08 ff ff ff 4f 00 10:17:35.999 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:35.999 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:35.998 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:35.998 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:35.998 READ FPDMA QUEUED
Error 52 occurred at disk power-on lifetime: 6088 hours (253 days + 16 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 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
60 00 08 ff ff ff 4f 00 10:17:29.920 READ FPDMA QUEUED
27 00 00 00 00 00 e0 00 10:17:29.918 READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
ec 00 00 00 00 00 a0 00 10:17:29.909 IDENTIFY DEVICE
ef 03 45 00 00 00 a0 00 10:17:29.909 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 10:17:29.909 READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
Error 51 occurred at disk power-on lifetime: 6088 hours (253 days + 16 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 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
60 00 08 ff ff ff 4f 00 10:17:27.106 READ FPDMA QUEUED
27 00 00 00 00 00 e0 00 10:17:27.104 READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
ec 00 00 00 00 00 a0 00 10:17:27.095 IDENTIFY DEVICE
ef 03 45 00 00 00 a0 00 10:17:27.095 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 10:17:27.095 READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
Error 50 occurred at disk power-on lifetime: 6088 hours (253 days + 16 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 00 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
60 00 08 ff ff ff 4f 00 10:17:24.293 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:24.279 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:24.279 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:24.279 READ FPDMA QUEUED
60 00 08 ff ff ff 4f 00 10:17:24.279 READ FPDMA QUEUED
我正在对该未安装的磁盘运行扩展自检。
答案1
驱动器上有 20 个坏扇区。它们可能只是因为写入过程中突然断电而损坏。您可以尝试向它们写入零,看看它们是否会恢复。您需要识别有问题的扇区号,您可以从错误日志中看到,第一个是 268435455。首先,尝试读取它以验证它是否坏了:
sudo dd if=/dev/sdb bs=512 of=/dev/null count=1 iflag=direct skip=268435455
如果这是 4k 扇区驱动器,则 bs= 应使用 4096,而不是 512。这应该会出错。如果出错,请用零写入:
sudo dd if=/dev/zero bs=512 of=/dev/sdb seek=268435455 count=1 oflag=direct
在按下回车键之前,请仔细检查命令;如果命令不完全正确,则可能会破坏数据。
对错误日志中的每个扇区重复此操作,然后再次检查 SMART 状态。待处理计数应该会下降。如果重新分配的计数上升,则扇区已物理损坏,您应该更换驱动器。如果没有,应该没问题。您可以尝试运行长时间的 SMART 自检来查找更多坏扇区。
答案2
您已经完成了修复驱动器所需的所有操作。SMART 是一种监控系统,是硬盘驱动器控制器的一项功能,因此操作系统所做的唯一事情就是显示 SMART 系统收集的数据。您无法重置它,因此如果 SMART 检测到某些被视为错误的东西,它将永远被记住。SMART 检测到的错误不一定是驱动器故障的标志,但确实可能存在问题。无论如何,请确保您创建了良好的备份,这是您应该做的。