디스크의 SMART 검사에서 불량 섹터가보고되면 불량 섹터가있는 파일을 식별하고 백업에서 복원 할 수 있어야합니다. 아래에서는 Linux / ext3 VMWARE 서버에서이 작업을 수행 한 방법을 보여 주지만 Windows / NTFS에서이 작업을 수행 할 수 있는지 아는 사람이 있습니까?
Linux / ext3에서 수행 한 방법은 다음과 같습니다. 먼저 드라이브에 하드웨어 표면 스캔 (온 드라이브 SMART 회로를 사용하여 OS 수준 아래)을 수행하도록 요청했습니다.
vserver:~# smartctl -t long /dev/sdc
결과를 보았습니다.
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
따라서 한 섹터는 이미 불량으로 표시되었고 9 개는 "스테이징"섹터 공간에서 교체 된 것으로 표시되었습니다. 더 중요한 것은 읽을 수없는 첫 번째 논리 블록 주소 (LBA)는 591363172였습니다.
이 숫자가 "변환 된"파티션 (및 그 안의 오프셋)을 찾았습니다.
vserver:~# fdisk -lu /dev/sdc
Device Boot Start End Blocks Id System
/dev/sdc1 32 976773119 488386544 83 Linux
파티션은 32 섹터에서 시작했습니다. 그래서 불량 섹터는 ...
vserver:~# bc -l
591363172-32+1
591363141
... 파티션 시작 부분에서 591363141 섹터의 오프셋에서.
이제 어떤 파일이 "hosed"인지 확인할 수 있습니다.
vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size: 4096
이 EXT3 파일 시스템의 블록 크기는 4096 바이트이므로 불량 섹터는 파일 시스템에서이 블록을 파괴했습니다.
vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000
그리고 블록 번호 (73920392)는이 파일에 해당합니다 :
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
백업에서 해당 파일을 복원했습니다.
Windows / NTFS에 대해 동등한 절차가 있습니까?
dd
. 그러면 드라이브가 드라이브를 복구하거나 재 할당해야합니다.