Khi kiểm tra SMART trên đĩa báo cáo một khu vực xấu, điều quan trọng là có thể xác định tệp có khu vực xấu - và khôi phục nó từ bản sao lưu. Dưới đây, tôi trình bày cách tôi đã làm điều này cho máy chủ Phần mềm Linux / ext3 của tôi - nhưng có ai biết liệu điều này có thể được thực hiện cho Windows / NTFS không?
Đây là cách tôi đã làm cho Linux / ext3: Trước tiên tôi yêu cầu ổ đĩa thực hiện quét bề mặt phần cứng (dưới mức hệ điều hành, với các mạch SMART trên ổ đĩa):
vserver:~# smartctl -t long /dev/sdc
Tôi đã xem kết quả:
vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 9
...
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 27679 591363172
Vì vậy, một khu vực đã bị đánh dấu xấu, 9 khu vực được đánh dấu để thay thế từ không gian khu vực "dàn dựng". Quan trọng hơn, địa chỉ khối logic đầu tiên (LBA) không thể đọc được, là 591363172.
Tôi tìm thấy phân vùng (và phần bù bên trong nó) mà số này "đã dịch" thành:
vserver:~# fdisk -lu /dev/sdc
Device Boot Start End Blocks Id System
/dev/sdc1 32 976773119 488386544 83 Linux
Phân vùng bắt đầu ở khu vực 32. Vì vậy, khu vực xấu là ...
vserver:~# bc -l
591363172-32+1
591363141
... ở mức bù 591363141 ngành từ đầu phân vùng.
Bây giờ tôi có thể tìm thấy tập tin nào bị "hosed":
vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size: 4096
Kích thước khối của hệ thống tệp EXT3 này là 4096 byte, do đó, bad sector đã phá hủy khối này trong hệ thống tệp:
vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000
Và số khối (73920392) tương ứng vào tệp này:
vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs: open /dev/sdc1
testb 73920392
debugfs: testb 73920392
Block 73920392 marked in use
debugfs: icheck 73920392
Block Inode number
73920392 18472967
debugfs: ncheck 18472967
Inode Pathname
18472967 /path/to/filewithbadsector
Và tôi đã khôi phục tập tin đó từ bản sao lưu của mình.
Có một quy trình tương đương tôi có thể làm theo cho Windows / NTFS không?
dd
. Điều này sẽ buộc ổ đĩa phải sửa chữa hoặc phân bổ lại.