ファイルまたはディレクトリが壊れているため、
読み取ることができません

ファイルが壊れているとはどういうことか

F:\ にアクセスできません。ファイルまたはディレクトリが壊れているため、読み取ることができません。

○○にアクセスできません。
ファイルまたはディレクトリが壊れているため、読み取ることができません。

このような表示が出て、特定のファイルやフォルダ、最悪ドライブ全体にアクセスできなくなることがあります。
一旦このエラーが出ると、操作をやり直そうが再起動しようが、通常のファイル操作を行うことはできないので、
何らかの対処を行う必要があります。

ただし、「ファイルまたはディレクトリが壊れている」というエラーが表示される場合には、
必要なデータのバックアップを最優先すべきです。
その後、エラーの修復作業にあたったほうがいいです。

なんというか、

  • 当該ドライブを使える状態にする
  • ファイルを復元する

これらは完全に別の作業です。

現在異常のあるドライブを使えるようにするためには、データを一部上書きしなければなりません
その過程で、ユーザーにとって必要なデータが上書きされることがあります。
結果的に、復元できたはずのファイルが復元できなくなることがあります。

また、セクタエラーが頻発しているハードディスクでは、作業負荷によってとどめを刺してしまうことがあります。
ハードディスクのデータを変更する前に、最低限必要なものは退避させておいてください。

「ファイルまたはディレクトリが壊れている」とは、どういうことか

ところで、「ファイルまたはディレクトリが壊れている」というのがどういう状態なのか、
いまいちはっきりしません。
イメージ的には、ファイルが保存されているデータ領域の一部が欠損してしまっているように思えます。

でも、ここで注意が必要なのは、
データが壊れているのではなく、ファイルが壊れているという点です。
このエラー表示は、Windowsによって行われており、
あくまでも、「ファイルまたはディレクトリが壊れている」という、Windowsのエラーです。

ファイルを使用するアプリケーションにとって正しいデータであるかどうかは、関係ありません
実際、「ファイルまたはディレクトリが壊れている」状態から復旧したデータがすべて壊れている、
というわけでは全然ありません。
Windowsが認識できるファイルという形になっていないことを示すエラーであり、
データが完全な状態で残っているかどうかとは別の問題
なのです。

どーでもいーはなし

「ディレクトリ」という単語を聞いたことがない人もいるかもしれません。

「ディレクトリ」とは、Windowsでいう「フォルダ」のことです。
視覚的にもわかりやすいので、Windowsではディレクトリのことをフォルダと呼んでいるんだと思います。

修復すべき対象、つまり原因

幸か不幸か、「ファイルまたはディレクトリが壊れている」というエラーの場合は、
原因が比較的はっきりしています

ファイルシステムのインデックスの破損です。

NTFSパーティションの場合は、MFT
FAT32パーティションの場合は、FAT
それ以外の要素があまり考えられません。
早い話が、そのドライブのファイルシステムに異常があるのです。
それも、ファイルシステムを認識できないわけではなく、その先の問題で、
何のファイルシステムか認識はしているけど、対象のファイルまでアクセスできない状態。

インデックスの破損箇所によって、どの場所にアクセスできないかが変わってきます。
インデックスが破損してしまうそもそもの原因は、不良セクタの発生だったりしますが、
不良セクタの有無に関わらず、インデックスが破損した時点で、
「ファイルまたはディレクトリが壊れている」ことになります。

ファイルシステムを修復するうえでの問題点

ファイルシステムの修復といっても、フォーマットするわけではないので、ほとんどのデータは保持されます。
できるだけ元のファイルに影響を与えないように、でも正常なファイル操作が行えるように、
インデックスを修正します。

しかし、データの保持とデータの修正は、矛盾する行為です。
修復作業の結果、正常なファイル操作が行えるようになったとしても、
従来あったすべてのファイルが存在しているとは限りません
むしろ、問題のあったファイルは消えることがあります。

バックアップでもとっていない限り、データを完全に元に戻すという意味での復旧は不可能です。
ファイルの重要度が高い場合には、
これ以上データを失うことがないように、事前にバックアップをとるべきです。

ファイルを復元する

インデックスが破損している状態では、通常のファイル操作は不可能です。
このままでは、バックアップをとることさえできません。

通常のファイル操作が行えない原因は、今現在異常のあるインデックスを見に行くからです。
異常のあるファイルシステムを前提にするから、異常な挙動しかできなくなります。
そこで、インデックスを無視してデータを見に行く必要性が生じます。

ファイナルデータ

インデックスを無視してデータを抽出するには、それ用のツールが必要になります。
たとえば、「ファイナルデータ」でそれができます。

ダウンロードページ ファイナルデータ
当サイト内解説 「ファイナルデータ」の使い方

インデックスが破損していても、保存場所によってはWindows上から通常のファイル操作が可能です。
そうした場合は、エクスプローラを使ってバックアップ用のデバイスにファイルを退避させてもいいです。

必要なデータのバックアップを取った後、最終的にファイルシステムの修復を行うようにします。
さもないと、上書きされたデータの復旧は不可能だからです。

対象のドライブを使える状態にする

現状、ファイルシステムのインデックスが破損しているので、
インデックスを修復できれば、ファイルにアクセスできるようになります。

ファイルシステムのインデックスは、通常、Windowsによって管理されているものです。
従って、インデックスを修復するツールも、Windowsに用意されています
いわゆる、「チェックディスク」です。

「チェックディスク」による修復

ツール - ドライブのプロパティ

  1. ドライブの右クリックメニューから「プロパティ」を選択
  2. 「ツール」タブの「チェックする」を選択
  3. 修復オプションを指定してから「開始」を選択

とすることで、選択したディスクをチェックすることができます。

チェックディスクのオプション - ディスクのチェック

「ファイルまたはディレクトリが壊れている」のなら、ファイルシステムの破損は明らかなので、
少なくとも「ファイルシステムエラーを自動的に修復する」にチェックを入れて、
「開始」を選択
する必要があります。

冒頭にも書きましたが、チェックディスクによる修復はリスクを伴います。
でも、ファイルシステムを修復するためには、オプションを指定しなければなりません。
ちなみに、「不良セクタをスキャンし、回復する」は必須ではありません
非常に時間がかかりますし、記憶装置に対する負荷も高くなります。
特に、動作不安定なハードディスクでは、不良セクタのスキャンは後回しにしたほうがいいです。

チェックディスク - Windows 8

なお、「Windows 8」以降ではチェックディスクの仕様が変わり、動作設定ができなくなりました。
つまり、オプションの指定ができません。
ドライブにエラーが検出された場合は、自動的に修復作業が実行されます。
ただし、良くも悪くも何をやっているのかがわかりません。
個人的には、後述するコマンドプロンプトからの「chkdsk」による修復をおすすめします。

次回コンピューター起動時にハードディスクのエラーを検査しますか?

修復オプションを実行するためには、ドライブをマウント解除しなければなりません。
システムドライブを修復する際は、一旦Windowsを終了する必要があります
画面上の操作としては、再起動時に「chkdsk」の実行を予約することになります。
確認画面が出てくるので、「はい」を選択して再起動します。

「chkdsk」による修復

GUIによる「チェックディスク」でもいいんですが、
理想的には、コマンドプロンプトから「chkdsk」を実行したほうがいいです。
修復オプションの選択肢が多く、また修復の過程を確認でき、ファイルシステムの現状を確認できるからです。
エラー表示に現れることがある「CHKDSKユーティリティ」というのも、これを意味します。

まず、コマンドプロンプトを管理者として実行します。

chkdsk c: /f

chkdsk (修復対象のドライブレター) /f

「chkdsk」によるファイルシステムの修復を行う場合は、
上の画像のようにドライブレターとあわせて、「/f」と修復オプションを入力し、「Enter」キーを押します。

「chkdsk」の修復オプションには、様々なものがあります。
詳細については、下記ページ参照。

「chkdsk」の修復オプション

再起動時に、このボリュームのチェックをスケジュールしますか?

チェックディスクの場合と同様、対象がシステムパーティションの場合は、
再起動時に「chkdsk」を実行することになります。

ひとたびチェックディスクが実行されると、途中でやめることができません。
時間がかかるかもしれませんが、完了するまでひたすら待ってあげてください。
修復作業が完了すれば、普通にファイル操作できるようになるはずです。

不良セクタとは何か

ファイルシステムに問題が発生する直接の原因として、不良セクタが挙げられます。
すべて不良セクタが原因になっているわけではありませんが、
不良セクタが発生すると、ファイルシステムに影響を与える可能性が極めて高いです。

不良セクタ - chkdsk

コマンドプロンプトから「chkdsk」を実行すると、不良セクタの値を確認できます。
ただし、これはファイルシステムによって管理されている不良セクタです。
従って、「chkdsk」でファイルシステムの修復を行っても、この不良セクタは放置されます。
なぜそうなるかということについては、下記ページ参照。

ファイルシステム上の不良セクタ - 不良セクタについて

CrystalDiskInfo

物理的な不良セクタを調べるには、
「CrystalDiskInfo」等のSMART情報を確認できるソフトウェアを使います。
詳細は下記ページにて。

「CrystalDiskInfo」の見方

不良セクタが増え続けるようであれば、そのハードディスクの継続使用は避けるべきです。
不良セクタは、ハードディスクに正常な読み書きができなくなる直接の原因になるので、
遅かれ早かれ再びファイルシステムに問題を抱える可能性が高いからです。