CHKDSK

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

CHKDSK(チェックディスク、"check disk"の略語)はMS-DOSOS/2およびWindowsに付属するシステムユーティリティコマンド。ディスクボリュームのファイルシステム整合性をチェックし、論理ファイルシステムエラーを修復する機能を持つ。UNIXにおけるfsckコマンドに類似する。DOSではメモリの使用状況を出力する機能もあり、MS-DOS 4.0でMEMコマンドが追加されるまで、メモリの使用状況を確認する方法の一つであった。

Windows NT系では、CHKDSKはディスクの表面に不良セクタがあればそれをマークする機能も持っている。(MS-DOS 6.xやWindows 9x系では、スキャンディスクがこの機能を持つ。)Windows ServerのCHKDSKは、RAID1またはRAID5構成のディスクで不良セクタが見つかったとき、他のディスクが正常であればそこからデータを完全に修復する機能を持つ。[1]

CHKDSKはDOSプロンプトWindowsエクスプローラー、Windowsコマンドプロンプトまたは回復コンソールから実行することができる。[2]

概要[編集]

Windows NT系では、CHKDSKの標準スキャンにはファイルメタデータのテスト処理に3つのフェーズがある。もしエラーが見つかっても、明示的に修復するよう指定しない限り修復は行われない。表面スキャンでも同様である。このテストは大容量または低性能のディスクでは非常に時間が掛かり、明示的に指定されない限り行われない。CHKDSKは修復操作を行うために、ボリュームへの排他的書き込みアクセスを要求する。[3][4]

排他的書き込みアクセスを要求することに加え、CHKDSKの処理に時間が掛かるため、Windows Vistaではオペレーティングシステムがボリュームのエラーを検出した時にそれを修復するという新しいファイルシステム正常性モデルを実装している。問題が発生して完全スキャンの必要性が生じたとき、アクションセンター英語版がユーザーに都合の良いときにボリュームをオフラインにするように通知する。[5]

Windows VistaおよびWindows Server 2008ではCHKDSKコマンドに加えて自己回復機能が追加されており、標準で有効になっている。これは物理ファイルシステムエラーを検出して暗黙的に修復するものである。このように、多くの問題はCHKDSKの実行で表示されることはなく、それよりも前に発見される。自己回復機能はfsutil repairコマンドで管理できる。[6][7]

欠陥[編集]

MS-DOS 5 バグ[編集]

MS-DOS 5.0のCHKDSKとUNDELETEにはデータを破壊するバグがある。ディスクのFATで256セクタを使用している環境でCHKDSK /Fを実行するとデータを消失し、UNDELETEを実行すると予測不能な結果を引き起こす。通常、この問題は128MBの倍数の容量を持つディスクで発生する。これは1991年4月9日付のタイムスタンプCHKDSK.EXEUNDELETE.EXEに適用される。このバグはMS-DOS 5.0aでは修正されている。[8]

PC DOS J6.3/V USモードのバグ[編集]

PC DOS J6.3/Vでは、CHKDSKをUSモード(英語モード)で実行すると日本語文字のディレクトリ下にあるファイルやディレクトリが消去される場合がある。これを回避するため、バージョンJ6.30A/VのCSD(問題修正ディスケット)でUSモード用のCHKDSKUS.COMが追加された。[9]

Windows 7のバグ疑惑[編集]

Windows 7の正式リリース前、InfoWorld英語版はCHKDSKにメモリリークがあるという疑惑を報告した。この報告によると、chkdsk /rコマンドがメモリを最大まで消費してシステムをクラッシュさせる、とのこと。Infoworldのランドール・C・ケネディ (Randall C. Kennedy) は情報の出所を「様々なWeb情報源」とし、彼のテストでもメモリの消費が90%以上に達したものの、クラッシュまでには至らなかったとした。それにもかかわらず、ケネディはメモリの消費を重大なバグとみなして、Windows 7のリリース計画を狂わせるつもりだったのかマイクロソフトを冷笑的に非難した。[10]

Neowin英語版のトム・ウォーレン (Tom Warren) はケネディのメモリリーク疑惑の意見を却下した[11]。マイクロソフトのスティーブン・シノフスキー (Steven Sinofsky) は、マイクロソフトではクラッシュを再現できなかったことに加え、大量のメモリ消費はパフォーマンスを向上するための仕様上の動作でありメモリリークではないと回答した。ZDNetのエド・ボット (Ed Bott) はケネディによるテストでの指摘について、クラッシュは発生しないことを観測したとレビューした。chkdsk /rについて補足すると、設計上、Windowsのオンライン中ではシステムドライブには実行できないようになっている。ボットは「それは恐らくバグではなく機能であって、またこの方法でシステムがクラッシュすることは非常に稀であり完全に回避可能である。」と結論づけた。[12]

脚注[編集]

  1. ^ Holm, Dan; Thomas, Orin (2003). “11-3: Maintaining Disk Storage Volumes”. Managing and Maintaining a Microsoft Windows Server 2003 Environment. Microsoft Press. p. 11.25. ISBN 9780735614376. 
  2. ^ Description of the Windows XP Recovery Console for advanced users”. Microsoft (2013年7月11日). 2014年9月4日閲覧。
  3. ^ An explanation of the new /C and /I Switches that are available to use with Chkdsk.exe”. Microsoft (2004年12月1日). 2014年9月4日閲覧。
  4. ^ Troubleshooting Disks and File Systems”. Microsoft (2005年11月3日). 2014年9月4日閲覧。
  5. ^ Bangalore, Kiran (2012年5月10日). “Redesigning chkdsk and the new NTFS health model”. Microsoft. 2016年7月3日閲覧。
  6. ^ NTFS Self-Healing is An Overlooked but Useful Feature in Windows 7” (2014年8月4日). 2016年7月3日閲覧。
  7. ^ Self-healing NTFS in Windows Server 2008 and Windows Vista”. Microsoft (2008年2月13日). 2016年7月3日閲覧。
  8. ^ When Not to Use MS-DOS 5.0 CHKDSK and UNDELETE Commands”. Microsoft (2006年11月16日). 2016年7月3日閲覧。
  9. ^ PC DOS バージョン J6.30C/V 問題修正情報. 日本アイ・ビー・エム. (1995). 
  10. ^ Critical Windows 7 bug risks derailing product launch”. IDG (2009年8月5日). 2015年2月19日閲覧。
  11. ^ Windows 7 RTM contains a rather nasty chkdsk bug” (2009年8月5日). 2015年2月19日閲覧。
  12. ^ A killer Windows 7 bug? Sorry, no”. CBS Interactive (2009年8月5日). 2016年7月3日閲覧。

関連項目[編集]