血統の森+はてな

旧はてなダイアリーの自動インポートによるアーカイブです。

WindowsXPでのチェックディスクの罠

微妙にid:momdo:20070610の続き。WinXpにおいて、cmd.exeからのchkdskでCドライブを検査するとエラーを吐く、つまり以下のような場合でのメッセージのお話。

C:\>chkdsk
ファイル システムの種類は NTFS です。
ボリューム ラベルは WinXp です。

警告: /F パラメータが指定されていません
CHKDSK を読み取り専用モードで実行します。

CHKDSK はファイルを検査しています (ステージ 1/3)...
ファイルの検査を完了しました。
CHKDSK はインデックスを検査しています (ステージ 2/3)...
インデックスの検査を完了しました。
CHKDSK はセキュリティ記述子を検査しています (ステージ 3/3)...
セキュリティ記述子の検査を完了しました。
CHKDSK は Usn ジャーナルを確認しています...
Usn ジャーナルの確認を完了しました。
CHKDSK はボリューム ビットマップに割り当て済みとしてマークされている空き領域を検
出しました。
ファイル システムに問題が見つかりました。
CHKDSK を /F オプションを使って実行して、問題を修正してください。

で、MSのナレッジベース曰く

ボリューム ビットマップとはディスク ボリューム上のクラスタの使用状況を記録する、"$bitmap" というシステム ファイルです。 アプリケーションの追加などにより新たなクラスタを割り当てた場合、またはファイルの削除によってクラスタを開放した場合、記録したボリューム ビットマップの状態と検査を行った時点でのボリューム ビットマップの状態を比べ、状態に差異が生じるとエラーを表示します。ディスク アクセスを完全に停止させることができない読み取り専用モードで chkdsk を行った場合には、修正は行われないため、chkdsk を行う度にエラーが表示されます。

とのこと。要するに、Cドライブ(システムディスク)は読み取り専用モードでしかチェックできないから、環境によっては必ずビットマップのエラーを吐き、異常でなくても異常と報告する仕様と。

そりゃ何回やってもエラーが出るわけね。。。orz