PCなんでも屋
English
ハードディスク修復/データ回復サービス
こんな場合でも修復/データ回復ができます
ハードディスク修復/データ回復の例1
ハードディスク修復/データ回復の例2
サービスの手順
料金表
サービスのお申し込み
その他のサービス
ハードディスク修復のTIPS
店長のブログ
ITAYA's Home Page
このページに記載された文章・画像等の無断転載を禁じます。なお、リンクはご自由に行っていただいて結構です。
TIPSその4

「あるはずのフォルダ/ファイルが見えない、あるいはファイルまたはディレクトリが壊れているため、読み取ることができませんというエラーメッセージが表示される場合のファイルシステム修復方法」



●注意●
 ここで示す操作は上級者向けのものです。初心者向けではありません。ここで書かれた内容を理解できない場合は、絶対に操作しないでください。間違えると取り返しのつかない結果になる恐れがあります。


●FATの位置情報によるトラブル
症状:あるはずのファイル/フォルダの全部または一部が見えなくなる。
原因:他の原因もあるが、パーティションブートセクタ (PBS) 中のFATの位置情報が壊れた可能性がある。主にFAT16で起きる。
修復方法:FAT16の場合:
1) Disk Probeを起動し、「Drives」メニューから「Logical Volume」を開く。
2) 「Logical Volumes」ボックスから、問題となっているドライブ名をダブルクリックし、「Handle 0」の「Read Only」のチェックを外し、「Set Active」ボタンをクリックし、「OK」ボタンをクリックする。
3) 「Sectors」メニューから「Read」をクリックする。
4) 「Starting Sector」が "0"、「Number of Sectors」が "1" のまま「Read」ボタンをクリックする。
5) 「View」メニューから「FAT-16 BootSector」をクリックする。
6) 「Reserved sectors」の値に注目する。通常は、この値が "1" から "4" の間にあるはずだ。それ以外の値が入っていれば、それは間違っている。ただ、この範囲にあっても正しいとは限らない。
7) 「View」メニューから「Bytes」をクリックする。
8) 「Sectors」メニューから「Read」をクリックする。
9) 「Starting Sector」に "1"、「Number of Sectors」に "4" を入力し「Read」をクリックする。
10) 画面1のような画面が表示されたなら、そのセクタがFATの開始位置と考えてよい。画面2のような画面が表示されたなら、それはFATではないので、ツールバーの右向き三角ボタンをクリックし、次のセクタを表示する。画面1のような画面が表示されるまでこれを繰り返し、FATの開始位置を求める。
正常なFAT − クリックして拡大
画面1:正常なFATの例

FATではない − クリックして拡大
画面2:これはFATではない。

11) 仮にセクタ4がFATの開始位置と求められたら、「Sectors」メニューから「Read」をクリックする。
12) 「Starting Sector」に "0"、「Number of Sectors」に "1" を入力し「Read」をクリックする。
13) 「View」メニューから「FAT-16 BootSector」をクリックする。
14) 「Reserved sectors」に 10) で求めたFAT開始セクタ位置を入力する。
15) 「Sectors」メニューから「Write」をクリックする。
16) 「Starting sector to write data」に "0" が入っているまま「Write it」ボタンをクリックする。
17) 確認メッセージに対して「はい」をクリックする。
18) Disk Probeを閉じ、問題のドライブにアクセスして、ファイル/フォルダが見えるようになったことを確認する。

 FAT32では、FAT開始位置はセクタ "32" に固定されており、PBSのパラメータが書き換わっても自動的に "32" に修復されるので、このトラブルは起きない。
 NTFSでは、MFT開始位置情報が間違っていても、MFTミラーの位置情報が正しければMFTミラーを元にアクセスできるので、やはりこのトラブルは起きない。

●MFTの位置情報によるトラブル
症状:ドライブにアクセスすると「ファイルまたはディレクトリが壊れているため、読み取ることができません。」というエラーメッセージが表示される。
原因:パーティションブートセクタ (PBS) 中のMFTの開始位置情報とMFTミラーの開始位置情報の両方が壊れた。このトラブルはFAT16/32では起きない。
修復方法:この場合はPBSのバックアップから修復するのが一番簡単だ (TIPSその2 「フォーマットされていないというエラーメッセージが出るパーティションの回復方法」)。
 PBSのバックアップが見つからないあるいはバックアップも壊れている場合は次の方法で,MFT開始位置情報を修復する。
1) Disk Probeを起動し、「Drives」メニューから「Logical Volume」を開く。
2) 「Logical Volumes」ボックスから、問題となっているドライブ名をダブルクリックし、「Handle 0」の「Read Only」のチェックを外し、「Set Active」ボタンをクリックし、「OK」ボタンをクリックする。
3) 「Sectors」メニューから「Read」をクリックする。
4) 「Starting Sector」が "0"、「Number of Sectors」が "1" のまま「Read」ボタンをクリックする。
5) 「View」メニューから「NTFS BootSector」をクリックする。
6) 「Clusters to MFT」の右にある「Go」ボタンをクリックする。
7) 「View」メニューから「Bytes」をクリックする。
8) 画面3は正しい先頭MFTの画面だが、これと同じような画面かどうかを確認する。特徴は、右のASCII表示部分で、先頭に "FILE0" とあり、真ん中あたりに、"$.M.F.T." とあるかどうかだ。
正しいMFT − クリックして拡大
画面3:正しいMFTの例

9) 再度「Sectors」メニューから「Read」をクリックする。
10) 「Starting Sector」に "0"、「Number of Sectors」に "1" を入力し「Read」をクリックする。
11) 「View」メニューから「NTFS BootSector」をクリックする。
12) 「Clusters to MFTmirr」の右にある「Go」ボタンをクリックする。
13) View」メニューから「Bytes」をクリックする。
14) 画面3と同様な画面が表示されるか確認する ("FILE0"、"$.M.F.T." を確認)。
15) 8) と14) でMFTおよびMFTミラーの開始位置情報が間違っていることが確認できたら、「Tools」メニューから「Search Sectores」をクリックする。
16) 「Search at offset」と「Unicode characters」にチェックを付け、「Offset in hex」に ”F2"、「First sector to search」に "0"、「Enter characters to search for」に "$MFT" と入力し、「Search」ボタンをクリックする。
17) 「Found match in Sector xxxxxx Press Yes to continue search」と表示されたら、xxxxxxの部分をメモし、「はい」ボタンをクリックする。これを繰り返し、「Searched xxxxxxxx sectors String not found」と表示されたら「OK」ボタンをクリックする。
18) 17) で見つかったセクタが4つで、1番目と2番目、3番目と4番目が2セクタの違いであれば、1番目のセクタがMFTの開始セクタで、3番目のセクタがMFTミラーの開始セクタと考えられる。ただ、過去にパーティションを作成・削除したことがあると、過去のMFT/MFTミラーの残骸が見つかることがあるため、どれが正しいMFT/MFTミラーの開始セクタかを判断することが難しい。一般的には、MFTの位置は、パーティションサイズが小さい場合はセクタ660480にあり、パーティションサイズが大きい場合はセクタ6291456にある場合が多い。しかしこれは絶対ではない。MFTミラーの位置は、パーティションの総セクタ数の半分の位置にあることが多いが、これも絶対ではない。
19) MFT/MFTミラーの開始セクタがわかったら、「Sectors」メニューから「Read」をクリックする。
20) 「Starting Sector」に "0"、「Number of Sectors」に "1" を入力し「Read」をクリックする。
21) 「View」メニューから「NTFS BootSector」をクリックする。
22) 「Clusters to MFT」に、19) で求めたMFT開始セクタ数÷8の数字を入力する (ここにはセクタ数でなくクラスタ数を入力するため)。「Clusters to MFTmirr」にも同様に、MFTミラー開始セクタ数÷8の数字を入力する。なお、MFTミラーは修復しなくてもデータにアクセス可能だが、後々のことを考えると可能ならば修復しておくことが望ましい。
23) 「Sectors」メニューから「Write」をクリックする。
24) 「Starting sector to write data」に "0" が入っているまま「Write it」ボタンをクリックする。
25) 確認メッセージに対して「はい」をクリックする。
26) Disk Probeを閉じ、問題のドライブにアクセスして、ファイル/フォルダがアクセス可能であることを確認する。

●FAT (MFT) が壊れたトラブル
症状:ドライブにはアクセスできるが、ファイル/フォルダにアクセスすると「ファイルまたはディレクトリが壊れているため、読み取ることができません。」というエラーメッセージが表示される。
原因:パーティションブートセクタ (PBS) 中のFATやMFTの開始位置情報は正しいが、FAT (MFT) の内容が壊れている。
 このトラブルで修復は難しい。というのは、FATやMFTが壊れても、FATのコピーやMFTミラーが正常であれば、それを元にchkdskユーティリティによって修復される。その結果、修復ができればユーザーはこのトラブルを解決できる。一方、chkdskによる修復ができなかった場合は、たいてい壊れたFATやMFTがFATのコピーやMFTミラーに上書きされてしまうことが多い。こうなるとFATのコピーやMFTミラーを使った修復もできなくなる。ただ稀に、FATやMFTが壊れてもchkdskが壊れたと認識しない場合は、FATのコピーやMFTミラーは正常なままなので、これを使って修復できる可能性がある。

修復方法:FAT16の場合:
1) Disk Probeを起動し、「Drives」メニューから「Logical Volume」を開く。
2) 「Logical Volumes」ボックスから、問題となっているドライブ名をダブルクリックし、「Handle 0」の「Read Only」のチェックを外し、「Set Active」ボタンをクリックし、「OK」ボタンをクリックする。
3) 「Sectors」メニューから「Read」をクリックする。
4) 「Starting Sector」が "0"、「Number of Sectors」が "1" のまま「Read」ボタンをクリックする。
5) 「View」メニューから「FAT-16 BootSector」をクリックする。
6) 「Reserved sectors」の値と「Sectors per FAT」の値をメモする。
7) 「View」メニューから「Bytes」をクリックする。
8) 「Sectors」メニューから「Read」をクリックする。
9) 「Starting Sector」に 6) でメモした「Reserved sectors」の値+「Sectors per FAT」の値を入力し、「Number of Sectors」に「Sectors per FAT」の値を入力し、「Read」をクリックする。
10) 「Sectors」メニューから「Write」をクリックする。
11) 「Starting sector to write data」に 6) でメモした「Reserved sectors」の値を入力して「Write it」ボタンをクリックする。
12) 確認メッセージに対して「はい」をクリックする。
13) Disk Probeを閉じ、問題のドライブにアクセスして、ファイル/フォルダが見えるようになったことを確認する。

修復方法:FAT32の場合:
1) Disk Probeを起動し、「Drives」メニューから「Logical Volume」を開く。
2) 「Logical Volumes」ボックスから、問題となっているドライブ名をダブルクリックし、「Handle 0」の「Read Only」のチェックを外し、「Set Active」ボタンをクリックし、「OK」ボタンをクリックする。
3) 「Sectors」メニューから「Read」をクリックする。
4) 「Starting Sector」が "0"、「Number of Sectors」が "1" のまま「Read」ボタンをクリックする。
5) 「View」メニューから「FAT-16 BootSector」をクリックする。
6) 「Reserved sectors」の値をメモする。Disk ProbeはFAT32に対応していないため、「Sectors per FAT」の値が利用できない。ただ、「Reserved sectors」は共通なので、これを利用する。
7) 「View」メニューから「Bytes」をクリックする。
8) 画面4のように、オフセット0024から0026にある4バイトのデータからFATのサイズを計算する。その方法は、まず4バイトのデータを逆順に並べ替える (仮に4バイトのデータがA1 B2 C3 D4だとするとD4 C3 B2 A1に並び替える)。これが16進の値になる。これを10進に変換する (変換にはアクセサリにある電卓が利用できる)。求められた値をメモしておく。画面の例では16進で "00 00 07 8C" なので、10進では "1932" になる。
FATのサイズを計算 − クリックして拡大
画面4:FATのサイズを計算する。

9) 「Sectors」メニューから「Read」をクリックする。
10) 「Starting Sector」に 6) でメモした「Reserved sectors」の値+ 8) で計算した10進のFATのサイズを入力し、「Number of Sectors」に 8) で計算した10進のFATのサイズを入力し、「Read」をクリックする。
11) 「Sectors」メニューから「Write」をクリックする。
12) 「Starting sector to write data」に 6) でメモした「Reserved sectors」の値を入力して「Write it」ボタンをクリックする。
13) 確認メッセージに対して「はい」をクリックする。
14) Disk Probeを閉じ、問題のドライブにアクセスして、ファイル/フォルダが見えるようになったことを確認する。

修復方法:NTFSの場合:
1) Disk Probeを起動し、「Drives」メニューから「Logical Volume」を開く。
2) 「Logical Volumes」ボックスから、問題となっているドライブ名をダブルクリックし、「Handle 0」の「Read Only」のチェックを外し、「Set Active」ボタンをクリックし、「OK」ボタンをクリックする。
3) 「Sectors」メニューから「Read」をクリックする。
4) 「Starting Sector」が "0"、「Number of Sectors」が "1" のまま「Read」ボタンをクリックする。
5) 「View」メニューから「NTFS BootSector」をクリックする。
6) 「Clusters to MFT」の値と、「Clusters to MFTmirr」の値をメモし、「View」メニューから「Bytes」をクリックする。
7) 「Sectors」メニューから「Read」をクリックする。
8) 「Starting Sector」に 6) でメモした「Clusters to MFTmirr」の値×8を入力し、「Number of Sectors」に "8" を入力し、「Read」ボタンをクリックする。
9) 画面5のように「FILE0」および「$.M.F.T.」が表示されていることを確認し、「Sectors」メニューから「Write」をクリックする。
「FILE0」および「$.M.F.T.」が表示されていることを確認 − クリックして拡大
画面5:「FILE0」および「$.M.F.T.」が表示されていることを確認する。

10) 「Starting sector to write data」に 6) でメモした「Clusters to MFT」の値×8を入力し、「Write it」ボタンをクリックする。
11) 確認メッセージに対して「はい」をクリックする。
12) Disk Probeを閉じ、問題のドライブにアクセスして、ファイル/フォルダが見えるようになったことを確認する。
(by ITAYA)

これで修復できない場合はハードディスク修復/データ回復サービスをご利用ください。