| チェックディスク | |
|---|---|
Windows XPの起動時に CHKDSK を実行する | |
| 原作者 | ティム・パターソン |
| 開発者 | SCP、Microsoft、IBM、DR、Datalight、Novell、Toshiba、PhysTechSoft、ReactOS 貢献者 |
| 初回リリース | 1980 (1980年) |
| 書かれた | MS-DOS : x86アセンブリ言語FreeDOS、ReactOS : C |
| オペレーティング·システム | 86-DOS、MS-DOS、PC DOS、MSX-DOS、SISNE plus、OS/2、eComStation、ArcaOS、FlexOS、DR-DOS、ROM-DOS、4690 OS、PTS-DOS、Windows、FreeDOS、ReactOS |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | MS-DOS: MIT FreeDOS、ReactOS: GPLv2 |
| Webサイト | |
CHKDSK(「check disk」の略)は、ボリューム(通常はパーティション)上のファイルシステムのデータ整合性を検証し、論理エラーの修復を試みるシェルコマンドです。論理エラーとは、以前のソフトウェアの不具合(クラッシュなど)や不規則な使用(ハードリセットなど)の結果としてファイルシステム(またはそのメタデータ)に発生したソフトウェアレベルの問題です。論理エラーは、ハードウェアレベルのエラーとは対照的であり、通常はそれほど深刻ではありません。ハードウェアレベルのエラーは、では修復できず、専用のデータ復旧ソフトウェアやハードウェアの修理または交換が必要になる場合があります。コマンド名は「disk」の略語である「DSK」で終わりますが、ディスクベース以外のストレージメディアもサポートしています。 CHKDSK
このコマンドは、 DOS、 Windows、 FlexOS、[ 1 ] 4690 OS、[ 2 ] OS/2、[ 3 ] DR DOS 6.0、[ 4 ] FreeDOS で使用できます 。[ 5 ]
CHKDSKは、 Unixfsckの コマンドに似ており、 Windows 9xおよびMS-DOS 6.x で共存していたMicrosoft ScanDiskに似ています。CHKDSK
ディスクチェックツールの初期の亜種は、 DECのハードウェア診断機能の一部であり、1970年代初頭のTENEXとTOPS-20で動作していました。[ 6 ] [ 7 ]
このコマンドは1980年にティム・パターソンCHKDSKによって最初に書かれ、 86-DOSに含まれていました。[ 8 ]

CHKDSK.COMIBM PC DOS 1.0の (他のいくつかの COM ファイルとともに) 。このコマンドはMS-DOSバージョン1以降で利用可能です。[ 9 ]CHKDSKは外部コマンドとして実装されています。MS-DOSバージョン2.x - 4.xでは実行ファイルとして使用されます。MS-DOSバージョン5.x以降では実行ファイルとしてchkdsk.com使用されます。 [ 10 ]chkdsk.exe
CHKDSKメモリ使用量も表示できます。これは、MEM.EXEMS-DOS 4.0でメモリ使用量を表示するためにこのコマンドが導入される以前から使用されていました。DR DOSでは、パラメータによって/A出力がメモリ使用量のみに制限されていました。
CHKDSKMS-DOS 5.0には、UNDELETEデータ破損を引き起こすバグがあります。ディスクのファイルアロケーションテーブルがCHKDSK /F256セクタを使用している場合、実行するとデータが失われ、UNDELETE予期しない結果が生じる可能性があります。これは通常、容量が約128MBの倍数のディスクに発生します。これは1991年4月9日の日付のディスクに当てはまります。このバグはMS-DOS 5.0aで修正されましたCHKDSK.EXE。[ 11 ]UNDELETE.EXE

chkdskのコマンドCHKDSKPowerShellやコマンドプロンプトなどの一般的なコマンドラインインターフェースから実行することができ、回復コンソールでは特別なバージョンが利用可能です。[ 12 ]
Windows NTでは、不良セクタCHKDSKをマークすることもできます。MS -DOS 6.xおよびWindows 9xでは、 Microsoft ScanDiskによって実行されます。Windows Server版のはRAIDに対応しており、 RAID-1またはRAID-5アレイ内のディスクの不良セクタのデータを完全に復旧できます(アレイ内の他のディスクが損傷していない限り)。[ 13 ]CHKDSK
例えば、書き込み中の停電、ファイル名の長さ超過、ファイル名に無効な文字が含まれているなどの理由で破損していると判断されたファイルとディレクトリの断片は、パーティションのルートの下のディレクトリに移動され、それぞれfound.000とで始まる汎用の16進番号のファイルとディレクトリに名前が変更されfile00000000.chkますdir_00000000.chk。[ 14 ] [ 15 ]
Windows NTファミリーでは、標準CHKDSKスキャンはファイルメタデータのテストを3段階に分けたものです。エラーを探しますが、明示的に指示されない限り修正は行いません。サーフェススキャンも同様です。このテストは大容量ディスクや低性能ディスクでは非常に時間がかかる可能性があり、明示的に指示されない限り実行されません。CHKDSK修復を行うには、ボリュームへの排他書き込みアクセスが必要です。[ 16 ] [ 17 ]
ドライブへの独占アクセスが必要なため、CHKDSK通常のシステムモードではシステムディスクをチェックできません。代わりに、システムはディスクボリュームにダーティビットを設定し、コンピュータを再起動します。Windowsの起動時に、 SMSS.EXEによって特別なバージョンのCHKDSK(Autochkネイティブモードアプリケーション)が起動され、ファイルシステムをチェックし、ダーティビットが設定されている場合は修復を試みます。
CHKDSK排他的アクセスの必要性と操作に時間がかかる性質のため、 Windows Vistaでは新しいファイルシステムヘルスモデルが実装されました。このモデルでは、オペレーティングシステムがボリューム上のエラーを検出するとすぐに修正します。問題が深刻でフルスキャンが必要な場合は、アクションセンターがユーザーにできるだけ早くボリュームをオフラインにするよう通知します。[ 18 ]
Windows VistaおよびWindows Server 2008では、コマンドに加えて、デフォルトで有効になっている自己修復機能が追加されましたCHKDSK。この機能は、物理的なファイルシステムエラーを検出し、即座にサイレントに修復します。そのため、以前は実行時に発見されていた多くの問題が、CHKDSKその後は発生しなくなります。この機能はコマンドによって管理されますfsutil repair。[ 19 ] [ 20 ]
批判の対象となっているのは、AUTOCHKユーザーが明示的に要求していない場合でも、ファイルシステムを自動的に変更する傾向であり、ユーザーは事前にデータをバックアップする必要がある場合があります。特に、複数のオペレーティングシステムが同じパーティションに干渉して書き込む可能性があるマルチブートインストールでは、修復を試みるとファイルとディレクトリのパスが混乱したり、損なわれたり、破棄されたりする可能性があるためです。[ 21 ] [ 22 ] [ 23 ]
Windows 7のリリース前に、InfoWorld はでメモリリークの疑いがあると報じましたCHKDSK。この報告によると、chkdsk /rコマンドによりメモリ消費が最大に達し、システムがクラッシュするというものでした。InfoWorld の Randall C. Kennedy は、元の報告は「さまざまな Web ソース」によるものとし、自分のテストではメモリ消費が 90% を超えたもののクラッシュは経験していないと述べています。しかし、Kennedy はメモリ消費を Windows 7 のリリースを台無しにする重大なバグだと考え、Microsoft を非難しました。[ 24 ] Neowinの Tom Warren は、 Kennedy によるメモリリークの疑いの重要性の評価を否定しました。[ 25 ] Microsoft のSteven Sinofskyも、Microsoft はクラッシュを再現できなかったが、大量のメモリ消費はパフォーマンス向上のための設計によるもので、リークではないと反論しました。ZDNetのEd Bottも、独自のテストでこの主張を検討し、クラッシュは発生しないことを確認しました。ボット氏は、Windowsがオンラインの間は、設計上、システムドライブchkdsk /rでは動作しないことを指摘し、「これはバグではなく機能であると言える。この方法でシステムをクラッシュさせる可能性は非常に低く、完全に回避可能である」と結論付けた。[ 26 ]

chkdskのコマンドReactOSコマンドは、1998年にMark RussinovichがSysinternals向けに開発したフリーのクローンをベースにしています。 [ 27 ]これは1999年にEmanuele AlibertiによってReactOS向けに改良され、 FAT32ファイルシステム のボリュームをサポートしています。このコマンドはBtrfsファイルシステムのボリュームをサポートしていませんが、ReactOSはバージョン0.4.1以降でサポートしています。
Tenex 準拠.. ハードウェア保守手順.. Checkdsk エラーからの回復
CHKDSKUNDELETE