ダーティビットは、Windowsのボリュームが正常に終了・処理されず、ファイルシステムに未完了の変更や整合性の問題がある可能性を示すフラグです。設定されると、再起動時にCHKDSKによるチェックが実行されることがあります。この記事では、ダーティビットの意味、確認方法、設定方法、解除方法を解説します。

ダーティビットとは?

「ダーティビット(Dirty Bit)」とは、データやファイルシステムが変更された状態などを示すフラグ(ビット)です。「Dirty」は英語で「汚れた」「正常な状態ではない」といった意味を持ち、「ダーティ」と読みます。

Windowsでは、ボリュームのファイルシステムが正常な状態ではない可能性を示すフラグとしてダーティビットが使用されます。たとえば、データの書き込みが完了する前にPCが強制終了した場合などに設定され、次回の起動時にWindowsがボリュームをチェックすることがあります。

なお、ダーティビットはメモリ管理でも使われますが、ここはWindowsのボリュームに設定されるダーティビットについて解説します。

ダーティビットが設定されるとどうなる?

ダーティビットが設定された状態でコンピュータを再起動すると、次のような流れになります。

  1. Windows の起動プロセス中、システムコンポーネントのautochkは、すべてのボリュームのダーティビットをチェックします。
  2. ダーティビットが設定されているボリュームが見つかった場合、autochkが自動的に CHKDSK を呼び出し、ファイルシステムの整合性をチェックして修復を試みます。
  3. チェック処理には数分から数十分かかる場合があります。任意のキーを押すことで一時的にスキップすることは可能ですが、ダーティビットがクリアされない限り、次回の起動時に再びこのチェックが実行されます。

ダーティビット自体は、ボリュームが破損していることを直接意味するわけではなく、あくまでファイルシステムに不整合が生じている可能性があることを示すマークです。しかし、この状態でドライブを使い続けると、不整合の問題が拡大し、ファイルの破損やアクセス不能につながる恐れがあるため、できるだけ早く対策を講じることをお勧めします。

ダーティビットが設定される主な原因

Microsoft公式のfsutil dirtyコマンドのリファレンスによると、ボリュームのダーティビットは主に次のようなケースで設定されます。

原因説明
突然の電源断・強制終了ファイルへの書き込み中に、変更がディスクへ確定(コミット)される前に電源が切れた
フリーズ・強制再起動システムがフリーズし、リセットボタンや電源長押しで強制的に再起動した
外付けドライブの不正な取り外し「ハードウェアを安全に取り外してメディアを取り出す」を行わずに、USBメモリや外付けHDD/SSDを抜いた
ディスクの物理的な不具合ハードディスクの経年劣化や不良セクタなどにより、ファイルシステムに不整合が生じた
未処理の変更が残っているボリュームがオンラインのまま、ディスクへの反映が完了していない変更が存在する(Microsoft公式の説明)
fsutilコマンドによる手動設定fsutil dirty set コマンドを実行し、意図的にダーティビットを立てた(次回起動時にCHKDSKを強制する目的など)

ダーティビットを確認する方法

Windows標準搭載のfsutilコマンドを使用すれば、対象のボリュームにダーティビットが設定されているかどうかを素早く確認できます。追加のソフトウェアをインストールしたり、他の機能を有効にしたりする必要はありません。

1. 検索ボックスに「cmd」と入力します。

2. 検索結果の「コマンドプロンプト」を右クリックし、「管理者として実行」をクリックします。

3. 以下のコマンドを入力してEnterキーを押します(「e:」を、確認したいドライブ文字に置き換えてください)。

fsutil dirty query e:

ボリュームがdirty状態であるかどうかに応じて、実行結果は以下のようになります。

ボリューム – e: は Dirty です
ボリューム – e: は Dirty ではありません

コマンドを入力して実行

注:
fsutilの構文は fsutil dirty {query | set} <ボリュームパス> です。管理者権限のコマンドプロンプトで実行する必要があります。

ダーティビットを設定する方法

状況によっては、意図的にダーティビットを設定したい場合があるかもしれません。たとえば、次回の起動時に CHKDSK を実行するようにしたい場合などです。その場合は、「fsutil dirty set」コマンドを使用してください。

fsutil dirty set e:

実行すると、システムは以下の内容を表示し、対象ボリュームのダーティビットを設定します。

ボリューム – e: は Dirty とマークされます

注:
fsutilはダーティビットの「query」と「set」のみをサポートしており、ダーティビットをクリアすることはできません。解除したい場合は、次章のCHKDSKなどの方法を使用してください。

ダーティビットを解除する方法

ダーティビットをクリアするには、3つの方法があります。データの安全性を確保した上で操作を行うため、記載された順序に従ってこれらの方法を試すことをお勧めします。

方法1:CHKDSKでダーティビットを解除する

最も一般的な方法は、Windows標準搭載のディスクチェックツールであるCHKDSKを使用することです。CHKDSKはファイルシステムを検証し、可能な範囲でエラーを修復した上で、ダーティビットを自動的にクリアします。

1. 管理者としてコマンドプロンプトを開きます。

2. 以下のいずれかのコマンドを実行します(「C:」を目的のドライブ文字に置き換えてください)。

  • chkdsk C: /scan  ドライブを使用したままオンラインスキャン(Windows 8以降)
  • chkdsk C: /f    エラーを検出して修復
  • chkdsk C: /f /r  不良セクタの検出・回復も行う(時間がかかる)

システムドライブ(C ドライブなど)に対して操作を実行する場合、そのボリュームは使用中であるため、その場ですぐには実行できないことがあります。システムから、次回の再起動時に実行するよう促すメッセージが表示されます。「Y」と入力してシステムを再起動すると、起動プロセス中にCHKDSKが実行されます。

提示:
「chkdsk /f」または「/r」を実行する時は、絶対に電源を切ったり、プロセスを強制終了したりしないでください。このプロセスを中断すると、ファイルシステムの不整合がさらに悪化する可能性があります。

方法2:その他の修復方法

コマンドラインの操作に慣れていない場合や、CHKDSKだけでは問題が解決しない場合は、以下の方法も有効かもしれません。

  • MiniTool Partition Wizardの「ファイルシステムのチェック」機能を使用する:GUI上でボリュームを右クリックし、コマンドを入力することなく、CHKDSKと同等のチェックおよび修復操作を実行できます。
  • システムファイルの破損が疑われる場合は、「sfc /scannow」および「DISM /Online /Cleanup-Image /RestoreHealth」などのコマンドを併用して、Windows システム自体の破損を修復します。
  • ディスクに不良セクタがある疑いがある場合は、CrystalDiskInfoなどのツールを使用してディスクの健全性(S.M.A.R.T. データ)を確認してください。ダーティビットが繰り返し出現したり、エラーが継続したりする場合は、ハードディスクの交換をお勧めします。

方法3:ドライブをフォーマットする(最終手段)

CHKDSKを何度も実行してもダーティビットが解消されない場合や、ファイルシステムの破損が深刻な場合は、ドライブのフォーマットが最後の手段となります。フォーマットを行うとドライブ上のすべてのデータが消去されますので、必ず事前にデータのバックアップを行ってください(バックアップ方法は次章で解説します)。

1. MiniTool Partition Wizard を起動し、メイン画面を表示します。

2. ディスクマップ領域で対象のパーティションを右クリックし、「フォーマット」を選択します。

3. 必要に応じて、パーティションのラベル、ファイルシステム、クラスタサイズを設定します(通常はデフォルト設定のままでも問題ありません)。

4. 「OK」をクリックし、続いて「適用」をクリックして操作を実行します。

MiniTool Partition Wizardの「パーティションフォーマット」でパーティションの設定を行う画面

フォーマットが完了したら、バックアップしておいたデータをドライブに書き戻します。

ダーティビットへの対処前にデータをバックアップしておこう

CHKDSK /r の実行やフォーマットなどの操作を行う際、ファイルの移動や削除が伴うことが多く、まれにデータ損失につながる可能性もあります。ドライブがダーティビットの状態になっている場合(通常、ファイルシステムが不安定な状態にあることを意味します)、上記の操作を行う前に、データのバックアップを強くお勧めします。

バックアップに関しては、MiniTool Partition Wizard の「ディスクコピー」機能を使用し、パーティション単位またはディスク全体でデータを別のドライブに素早くコピーすることができます。ドライブがダーティビット状態であっても、また大量のデータが含まれていても、コピー処理自体はダーティビットの影響を受けません。したがって、これは修復を試みる前にデータをバックアップするための有効な方法です。

MiniTool Partition Wizardで「ディスクコピー」をクリックする画面
注:
システムディスク上のデータをコピーする場合は、MiniTool Partition Wizard プロ版以上のエディションが必要です。各エディションの違いはMiniTool Partition Wizard のエディション比較表でご確認いただけます。

16進エディタでダーティビットを直接変更する方法(上級者向け)

注意:この方法はディスク上のデータを直接編集するため、操作ミスによってファイルシステムがさらに破損し、データが読み取れなくなるリスクがあります。操作を行う前に必ずデータのバックアップを取り、そのリスクは自己責任で確認してください。CHKDSK などの他の方法で問題が解決できない場合にのみ、最後の手段としてこの方法を検討してください。初心者の方には、前述の方法を優先して試すことを強くお勧めします。

ディスク編集に対応した16進エディタを使うと、ボリューム上のダーティビットの値を直接書き換えることもできます。ここでは、無料で使える16進エディタ WinHex を例に手順を紹介します。

1. WinHexの公式サイトにアクセスし、「Download」をクリックしてソフトウェアをダウンロードします。

「Download」ボタンをクリック

2. ダウンロードしたZIPファイルを解凍し、「winhex.exe」をダブルクリックしてWinHexを起動します。

WinHexの展開フォルダでwinhex.exeをクリックする画面

3. 「Tools」タブに移動し、「Open Disk」をクリックします。

「ディスクを開く」をクリック

4. 表示されたリストから対象の論理ボリュームを選択し、「OK」をクリックします(「List volumes without drive letters」にチェックを入れると、より多くのボリュームが表示されます)。

ドライブ文字を持たないボリュームをリストアップする

ここから先は、ファイルシステムの種類によって手順が異なります。

FAT32ボリュームの場合:

ダーティビットは通常オフセット 0x41 にあります。ボリュームがダーティな場合、この値は 01 になっています。値を 01 から 00 に変更し、変更を保存すると、ダーティビットが解除されます。

01を00に変更

NTFSボリュームの場合:

NTFSではダーティビットのオフセットがボリュームごとに異なり、固定されていません。「03 01」で始まり「80 00 00 18」で終わる13バイトの16進文字列を探すと、その3バイト目がダーティビットにあたります。値を 80 から 00 に変更してから保存すると、ダーティビットが解除されます。

03 01で始まり、80 00 00 18で終わる

ダーティビットに関するよくある質問

ダーティビットが設定されている=HDDやSSDが故障している?
必ずしもそうではありません。強制終了や未処理の変更などでもダーティビットは設定されます。ただし、繰り返しダーティ状態になる場合やCHKDSKでエラーが検出される場合は、ファイルシステムやストレージ自体の状態を確認することをおすすめします。
ダーティビットを解除するとデータは消えますか?
CHKDSKによる通常の修復(/f)でデータが消えることは基本的にありません。ただし、不良セクタの回復(/r)やフォーマットはデータに影響する可能性があるため、実行前にバックアップを取ることをおすすめします。
fsutilコマンドでダーティビットを解除できますか?
できません。fsutilは「照会(query)」と「設定(set)」のみに対応しており、解除にはCHKDSKなど他の方法が必要です。
外付けHDDやUSBメモリのダーティビットも同じ方法で対処できますか?
はい、内蔵ドライブと同様に fsutil や chkdsk、MiniTool Partition Wizardで確認・修復できます。取り外す際は「ハードウェアを安全に取り外してメディアを取り出す」を必ず行うと、ダーティビットの発生自体を減らせます。

まとめ

ダーティビットは、Windowsのボリュームに「未確定な変更や不整合の可能性がある」ことを示す状態フラグです。強制終了や不正な取り外し、ディスクの不具合などによって設定され、放置すると起動のたびにディスクチェックが走ったり、ファイル破損につながったりすることがあります。

まずは fsutil dirty query で状態を確認し、CHKDSK(chkdsk /f や /scan)で解除するのが基本の対処法です。それでも解決しない場合は、データをバックアップした上で、MiniTool Partition Wizardによるフォーマットや、上級者向けの16進エディタでの直接編集を検討してください。

この記事がお役に立てば幸いです。MiniToolについてご質問・ご意見がありましたら、お気軽に [email protected] までご連絡ください。

  • reddit