chkdsk - ディスクのエラーを検査・修復する

にメンテナンス済み

ファイルが開けない、フォルダーが壊れて見える、USB メモリや外付けドライブが「フォーマットしますか?」と表示される――そんなときに試したいのが、ディスクのエラーを調べて修復する chkdsk(チェックディスク) です。

chkdsk はオプションの付け方で動作が大きく変わります。何も付けなければ検査だけ、/f を付けると修復、/r を付けると不良セクターの検査まで行います。この記事では、目的別の使い分けから、よく出るメッセージへの対処までを解説します。

事前準備:管理者として実行する

chkdsk は、管理者として実行したコマンドプロンプトで使います。通常の権限で実行すると、検査自体が拒否されます(読み取りだけのチェックでも管理者権限が必要です)。

管理者として起動する方法は、

を参照してください。

やりたいこと別の早見表

やりたいことコマンド
まず状態だけ調べる(修復はしない)chkdsk C:
エラーを検査して修復するchkdsk C: /f
不良セクターまで調べて修復する(時間がかかる)chkdsk C: /r
使用中のドライブを一度外してから修復するchkdsk D: /x
稼働したまま NTFS を検査する(再起動不要)chkdsk C: /scan
見つかった問題だけを短時間で修復する(NTFS)chkdsk C: /spotfix
ドライブ文字を忘れずに

chkdsk だけを実行すると、いま作業しているドライブ(通常は C:)を読み取りのみで検査します。他のドライブを対象にするときは、chkdsk D: のようにドライブ文字を指定してください。

chkdsk の基本構文

chkdsk [<ドライブ>:] [/f] [/r] [/x] [/scan] [/spotfix] [/v]
オプション説明
なし検査だけを行い、エラーがあっても修復はしない
/fディスク上のエラーを修復する。ドライブをロックする必要がある
/r不良セクターを探し、読み取れる情報を回復する。/f の内容も含む
/x必要に応じて先にドライブを取り外してから検査する。/f の内容も含む
/scanNTFS ボリュームをオンライン(使用したまま)で検査する
/spotfixNTFS ボリュームで、見つかった問題だけをオフラインで短時間に修復する
/v詳細な情報を表示する(FAT 系では検査中のファイルのパス、NTFS ではクリーンアップのメッセージ)

/f と /r の違い

迷いやすいのがこの 2 つです。

項目/f/r
修復する内容ファイルシステムの不整合ファイルシステムの不整合 + 不良セクター
検査にかかる時間比較的短い長い(容量が大きい HDD では数時間かかることも)
向いている場面まず最初に試すディスクの物理的な不調が疑われるとき

/r は /f の内容を含むため、/f と /r を両方書く必要はありません。まずは /f で試し、改善しない・読み込みが極端に遅いなど物理的な不調が疑われる場合に /r を使うのが一般的です。

/r は時間がかかる。電源を切らない

/r はディスク全体を調べるため、容量の大きい HDD では長時間かかります。ノート PC は電源に接続し、検査の途中でシャットダウンや電源断をしないでください。なお、SSD は構造上、不良セクターの扱いが HDD と異なるため、常用する必要はあまりありません。

ディスクを検査する

まずは修復せずに、状態だけを確認してみましょう。

chkdsk C:

問題がなければ、最後に次のような内容が表示されます(NTFS の場合)。

Windows はファイル システムをスキャンしました。
問題は見つかりませんでした。
追加の操作は必要ありません。

エラーが見つかった場合は、「ファイル システムにエラーが見つかりました。ディスクを修復するには /f オプションを指定して CHKDSK を実行してください。」という趣旨のメッセージが出ます。この場合は次の手順で修復します。

エラーを修復する

chkdsk D: /f

/f は修復のためにドライブをロックします。そのドライブを他のプログラムが使っていなければ、そのまま検査・修復が進みます。

「使用中のため実行できない」と表示されたら

Windows が入っている C: ドライブなど、使用中のドライブに /f を付けると、次のようなメッセージが表示されます。

現在のドライブをロックできません。
ボリュームが別のプロセスで使用されているため、Chkdsk を実行できません。
次回のシステム再起動時にこのボリュームのチェックをスケジュールしますか (Y/N)?

Y と入力して Enter を押すと、次回の再起動時(Windows が起動する前)に自動で検査・修復が行われます。PC を再起動して完了を待ちましょう。

外付けドライブは /x でも

USB メモリや外付けドライブなど、システム以外のドライブは、開いているウィンドウやアプリを閉じてから実行すると再起動なしで検査できます。使用中の場合は「このボリュームの強制的なマウント解除を行いますか (Y/N)?」のように確認されることがあり、Y を選ぶ(または最初から chkdsk D: /x と指定する)とドライブを取り外してから検査します。そのドライブを開いているファイルのハンドルは無効になるため、保存していない作業がないことを確認してから実行してください。

再起動時のチェックを取り消したい

予約してしまったチェックを取り消したいときは、次のコマンドでそのドライブを起動時チェックの対象から外します。

chkntfs /x C:
/x の設定は残り続ける

chkntfs /x で除外したドライブは、本当に問題があっても起動時に自動チェックされなくなります。元に戻すには chkntfs /d を実行して、既定の設定(起動時チェックの対象)に戻してください。

予約状況の確認は chkntfs C: で行えます。チェックが予約されていない場合は、ドライブが問題なしの状態であることを示す趣旨のメッセージが表示されます。再起動時に表示される「チェックをスキップするには何かキーを押してください」の画面で、キーを押して今回だけスキップすることもできます。

検査結果を後から確認する

再起動時のチェックは、完了後すぐにデスクトップが表示されるため、結果を見逃しがちです。結果はイベント ビューアーで確認できます。

  1. eventvwr.msc を実行してイベント ビューアーを開く
  2. 「Windows ログ」→「アプリケーション」を選ぶ
  3. ソースが Wininit(再起動時のチェック)または Chkdsk(Windows 上での検査)のイベントを探す

PowerShell を使う場合は、次のコマンドで再起動時のチェック結果を取り出せます。

Get-WinEvent -FilterHashtable @{ LogName = 'Application'; ProviderName = 'Wininit' } -MaxEvents 1 | Format-List Message

稼働したまま検査する(/scan)

Windows 8 以降の NTFS ボリュームでは、/scan でドライブを使用したままオンライン検査ができます。

chkdsk C: /scan

/scan は検査だけを行い、必要な修復は後で行います。修復を最小限の停止時間で済ませたい場合は、/spotfix を使います。

chkdsk C: /spotfix

/spotfix は、/scan で見つかった問題だけを修復します。ドライブが使用中でオフラインにできない場合は、次回の再起動時など、使用されていないタイミングで実行されます。

バッチファイルで終了コードを判定する

chkdsk は結果を終了コードで返すため、バッチファイルから結果を判定できます。

終了コード意味
0エラーは見つからなかった
1エラーが見つかり、修復した
2クリーンアップを実行した、または /f を指定していないため実行しなかった
3検査できなかった、エラーを修復できなかった、または /f を指定していないため修復しなかった
disk-check.cmd
@echo off

chkdsk D:
if %errorlevel% equ 0 (
  echo 問題は見つかりませんでした。
) else (
  echo ディスクの確認が必要です。終了コード: %errorlevel%
)
pause

終了コードの扱いについては、

を参照してください。

日本語を含むバッチファイルの文字コード

上のバッチファイルは echo に日本語を含むため、UTF-8 で保存するとコマンドプロンプトで文字化けすることがあります。Shift_JIS(ANSI)で保存するか、先頭付近に chcp 65001 >nul を追加してください。詳しくは

を参照してください。

chkdsk を使う前に知っておきたいこと

まとめ

やりたいことコマンド
修復せずに状態を確認するchkdsk C:
エラーを修復するchkdsk C: /f
不良セクターも調べて修復するchkdsk C: /r
使用したままオンライン検査するchkdsk C: /scan
見つかった問題だけを修復するchkdsk C: /spotfix
予約した起動時チェックを取り消すchkntfs /x C:

関連記事

練習問題

練習問題

ディスクのファイルシステムのエラーを修復するために、最低限必要なオプションはどれですか?

正しいものを 1 つ選んでください。

  1. オプションなしの chkdsk C:
  2. chkdsk C: /f
  3. chkdsk C: /v

練習問題

chkdsk C: /f を実行したら「現在のドライブをロックできません」と表示されました。Y を入力するとどうなりますか?

正しいものを 1 つ選んでください。

  1. 次回の再起動時に、Windows の起動前に検査・修復が実行される
  2. 強制的にすべてのアプリが終了され、その場で修復が始まる
  3. 検査の予約が取り消され、何も行われない
#コマンドプロンプト #コマンドライン #コマンド #chkdsk #ディスク #管理者権限 #トラブルシューティング