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 の内容も含む |
/scan | NTFS ボリュームをオンライン(使用したまま)で検査する |
/spotfix | NTFS ボリュームで、見つかった問題だけをオフラインで短時間に修復する |
/v | 詳細な情報を表示する(FAT 系では検査中のファイルのパス、NTFS ではクリーンアップのメッセージ) |
/f と /r の違い
迷いやすいのがこの 2 つです。
| 項目 | /f | /r |
|---|---|---|
| 修復する内容 | ファイルシステムの不整合 | ファイルシステムの不整合 + 不良セクター |
| 検査にかかる時間 | 比較的短い | 長い(容量が大きい HDD では数時間かかることも) |
| 向いている場面 | まず最初に試す | ディスクの物理的な不調が疑われるとき |
/r は /f の内容を含むため、/f と /r を両方書く必要はありません。まずは /f で試し、改善しない・読み込みが極端に遅いなど物理的な不調が疑われる場合に /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 を再起動して完了を待ちましょう。
USB メモリや外付けドライブなど、システム以外のドライブは、開いているウィンドウやアプリを閉じてから実行すると再起動なしで検査できます。使用中の場合は「このボリュームの強制的なマウント解除を行いますか (Y/N)?」のように確認されることがあり、Y を選ぶ(または最初から chkdsk D: /x と指定する)とドライブを取り外してから検査します。そのドライブを開いているファイルのハンドルは無効になるため、保存していない作業がないことを確認してから実行してください。
再起動時のチェックを取り消したい
予約してしまったチェックを取り消したいときは、次のコマンドでそのドライブを起動時チェックの対象から外します。
chkntfs /x C:
chkntfs /x で除外したドライブは、本当に問題があっても起動時に自動チェックされなくなります。元に戻すには chkntfs /d を実行して、既定の設定(起動時チェックの対象)に戻してください。
予約状況の確認は chkntfs C: で行えます。チェックが予約されていない場合は、ドライブが問題なしの状態であることを示す趣旨のメッセージが表示されます。再起動時に表示される「チェックをスキップするには何かキーを押してください」の画面で、キーを押して今回だけスキップすることもできます。
検査結果を後から確認する
再起動時のチェックは、完了後すぐにデスクトップが表示されるため、結果を見逃しがちです。結果はイベント ビューアーで確認できます。
eventvwr.mscを実行してイベント ビューアーを開く- 「Windows ログ」→「アプリケーション」を選ぶ
- ソースが 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 を指定していないため修復しなかった |
@echo off
chkdsk D:
if %errorlevel% equ 0 (
echo 問題は見つかりませんでした。
) else (
echo ディスクの確認が必要です。終了コード: %errorlevel%
)
pause
終了コードの扱いについては、
を参照してください。上のバッチファイルは echo に日本語を含むため、UTF-8 で保存するとコマンドプロンプトで文字化けすることがあります。Shift_JIS(ANSI)で保存するか、先頭付近に chcp 65001 >nul を追加してください。詳しくは
chkdsk を使う前に知っておきたいこと
- データのバックアップを先に取る: ディスクが物理的に壊れかけている場合、
/fや/rによる修復で状態が悪化することがあります。大切なデータがあるなら、先にコピーしておきましょう。 - 修復で消えるファイルがある: 破損したファイルは、修復の過程で
found.000のようなフォルダーに断片として保存されたり、削除されたりすることがあります。 - 繰り返しエラーが出る場合はハードウェアの故障を疑う: 修復しても同じエラーが何度も発生する場合は、ディスク自体の寿命が近い可能性があります。
- システムファイルの破損には sfc: Windows のシステムファイルが原因の不具合は、
chkdskではなく で調べます。
まとめ
| やりたいこと | コマンド |
|---|---|
| 修復せずに状態を確認する | chkdsk C: |
| エラーを修復する | chkdsk C: /f |
| 不良セクターも調べて修復する | chkdsk C: /r |
| 使用したままオンライン検査する | chkdsk C: /scan |
| 見つかった問題だけを修復する | chkdsk C: /spotfix |
| 予約した起動時チェックを取り消す | chkntfs /x C: |