| [System Environment] | |||||||||||
システム起動時に強制的にchkdskを実行させる
|
|||||||||||
|
|||||||||||
| 解説 |
ファイル・システムが「ダーティ」とは?
Windows OSでは、システム起動時にディスクの状態を調べ、NTFSファイル・システムが「ダーティ」な状態であれば、各ドライブに対して自動的にchkdskコマンドを実行するようになっている。ダーティ(汚れている)とは、正常な方法以外でシステムがシャットダウンされたことを表す状態であり、例えば、システムの稼働中にいきなり電源が切断されたり、リセット・ボタンを押して強制的に再起動させたりした場合に起こる。また、システムに致命的なエラーが発生し、いわゆる「ブルー・スクリーン」状態で再起動したような場合も該当する。
あるディスク(ドライブ)がダーティかどうかは、NTFSボリュームの管理領域に記録された「ダーティ・フラグ(ダーティ・ビット)」で判断される。Windows OSは、システムが起動すると各ドライブのダーティ・ビットをセットし、シャットダウン時にそれをクリアする。つまり、正常にシャットダウンすれば(正規の手続きを踏んでシャットダウンすれば)、ダーティ・ビットはクリアされているはずである。だが障害などによってシステムが突然停止すると、起動時にはダーティ・ビットはセットされたままになる。
Windows OSはシステムの起動時にこのダーティ・ビットの状態を調査し、もしセットされていれば予期せぬシャットダウンが起こったと判断する。そしてファイル・システムの整合性を検査するためにchkdskを実行し、必要ならば修復や破損しているファイルのサルベージ(救出)を行う。
chkdsk /fによる強制的なディスクの検査
ファイル・システムの整合性の破たん(要するに壊れること)は、突然の電源断だけで起こるものではない。ディスクにエラーが生じた場合や、システムやディスクのバグなどによって引き起こされる可能性もある。そのため、定期的にchkdskを実行し、ファイル・システムが正常かどうかを確認するのがよい。といっても、一般的には毎日実行する必要はなく、例えばフルバックアップを取るときに、同時にchkdskも実行しておけばよいだろう。
強制的にchkdskを実行するには、コマンド・プロンプトを開き、「chkdsk c: /f」や「chkdsk d: /f」というコマンドを実行する。ここで「c:」や「d:」は、検査対象のドライブである。全ドライブに対してこのコマンドを実行すればよい。なお「/f」オプションを付けないと、検査でエラーが見つかっても、ディスクは修復されない(検査のみとなる)。
だがこのコマンドを実行しようとしても、現在使用中(オープン中)のファイルがあるドライブに対しては、実行できない。ファイルがオープン中だと、ディスク上の管理情報などが不完全な状態になっているからだ。
このような場合、Windows OSは、すべてのファイルを強制的にクローズして直ちにchkdskを実行するか、それとも次回の再起動時に行うかなどを選択することができる。ただし、システム・ドライブの場合は強制クローズはできず、再起動時の検査しか選択できない。
※システム・ドライブの場合 |
もしオープン中のファイルがなければ、chkdsk /fと入力すると、直ちにディスクの検査が始まる。だが場合によってはこれは望ましくないことがある。たまたまいまは誰も使っていないかもしれないが、すぐに使う予定があるような場合は、chkdskは後で実行したいだろう。特にファイル・サーバなどでは、ユーザーが誰も接続していない、メンテナンス時(フルバックアップの前後の時間)にまとめて実行できると便利である。だが、バックアップのときに手動で1台ずつchkdskコマンドを入力するのも面倒なので、可能ならば、chkdskの実行をあらかじめスケジュールしておきたい。
このような場合には、手動で各ドライブにダーティ・ビットをセットしておけばよい。こうすると、次回の再起動時(フルバックアップのときなど)に、自動的に各ドライブに対してchkdskが実行されるようになる。本TIPSでは、この方法について解説する。
| 操作方法 |
各ドライブの状態を強制的にダーティにするには、fsutil dirty setというコマンドを利用する。例えば、C:とD:の2つのドライブをダーティ状態にするには、次のようなコマンドを発行する(指定できるのはNTFSボリュームのみ。1度セットしたビットはクリアできない)。
C:\>fsutil dirty set c: …C:ドライブをダーティにセット |
ドライブがダーティかどうかを調べるには、fsutil dirty queryコマンドを実行する。
C:\>fsutil dirty query c: |
自動chkdskの確認
以上のようにセットしたあと、システムを再起動すると、ブート時にchkdskが実行される。デフォルトでは、10秒待ち、その間にキー入力(管理者のキャンセルの指示入力)がなければ、自動的にchkdskが実行される。ドライブの台数が多かったり、ディスク・サイズが大きい場合はいくらか時間がかかる。また、1度自動chkdskが動作すると、そのドライブのダーティ・ビットはクリアされるので、また自動chkdskさせたい場合は、その都度設定を行う必要がある。
なおこれはWindows OSが起動する前に実行される特別な処理であり、コンソール画面でしかその実行状態を確認することができない。例えば、リモート・デスクトップでログオンして、自動実行されるchkdskの進行状態を確認するといったことはできない。
その代わりというわけではないが、ブート時の自動chkdskの結果は、イベント・ログに出力されるようになっている。イベント・ビューア管理ツールを起動し、[アプリケーション]カテゴリを開くと、「WinLogon」というソースのイベントが記録されているのが分かるはずである。これを開くと、chkdsk実行の画面表示の内容(テキスト)がそのまま記録されている。システムの起動後、エラー(ファイル・システムの破損など)が起こっていなかったかどうか、よく確認していただきたい。もしエラーがあれば、例えばファイルがサルベージされたといった情報が記録されているので、適宜対処する必要がある。
なおTIPS「システム起動時の自動chkdskをスキップする」では、この自動chkdskをさせないようにする方法を紹介している。本TIPSでは、「ダーティ・ビットをセットする方法」について解説しているが、先のTIPSでは、「ダーティ・ビットを参照し、ダーティならばchkdskを起動する機能」をスキップさせる方法について説明している。![]()
| 関連記事(Windows Server Insider) | ||
| Windows TIPS:システム起動時の自動chkdskをスキップする | ||
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
TechTargetジャパン
- 秀丸スタートメニューで[スタート]ボタンを追加する (2013/5/24)
Windows 8では、[スタート]メニューがなく戸惑いを感じている人も多い。そこで[スタート]メニューを追加できる「秀丸スタートメニュー」を紹介する - LLMNRを使ったローカル・セグメント上での名前解決 (2013/5/23)
IPv6のアドレスは128bitもあり、そのままでは扱いづらい。FQDNによる表記からIPv6アドレスを求める名前解決について解説 - 第365話 盛るヒトビト (2013/5/21)
「盛る」。本来よりも増した自分を演出すること。増さないと生きていけないヒトビトによる、果てしない盛り合戦がいまここに - Win 7/8のインストールUSBメモリをdiskpartで作る (2013/5/20)
DVDドライブを搭載しないPCでも、インストール・イメージを格納したUSBメモリからOSのインストールが可能だ。OS標準のdiskpartコマンドによる作成手順を解説
|
|
- TwilioとRailsで作る、電話でテキスト読み上げアプリ
- Java SE 8、Java EE 7、Java Embeddedはどうなる?
- 「Scalr」を使ったAWS管理を試す
- Google I/OでモバイルアプリUXの条件を考えた
- 秀丸スタートメニューで[スタート]ボタンを追加する
- Chrome拡張機能にpush通知をしよう
- データ分析に必要な「道具」を揃える
- 複雑なデータをバインドするには?
- LLMNRを使ったローカル・セグメント上での名前解決
- 「演算子のインジェクション」と「SSJI」
- DNSを使ってネットワークデバイスにホスト名で接続
- 「ポジションが上がる=マネージャ業務」ではない
キャリアアップ
- - PR -
イベントカレンダー
- - PR -
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
「ITmedia マーケティング」新着記事
スマホ vs. タブレット、ユーザーの行動特性から考えるマーケティング戦略
これまで「PC対モバイルデバイス(スマートフォン/タブレット)」という図式で語られる...
リアルワールド、34万人のクラウドソーシングによるソーシャルリスニングサービスを開始
リアルワールドは5月23日、同社が提供する国内最大級のクラウドソーシングサービス「CROW...
Googleアナリティクスでテラバイト級のビッグデータ解析機能を提供――プレミアムユーザー限定
Google BigQueryは、2010年のGoogle I/Oで発表された、大量データセットの解析を実現する...


