「chkdsk」は、「Windows NT」系で使われているドライブのエラーチェックツールです。
同時に、「chkdsk」は誤解を招きやすいプログラムでもあります。
「chkdsk」は、ハードディスクのエラーをチェックするためのプログラムではありません。
ましてや、ハードディスクのエラーを修復するプログラムでもありません。
「chkdsk」は、ファイルシステムのエラーをチェックし、修復するためのプログラムです。
つまり、「chkdsk」がチェックして修復する対象は、あくまでもソフトウェア的なものであり、
決してハードウェア的なものではないのです。
一応、「chkdsk」で副次的にハードディスクのエラーをチェックすることもできますが、
内容はセクタエラーのチェックに限られ、しかも管理はクラスタ単位で行われます。
これは、そもそも「chkdsk」の役割が、
異常のあるドライブのファイルシステムをチェックし、修正するためのものだからです。
従って、ハードディスクにエラーがあるかどうかを調べるために「chkdsk」を走らせるというのは、
誤った使用方法であると言ってもいいかもしれません。
たとえば、すでにそのドライブのファイルシステムで管理されているセクタエラーについては、
「chkdsk」を実行しても無視され、そのまま終了します。
ハードディスクのエラーチェックが主目的の場合は、他に方法があります。
何も修復しない「chkdsk」
「chkdsk」には、いろんな動作オプションがあります。
「chkdsk」はオプションを指定せずに実行すると、一切の修復作業を行いません。
文字通り、ディスク(というよりドライブ)のチェックを行うだけです。
これは、自動で修復まで行うと、それが原因で状況がより悪化してしまう危険性があるからです。
「chkdsk」による修復の目的は、Windowsにとって正しいファイルシステムにすることです。
ユーザーにとって必要なファイルを修復することではありません。
従って、その過程でユーザーにとって必要なデータが上書きされることがあります。
そもそも、「chkdsk」にはユーザーの必要とするデータがわかりません。
必要なデータを判断する前提となるファイルシステム自体に異常があるからです。
必要なデータがどれなのか、はっきりしない状態で機械任せに作業を行うことになるため、
ユーザーにとって必要なデータが失われる可能性があります。
また、「chkdsk」はハードディスクに対して負荷の高いプログラムです。
「chkdsk」で修復を試みるのは、極力後回しにしたほうがいいです。
特に、ハードディスクのセクタエラーが頻発するような状況で修復を行うと、
いつまで経っても「chkdsk」が終了しなくなる恐れがあります。
ただのチェックだけならまだしも、
「chkdsk」での修復作業が完了しないというのは、とってもまずい状態なんです。
ほぼ確実に、ファイルシステムの整合性が断たれてしまうからです。
その結果、今まで認識できていたものまで認識できなくなってしまいます。
そして、「chkdsk」による修復作業は、
ファイルシステムの管理情報を上書きすることによって行われます。
つまり、後戻りできません。
必要なデータは、「chkdsk」を実行する前に必ずバックアップを取っておいてください。
とはいえ、ファイルシステムに問題がある状態では、ファイル操作がままなりません。
従って、現状のファイルシステムに依存せずデータを扱う必要があります。
このような操作ができるソフトとしては、「ファイナルデータ」等があります。
ダウンロードページ | |
---|---|
当サイト内解説 | 「ファイナルデータ」の使い方 |
しつこいようですが、「chkdsk」で修復作業を実行した後、データを元に戻すことはできません。
「chkdsk」による修復作業を行う際は、このようなリスクがあることを事前に把握しておいてください。
「chkdsk」の実行
ここでは、コマンドプロンプトから「chkdsk」を実行します。
そのほうがより詳細な情報を得ることができ、また回復コンソールでの使用等、応用がきくからです。
というわけで、コマンドプロンプト(Windows PowerShell)を管理者として実行します。
まず、文字通り「chkdsk」と入力し、
半角スペースの後、チェック対象となるドライブレターを入力します。
たとえば、「Cドライブ」をチェックしたい場合は、
chkdsk c:
と入力します。
まだ「Enter」キーは押さないでください。
読み取り専用モード
ちなみに、オプションを指定せずそのまま「Enter」キーを押すと、
「chkdsk」を読み取り専用モードで実行できます。
読み取り専用モードでも、ファイルシステムのエラーはチェックできます。
修正されないだけです。
ファイルシステムに関する現在の状況を確認できるので、これはこれで使いみちがあります。
また、「chkdsk」で時間がかかるのは、ファイルシステムの修正に関する部分がほとんどなので、
読み取り専用モードでの実行は、短時間で終了します。
「chkdsk」の実行対象
ドライブレターを入力することからもわかるように、
「chkdsk」を実行するには、少なくとも対象となるドライブを認識している必要があります。
ドライブレターが与えられていない場合、つまりパーティションを認識していない場合は、
「chkdsk」を実行できません。
「TestDisk」等を使って、パーティションの復旧を試みてください。
また、「chkdsk」がファイルシステムのスキャンをするには、
「chkdsk」が認識できるファイルシステムである必要があります。
たとえば、Microsoftが開発したNTFS、FAT32は対象となりますが、
Linuxのファイルシステムであるext4は対象外です。
指定したドライブのファイルシステムは、「chkdsk」が自動で判別します。
「chkdsk」の修復オプション
比較的よく使う、「chkdsk」の代表的な修復オプションを列挙します。
/f | ファイルシステムを修復する。 あくまでもソフトウェア的な修復で、ハードディスクのセクタチェックは行わない。 つまり、ファイルシステムの管理情報の修正に特化したもの。 ファイルシステムの修復が主目的である場合は、これ一択。 最も使用頻度の高いオプション。 |
---|---|
/r | 不良セクタを検出し、不良クラスタから読み出し可能なデータは回収する。 また、「/f」のオプション動作を含む。 領域内の全セクタをチェックするため、非常に時間がかかる。 読めないデータはそのまま失われるので、過信は禁物。 ちなみに、「/f」でダメだと、こっちでもダメな場合がほとんどです。 「/r」が有効なのは、必要なデータを取り出した後、 不良セクタがあると判明しているハードディスクに対して修復を行う場合です。 |
/b | ファイルシステムに登録されている不良クラスタをチェックし直す。※Vista以降。 また、「/r」のオプション動作を含む。 不良セクタのあるハードディスクから、新しいハードディスクへ、 パーティション丸ごと移した場合に有効かと。 詳細は、不良セクタの修復のページ参照。 |
上記3つのオプションは、包含関係にあります。
「/r」のオプションを指定すると、「/f」も指定したことになり、
「/b」を指定すると、「/r」も「/f」も指定したことになります。
でも実際には、ほとんど「/f」しか使いません。
「/f」だけ覚えておいてもいいくらいです。
負荷の高い「/r」オプション
「/r」のオプションは、「/f」とは比べものにならないぐらい時間がかかります。
倍とか、そんな生やさしいもんじゃないです。
10倍をはるかに超える時間がかかることも多いので、覚悟しておいてください。
数時間で済めばいいほうで、ハードディスクの状態によっては丸1日以上かかります。
相応に、ハードディスクに対する負荷も高くなります。
壊れかけのハードディスクが応答しなくなっても知りません。
大は小を兼ねる的発想で、安易に「/r」を使いたくなる気持ちもわからなくはないんですが、
「chkdsk」を実行する目的が何なのか、よく考えたうえで、オプションを選択すべきです。
個人的に、「chkdsk」を使用する状況では、ハードディスクの動作があやしいことが多いので、
極力余計なことはしないほうがいいと考えます。
「/r」オプションを実行するのは、最後でいいです。
「chkdsk」による修復作業が必要な場合は、
上の画像のように、ドライブレターとあわせて修復オプションを入力し、「Enter」キーを押します。
対象がシステムドライブの場合、
Windowsの動作中に、修復オプションを指定して「chkdsk」を実行することはできません。
ファイルシステムを修正するには、管理情報を書き換える必要があるので、
修復対象のドライブを一旦マウント解除する必要があります。
でも当然ながら、システムドライブはシステムの動作中にマウント解除できません。
なので、再起動時に「chkdsk」を実行するかどうか、確認を求められます。
「Y」と入力して「Enter」キーを押すと、再起動時に「chkdsk」が実行されます。
「chkdsk」による修復が目的であれば、即座に再起動してください。
「chkdsk」プログラムは、完了するまでに非常に長い時間を要する場合もありますが、
ひたすら待って、一連の作業を完了させてください。
ドライブのエラーチェックツールとの違い
WindowsのGUIから実行する、ドライブのエラーチェックツールもあります。
ディスクのプロパティからの「チェックディスク」と言えば、わかるでしょうか。
- ドライブの右クリックメニューから「プロパティ」
- 「ツール」タブの「チェックする」
- 修復オプションを選択してから「開始」
というのが一連の操作です。
「Windows 7」だと、2つのオプションがあります。
「chkdsk」のオプションと対比させるとよくわかりますが、
ファイルシステムエラーを自動的に修復する | → | /f |
不良セクタをスキャンし、回復する | → | /r |
です。
ただし、「チェックディスク」のオプションは包含関係になく、個別に指定できます。
ちなみに、「不良セクタをスキャンし、回復する」と書かれていますが、
不良セクタが正常なセクタに回復するわけではありませんので、誤解なきよう。
不良セクタを含んだクラスタは不良クラスタとして、ファイルシステム上使わないようにするだけです。
「Windows 8」以降の「エラーチェック」では、チェックボックスもなく、
エラーがあれば修正を試みるといった感じで、より自動的になっています。
オプションの選択はできません。
オプションを指定して実行するには、
前述のように、コマンドプロンプトから「chkdsk」を実行するしかありません。
これらドライブのエラーチェックツールと、「chkdsk」の違いは他にもあります。
「chkdsk」じゃないと、詳細な情報は得られません。
一応、ドライブのエラーチェックツールでも、
スキャン完了後に「詳細の表示」をクリックすると内容を確認できますが、
不良セクタに関する項目が表示されません。
また、スキャンが完了するまで、その過程と詳細情報を確認できません。
「chkdsk」であれば、過程も表示されますし、不良セクタについても確認できます。
「chkdsk」のほうができることが多いので、「chkdsk」を使っておいたほうがいいのは間違いありません。