不良セクタが3つあるハードドライブがあります。セクター番号を知っていて、コンピューターをWindowsで起動できます。製造元のHDD診断ツールからセクター修復を実行したいのですが、その前に、どのファイルが影響を受けているのかを知りたいのです。どのファイルがそれらのセクターを占有しているかを把握する方法はありますか?
不良セクタが3つあるハードドライブがあります。セクター番号を知っていて、コンピューターをWindowsで起動できます。製造元のHDD診断ツールからセクター修復を実行したいのですが、その前に、どのファイルが影響を受けているのかを知りたいのです。どのファイルがそれらのセクターを占有しているかを把握する方法はありますか?
回答:
ドライブを直接調べて編集できる便利な16進エディタであるWinHexを使用したプロセスを次に示します。 十分気をつける; 不適切に使用すると、このツールがシステムに損傷を与える可能性があります。可能な限り、読み取り専用のディスクを開きます。
不良セクタの場所がすでにあるため、WinHexでドライブを直接開き(「ディスクを開く」ツールバーボタン)、次にセクタに移動してデータを表示できます(「セクタに移動」ツールバーボタン)。セクタの場所が物理セクタアドレスであると仮定すると、このステップで物理ドライブを開く必要があります。
これはファイルを直接識別しませんが、左側のペインはこのセクターとそれに対応する相対セクターアドレスを含むパーティションを識別する必要があります。
確認したパーティションがNTFSまたはFATパーティションである場合、パーティションを直接開くことができます(「ディスクを開く」)。これにより、新しいタブでパーティションが開かれるため、必要に応じて切り替えることができます。[パーティション]タブで、[ セクターに移動 ] 機能を再度使用しますが、今回は変換済みセクター(ドライブビューで識別される「相対セクター」)を入力します。
これで、左側のペインに、「表示可能なドライブ領域の割り当て」セクションが表示されます。この下には、クラスター#、物理セクター#、論理(相対)セクター#、およびこのセクターが実際にファイルに属している場合のファイル名があります。
これらの手順ですぐに答えが得られない場合は、不良セクタが使用されていない可能性があります。結果が不明確な場合は、答えを見つけるためにさらに掘り下げる必要があります。
nfi.exeをお試しください-Windows NTファイルシステム(NTFS)ファイルセクター情報ユーティリティ。Microsoft OEMサポートツールフェーズ3 SR2からダウンロードします。
> nfi.exe
Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.
Usage: nfi drive-letter [logical-sector-number]
Drive-letter can be a single character or a character followed
by a colon (i.e., C or C: are acceptable).
Logical-sector-number is a decimal or 0x-prefixed hex
number, specifying a sector number relative to the volume
whose drive letter is given by drive-letter. If not
specified, then information about every file on the volume
is dumped.
nfi NT-device-path physical-sector-number
Determines which volume a given physical sector on a drive is
within, and then which file on the volume it is in.
NT-device-path is the NT-style path to a physical device.
It must not include a partition specification.
Physical-sector-number is a decimal or 0x-prefixed hex
number, specifying a sector number relative to the physical
drive whose device path is given by NT-device-path.
nfi full-win32-path
Dumps information about a particular file. full-win32-path
must start with a drive letter and a colon.
「\\?」を省略する必要があることに注意してください。ブロックデバイスパスのプレフィックス。例:
C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.
***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C.
\IMAGES\win7HDD.vhd
$DATA (nonresident)
physical sectors 32863720-34098663 (0x1f575e8-0x2084de7)
physical sectors 28519912-32863719 (0x1b32de8-0x1f575e7)
physical sectors 25727944-26291143 (0x18893c8-0x1912bc7)
physical sectors 95163976-115106143 (0x5ac1648-0x6dc615f)
NT-device-path
、で検索してみてくださいdd --list
。(Unixツールを使用しているユーザーへの注意PATH
:これdd
はC:\WINDOWS\system32\dd.exe
、フルパスを使用する必要がある場合があります)
c:\Windows\System32>dd.exe 'dd.exe' is not recognized as an internal or external command, operable program or batch file.
fsutil
管理者コマンドプロンプトから使用できます。サブコマンドにvolume
はquerycluster
サブサブコマンドがあります。WindowsコマンドラインリファレンスFsutilを参照してください。
Fsutilは、セクター番号の代わりに、論理ドライブのクラスター番号を入力引数として受け取ります。ただし、この数は簡単に計算でき
ます:cluster#=(absolute_sector-start_of_partition_sector)/ sector_per_cluster。
出力例:
c:\tmp> fsutil volume querycluster C: 5235
Cluster 0x0000000000001473, verwendet von
----D \Program Filesx86)\LibreOffice 4\program\fwilo.dll::$DATA
私が知る限り、ドライブがセクターで一定数の読み取りエラーに達すると、ドライブは不良としてマークされ、その内容はドライブ上の別の場所にコピーされます。これは通常、そのセクターのデータが完全に読めなくなる前に発生します。
私はそのための情報源を掘り下げようとします。昨日それを読んでみましたが、どこを思い出せません。
また、--repair-sectorフラグを使用して、本当に不良だったセクターを含め、不要になった不良セクターを復元できることに注意してください(ドライブはメディアの新しい領域に再マッピングする可能性が高い)。
結論:不良セクタを気にする必要はありません。ハードドライブファームウェアがそれを行います。あなたがしなければならないことは、それらが多すぎてあなたのドライブが死ぬ前に新しいドライブを取得することです。
RunTimeのDiskExplorerを使用すると、ドライブをセクターごとに調べることができます。有料のソフトウェア(NTFSバージョンでは70ドル)ですが、無料で試用できます。NTFS、FAT、Linux(ext2 / 3)のバージョンがあります。
私はスレッドが古いことを知っていますが、そのような問題を抱えているすべての人のための記録のために、Linuxからチェックする方法があります。実行が非常に簡単なslaxなど、cd / usbスティックでライブLinuxをいつでも使用できます。とにかく、仕事に戻りましょう。
今日、読み取り不能なセクター警告を含むいくつかのスマートデーモンログを見つけ、それを調査することにしました。調査後、私は最終的に実行します(#はルート権限を示すプロンプトです。通常のユーザーとして実行している場合は、代わりにsudoを使用できます)。
# smartctl -H /dev/sda2
SMART overall-health self-assessment test result: PASSED
これは、そのドライブがある程度正常であることを示しています。しかし、私はそれを追跡し、さらに調査して実行しましたbadblocks
。
# badblocks -v /dev/sda2 > ~/log/sda2.badsectors
# cat ~/log/sda2.badsectors
271521948
だから、私はそれが属するファイルを知りたいと思ったいくつかの不正ブロックがあってことが判明し、それは行うことができるとのdebugfs
問題は、私が使用して私のパーティションをNTFSということだった、ntfstoolsキーです。
# ntfscluster -s 271521948 /dev/sda2 > 271521948.secinfo 2>&1
# cat 271521948.secinfo | grep -v "extent"
Searching for sector 271521948
Inode 142427 /tmp/dl/setup_torch_2.exe/$DATA
* one inode found
/ grep -v "extent"
で表示役に立たない情報を取り除くオフの多くを得ることですntfscluster
/
ntfsの場合、必要なものはすべて1つですntfscluster -s $SECTOR
。