ฉันกำลังทำการติดตั้ง Linux ใหม่และก่อนที่ฉันจะทำอย่างนั้นฉันคิดว่ามันเป็นเวลาที่ดีในการตรวจสอบสุขภาพ HDD เนื่องจากฉันสามารถเขียนทับข้อมูลใด ๆ บน HDD ได้อย่างปลอดภัยหากจำเป็น
ครั้งแรกที่ฉันลองตรวจสอบกับ smartmontools ... HDD Seagate ของฉันรายงานหนึ่งส่วนที่ค้างอยู่ในปัจจุบันและอีกหนึ่งรายการที่ไม่สามารถแก้ไขได้ออฟไลน์ จำนวนเซ็กเตอร์ที่จัดสรรคืนเป็นศูนย์
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
...
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 1
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 1
อย่างไรก็ตามการทดสอบด้วยตนเองของ SMART (สั้น, ยาว, ออฟไลน์, พาหนะ) ไม่พบข้อผิดพลาด
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% 6631 -
# 2 Conveyance offline Completed without error 00% 6630 -
# 3 Extended offline Completed without error 00% 6622 -
# 4 Short offline Completed without error 00% 6600 -
# 5 Extended offline Completed without error 00% 6632 -
ฉันได้ลองใช้badblocks -wsv (การทดสอบการส่งผ่านรูปแบบการอ่าน - เขียน 4 รูปแบบ) บนไดรฟ์และไม่พบบล็อกที่ไม่ดี ฉันทำตามคำแนะนำ (เท่าที่เป็นไปได้เนื่องจากฉันลบระบบไฟล์ของฉันหลังจากใช้ badblocks) พบที่นี่: http://smartmontools.sourceforge.net/badblockhowto.html
ที่นั่นมีข้อความระบุว่าถ้าฉันเขียนทับเซกเตอร์ด้วยศูนย์ทั้งหมดดิสก์ควรย้าย (จัดสรรใหม่) เซกเตอร์ที่ค้างอยู่ รูปแบบการเขียนล่าสุดของ Badblock คือศูนย์ทั้งหมดดังนั้นควรทำเช่นนั้น อย่างไรก็ตามไม่มีการเปลี่ยนแปลงใด ๆ ฉันยังคงมีการนับเซกเตอร์ที่ค้างอยู่ 1
ฉันลองค้นหาว่าเซ็กเตอร์ใดที่เป็นปัญหาและใน SMART output มีบันทึกข้อผิดพลาด:
Error 2 occurred at disk power-on lifetime: 5344 hours (222 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
-- -- -- -- -- -- --
84 51 7c 1b 1a 02 ae Error: ABRT at LBA = 0x0e021a1b = 235018779
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
20 20 7f 18 1a 02 ae 00 00:09:05.228 READ SECTOR(S)
20 20 01 17 1a 02 ae 00 00:09:05.228 READ SECTOR(S)
20 20 01 01 00 00 a0 00 00:08:59.830 READ SECTOR(S)
91 20 3f 01 00 00 af 00 00:08:59.826 INITIALIZE DEVICE PARAMETERS [OBS-6]
10 20 01 01 00 00 a8 00 00:08:59.678 RECALIBRATE [OBS-4]
Error 1 occurred at disk power-on lifetime: 5009 hours (208 days + 17 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 b7 8c 02 e0 Error: UNC at LBA = 0x00028cb7 = 167095
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 20 1e 9e 8c 02 e0 00 00:02:20.691 READ DMA EXT
25 20 1e 80 8c 02 e0 00 00:02:20.691 READ DMA EXT
25 20 1e 62 8c 02 e0 00 00:02:20.690 READ DMA EXT
25 20 1e 44 8c 02 e0 00 00:02:20.690 READ DMA EXT
25 20 1e 26 8c 02 e0 00 00:02:20.690 READ DMA EXT
เห็นได้ชัดว่าไดรฟ์มีข้อผิดพลาดสองประการ
84 51 7c 1b 1a 02 ae Error: ABRT at LBA = 0x0e021a1b = 235018779
และ
40 51 00 b7 8c 02 e0 Error: UNC at LBA = 0x00028cb7 = 167095
ดังนั้นฉันจึงสันนิษฐานว่านี่คือตัวเลขภาค: 167095 และ 235018779 และฉันพยายามเขียนเลขศูนย์ด้วย dd:
dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=167095
ตอนนี้ก็โอเคแล้ว อย่างไรก็ตามเมื่อฉันลองกับภาคอื่น ๆ :
dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=235018779
ฉันได้รับDD: '/ dev / SDA': ไม่สามารถแสวงหา: อาร์กิวเมนต์ไม่ถูกต้อง ฉันเห็นว่า HDD ของฉันมีเพียง 234441658 ส่วนเท่านั้น นี่อยู่นอกช่วง แต่ทำไมสมาร์ทรายงานข้อผิดพลาดเกี่ยวกับที่อยู่นั้น!
ทุกคนสามารถช่วยฉันคิดออกและยังแนะนำให้ฉันทำอย่างถูกต้องถ้าฉันทำผิด? ฉันสงสัยว่าบางทีฉันผิดที่ใช้ขนาดบล็อก 512 กับ dd นั่นคือขนาดของภาคที่รายงานโดย SMART บางทีที่อยู่ LBA นั้นเป็นไบต์ไม่ใช่บล็อกฉันพยายามตั้งค่า bs = 1 และเขียนเพียงหนึ่งไบต์ไปยังที่อยู่เหล่านั้นบน HDD ที่ทำงาน (dd เขียนกระบวนการ) ... อย่างไรก็ตามจำนวนภาคที่ค้างอยู่ยังคงไม่เปลี่ยนแปลงหลังจากนั้น ฉันเรียกว่าการซิงค์และsmartctl -t ออฟไลน์ / dev / sdaเพื่อลอง 'บังคับ' ไดรฟ์เพื่อจัดสรรเซกเตอร์ใหม่ ไม่มีอะไร ...
นี่คือsmartctlเต็มของฉัน - ทั้งหมด/ dev / sdaเอาท์พุท:
smartctl 5.43 2012-06-30 r3573 [i686-linux-2.6.32-358.el6.i686] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.9
Device Model: ST3120811AS
Serial Number: 6PT1N4VZ
Firmware Version: 3.AAE
User Capacity: 120,034,123,776 bytes [120 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Mon Nov 18 12:03:00 2013 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: (0x82) Offline data collection activity
was completed without error.
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: ( 430) 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: ( 51) minutes.
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 084 077 006 Pre-fail Always - 185600113
3 Spin_Up_Time 0x0003 095 095 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 098 098 020 Old_age Always - 2185
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 073 055 030 Pre-fail Always - 25890559714
9 Power_On_Hours 0x0032 093 093 000 Old_age Always - 6632
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 098 098 020 Old_age Always - 2229
187 Reported_Uncorrect 0x0032 099 099 000 Old_age Always - 1
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 071 056 045 Old_age Always - 29 (Min/Max 25/29)
194 Temperature_Celsius 0x0022 029 044 000 Old_age Always - 29 (0 13 0 0 0)
195 Hardware_ECC_Recovered 0x001a 052 046 000 Old_age Always - 194244099
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 1
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 1
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 Data_Address_Mark_Errs 0x0032 066 219 000 Old_age Always - 34
SMART Error Log Version: 1
ATA Error Count: 2
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 2 occurred at disk power-on lifetime: 5344 hours (222 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
-- -- -- -- -- -- --
84 51 7c 1b 1a 02 ae Error: ABRT at LBA = 0x0e021a1b = 235018779
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
20 20 7f 18 1a 02 ae 00 00:09:05.228 READ SECTOR(S)
20 20 01 17 1a 02 ae 00 00:09:05.228 READ SECTOR(S)
20 20 01 01 00 00 a0 00 00:08:59.830 READ SECTOR(S)
91 20 3f 01 00 00 af 00 00:08:59.826 INITIALIZE DEVICE PARAMETERS [OBS-6]
10 20 01 01 00 00 a8 00 00:08:59.678 RECALIBRATE [OBS-4]
Error 1 occurred at disk power-on lifetime: 5009 hours (208 days + 17 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 b7 8c 02 e0 Error: UNC at LBA = 0x00028cb7 = 167095
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 20 1e 9e 8c 02 e0 00 00:02:20.691 READ DMA EXT
25 20 1e 80 8c 02 e0 00 00:02:20.691 READ DMA EXT
25 20 1e 62 8c 02 e0 00 00:02:20.690 READ DMA EXT
25 20 1e 44 8c 02 e0 00 00:02:20.690 READ DMA EXT
25 20 1e 26 8c 02 e0 00 00:02:20.690 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% 6631 -
# 2 Conveyance offline Completed without error 00% 6630 -
# 3 Extended offline Completed without error 00% 6622 -
# 4 Short offline Completed without error 00% 6600 -
# 5 Extended offline Completed without error 00% 6632 -
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.
UPDATE:
ตามคำแนะนำในคำตอบจาก rob ฉันพยายามเขียนทับ HDD ทั้งหมดด้วยศูนย์ ตรวจสอบค่า SMART แล้วเริ่มอ่าน HDD ทั้งหมด ตรวจสอบค่า SMART อีกครั้ง ผลลัพธ์คือ: ค่า SMART ที่เกี่ยวข้องกับจำนวนเซกเตอร์ที่รอดำเนินการ / จัดสรรใหม่จะไม่เปลี่ยนแปลงในทั้งสองกรณีทันทีหลังจากเขียนและหลังจากอ่านแล้ว จัดสรรใหม่ 0. รอดำเนินการ 1