ディスクのSMARTチェックで不良セクターが報告された場合、不良セクターのあるファイルを特定し、バックアップから復元できることが重要です。以下に、Linux / ext3 VMWAREサーバーでこれをどのように実行したかを示しますが、Windows / NTFSでこれを実行できるかどうかは誰にもわかりませんか?
Linux / ext3の場合は、次のようになりました。最初に、ハードウェアの表面スキャンを実行するようにドライブに要求しました(OSレベル未満で、オンドライブのSMART回路を使用)。
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
そのため、1つのセクターはすでに不良とマークされ、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セクターのオフセット。
これで、どのファイルが「ホストされている」かがわかりました。
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
。これにより、ドライブは強制的に修復または再割り当てされます。