ハードディスクは大丈夫? たまにはエラーチェックを実行・・・イヤイヤそれは違う。エラーチェックの基本
窓の杜の記事であるが、ちょっと気になってしまった。
まあ、Tipsなので惰性の記事ネタとしてメンテ機能の一部を紹介したのは分かるが、このエラーチェック機能は、よほどその仕組みを分かって運用している場合を除けば、たまに不定期でチェックするための機能では既にないのだが、筆者の人はご存じないのかそれとも、あくまでTipsだからなのか?ちょっと気になった。
<UI版ディスクチェックは闇雲にやるべからず>
一番やってはいけないのは、物理損傷の可能性があるディスクでバックアップもせずに不用意に、エラーチェックを実行することなのだから。これをやると、ディスクの内容は全てパーになることもある。特に、ECC/CRC巡回冗長エラーが出ているときにチェックを掛けると、そのボリュームは死ぬ可能性が高い。(データ修復業者に頼んでも回復率が下がる場合がある。)
だから、わざわざチェックを日頃の習慣にする必要などない。特に、Windows10ではエラー回復オプションがUI版からは選べないのだから、むやみに使わないことだ。そういう辺りをここで書いていきたい。
<ディスクチェックと基本回復は既に10年以上前に自動化されている現実>
正確に言おう。この機能が使われなくなった最大の理由は、OS側が自動でそれを行っているからだ。
現在のWindows Operating System(Vistaより後に出たWindowsデスクトップ製品群及び、Server 2008以降のサーバー製品群)には、Action Centerに統合された自動メンテナンス機能にディスクチェック機能が搭載されている。その名称は(fsutil repair)である。(機構は後述する)これが、利用頻度に合わせて数日サイクル~数ヶ月サイクルで、ディスクのエラーチェックを行っているのだ。そのため、回復が困難なエラーを除けば、何もしなくとも自動回復する。(大規模なエラーなら回復処理がキャンセルされる)
コントロールパネルのセキュリティとメンテナンスを見れば分かるが、自動メンテナンスはデフォルトではオンになっているため、それを設定しているなら意図的にチェックする必要はなく、通常の利用においては困ることはないだろう。
そして、この結果はイベントログ(Widnwosログ→システム)に記載される。起動方法は以下の通りだ。端的に言えばスタートメニューでEventvwrと入力してEnterを押せば良い。大文字小文字は区別されないので、スペルを間違えなければ起動する。Windows10ではスタートのコンテキストに起動ショートカットがあるので、どちらを使ってもよい。
他のエラーや情報もセットになっているため、ソース名でソートすれば見つかりやすい。頻繁に見るなら、右操作ペインにカスタムビューの作成という項目があるので、そちらでカスタムビューを作ると良いだろう。
エラーチェックのイベントIDは98である。記録される内容は、次のようになる。
ソース名:Ntfs (Microsoft-Windows-Ntfs)
イベントID:98
全般:ボリューム ボリューム D: (\Device\HarddiskVolume8) 正常です。必要な操作はありません。
として、記録される。論理ブロックにエラーがある場合は、エラー検知の結果が全般に記載される。
全般:フル Chkdsk を実行するために、オフラインにする必要があります。コマンド ラインで "CHKDSK /F" をローカルに実行するか、PowerShell で "REPAIR-VOLUME <ドライブ:>" をローカルまたはリモートで実行してください。
が、エラーの場合の表記である。この場合は、手作業での回復コマンドを求めているケースもある。ただし、実行前には大事なデータのバックアップを取ってから行うのが好ましい。
そのため、自分からわざわざエラーチェックをする必要はない。というか、あまりしない方がよい。
特にSSD系は、読み書きを増やせば、それだけ寿命を縮める可能性もある。SSDの場合はドライブメーカー毎に、各社のサイトから専用のツールも提供されているので、そういうものを任意でダウンロードして、そちらで寿命を見た方が安全である。
また、ハードウェアRAID1や5を設定している場合で、サーバー製品でない場合は、チェックディスクを使うよりRAIDユーティリティでチェックした方がよい。以下はIntel Rapid Storage Technologyの場合。
ちなみに、実ディスク損傷(CHKDSKでは改善しない恐れがあるエラー)がある場合は、次のメッセージがイベントログに記録される。たまたま、私のPCにはほとんど全部に近いエラーがあるので、載せておく。ちなみにこのディスクはお亡くなりになったものと、SDカードの差し込みに埃か何かが入っており、エラーになったものだ。(ソース名はDISK、diskの2つである。カスタムログを作るときにはエラー、警告、重大にチェックを入れて作ると良い。)
尚、論理ブロックエラーが出る場合は、SMARTの監視結果が注意や警告になっていることも多い。(以下はCrystalDiskInfo)
これが出るとシステムドライブの場合は突然死がやってくることもあるので、注意が必要だ。尚、SMARTがこの状態なのに、バックアップもせずにデフラグやチェックディスクをするとそのデータだけではなく、同じディスク上の他のデータが壊れることもある。特に衝突エラー、CRCエラーの場合は、下手をするとディスクデータが全滅する可能性もあるので、注意すべきだろう。
<ディスクチェックが持つ現在の役割は、回復のみ>
何故この機能が今も手作業で使えるように残っているのか?
それは、chkdsk /Fと/Rなどのオプションの方が強力なメンテナンスを実行できるからだ。これらの機能は元々何もディスクへの書き込みが発生していない状態であるオフラインメンテに準拠(オフライン専用から発展)しており、fsutil repairコマンドのオンラインメンテ(ディスクアクセスがあってもメンテナンスを順次行う)とは違う本当に純粋なディスク回復とチェック機能を持っているのだ。端的に言えば、指定したアドレスへの読み書きテストを行いその整合性をチェックして問題があれば、回復させるという手順だ。
即ち、高度なチェックと回復を求めるときには、厳格な処理が出来るため、回復出来る確率が上がる。
そのため、fsutil repairでは難しいエラーの回復にはこの機能が必要になるというわけだ。一方で、このチェック機能は強力故に、物理エラーが原因の場合は、破損を増やす原因になる。昔は、よくCHKDSKをするとハードディスクが壊れると揶揄されたがそれがこれである。他にも欠点がありchkdskのような厳格処理をすると恐ろしく時間が掛かり、他の作業中(常駐ソフトがある場合)だところころデータが変わっていく、データ内容が索引(インデックス、MFT/FAT)に登録されているデータ仕様と異なってしまうと、それがエラーになるため、実際にディスク不良でなくともエラーとしてピックアップされ修正を求められたり、不要な修正をしてくれることもある。
そこで、Windowsでは論理チェックの基本を、fsutil repairに任せた訳だ。これは、NTFSが持つMFTとジャーナルエントリーの判別に加えてchkdskの表層チェック要件を使って、修復かどうかを判断し、回復もそれに基づいてファイルをロックすることなく行われている。基本的にはこれだけで、ほとんどの論理エラーは改善する。ただし、CHKDSK /Fスイッチが必要なほど深刻なエラーは回復出来ない。まあ、できる限りCHKDSK(チェックディスク)を使わせないための配慮でもあるのだろう。
https://technet.microsoft.com/en-us/library/cc771388(WS.10).aspx
即ち、不具合が起きているときに手作業で回復する手段として、コマンドラインとGUIにこの機能を残しているだけだ。これは日頃使うためのものという訳ではない。もちろん、自動メンテナンスを個人的な理由で止めている場合は、これを使うことになるのだろうが、そういうことがなければ、わざわざチェックする必要はないのだ。
尚、ディスクチェックのコマンドプロンプト版とPowerShell版はGUI版とは異なり、空き領域のチェック機能まで備えているのが特徴である。詳細なチェック状況の確認と、回復状態を知りたい場合は、GUI版を使ってはいけない。特に、大規模な不良があると思われる場合は、コマンドプロンプト版を使わないと、リアルタイムのログステータスが見られないため、故障判断も難しいだろう。
ちなみに、コマンドプロンプトのコマンド名はスタートボタンを押してcmdと入力か、Windows10なら、スタートのコンテキスト(右クリック)にものがある。
一般的な回復コマンドは、
chkdsk ドライブ名(CドライブならC:) /f
である。
空きクラスタまでチェックするなら、
chkdsk ドライブ名(CドライブならC:) /f /r
でチェックできるが、Rは厳格な容量全てをチェックするので、数時間から数日かかる。
と、これだけ長々と書いたのは、私自身が仕事でいろいろ苦労した結果である。
確かに、機能を知っていることは大事だが、メンテナンス関連の機能は例えば、HDDにしてもスパニング構成だと、それ専用のツールの方がうまく管理してくれるケースも多い。SSDはそもそも読み書きや消去を、ホスト側でカウントしているため、下手にchkdsk /rなどのコマンドを定期的に掛けたら、ただ寿命を縮めるだけだ。
そういう部分を見極めて使わないと、実はやっていることがハードの寿命を縮めていたという結果もあり得る。そもそも、メンテ中の生産性を落とすことにもなるかも知れない。もちろん、たいていの人が使うPCは同じ機種を1台持っている程度だから、他と比べてどうかなどわかりはしないし、微々たる差かも知れない。しかし、複数を運用管理した経験からいえば、それも何度も使えば大きな差になることもあり得る訳だ。
悲しいことにこういう詳しい点は、国内ではあまり記事として書かれることがない、その結果、とりあえずあるんなら時には使ってみようかなと思う人が増える原因になる。特に玄人になりたい素人は、手を出しやすい。もし、玄人になりたいなら、Windowsの機能にこんなものがあるを知っておくのは大事だが、使うタイミングを誤ってはいけない。
修復系のメンテナンスじゃなければ、別にここまで書かなかっただろう。ただディスクは、メンテの中でも肝であり壊れると本当に困るのだ。過去にどんなに苦しんだか。やっと、その問題が減り始めた今、廃れた理由などが「ハードディスクやSSDの信頼性が向上した」ではなく、もうちょっと経緯を調べて自動メンテがあるので、普通は使わないものぐらいにして欲しかった。
別に、エラーチェックするインターフェースがあることを書くのは良いのだ。ただ、たまに使うものではなく、普段は使う必要がないと書いてくれた方がありがたい。
まあ、Tipsなので惰性の記事ネタとしてメンテ機能の一部を紹介したのは分かるが、このエラーチェック機能は、よほどその仕組みを分かって運用している場合を除けば、たまに不定期でチェックするための機能では既にないのだが、筆者の人はご存じないのかそれとも、あくまでTipsだからなのか?ちょっと気になった。
<UI版ディスクチェックは闇雲にやるべからず>
一番やってはいけないのは、物理損傷の可能性があるディスクでバックアップもせずに不用意に、エラーチェックを実行することなのだから。これをやると、ディスクの内容は全てパーになることもある。特に、ECC/CRC巡回冗長エラーが出ているときにチェックを掛けると、そのボリュームは死ぬ可能性が高い。(データ修復業者に頼んでも回復率が下がる場合がある。)
だから、わざわざチェックを日頃の習慣にする必要などない。特に、Windows10ではエラー回復オプションがUI版からは選べないのだから、むやみに使わないことだ。そういう辺りをここで書いていきたい。
<ディスクチェックと基本回復は既に10年以上前に自動化されている現実>
正確に言おう。この機能が使われなくなった最大の理由は、OS側が自動でそれを行っているからだ。
現在のWindows Operating System(Vistaより後に出たWindowsデスクトップ製品群及び、Server 2008以降のサーバー製品群)には、Action Centerに統合された自動メンテナンス機能にディスクチェック機能が搭載されている。その名称は(fsutil repair)である。(機構は後述する)これが、利用頻度に合わせて数日サイクル~数ヶ月サイクルで、ディスクのエラーチェックを行っているのだ。そのため、回復が困難なエラーを除けば、何もしなくとも自動回復する。(大規模なエラーなら回復処理がキャンセルされる)
コントロールパネルのセキュリティとメンテナンスを見れば分かるが、自動メンテナンスはデフォルトではオンになっているため、それを設定しているなら意図的にチェックする必要はなく、通常の利用においては困ることはないだろう。
そして、この結果はイベントログ(Widnwosログ→システム)に記載される。起動方法は以下の通りだ。端的に言えばスタートメニューでEventvwrと入力してEnterを押せば良い。大文字小文字は区別されないので、スペルを間違えなければ起動する。Windows10ではスタートのコンテキストに起動ショートカットがあるので、どちらを使ってもよい。
他のエラーや情報もセットになっているため、ソース名でソートすれば見つかりやすい。頻繁に見るなら、右操作ペインにカスタムビューの作成という項目があるので、そちらでカスタムビューを作ると良いだろう。
エラーチェックのイベントIDは98である。記録される内容は、次のようになる。
ソース名:Ntfs (Microsoft-Windows-Ntfs)
イベントID:98
全般:ボリューム ボリューム D: (\Device\HarddiskVolume8) 正常です。必要な操作はありません。
として、記録される。論理ブロックにエラーがある場合は、エラー検知の結果が全般に記載される。
全般:フル Chkdsk を実行するために、オフラインにする必要があります。コマンド ラインで "CHKDSK /F" をローカルに実行するか、PowerShell で "REPAIR-VOLUME <ドライブ:>" をローカルまたはリモートで実行してください。
が、エラーの場合の表記である。この場合は、手作業での回復コマンドを求めているケースもある。ただし、実行前には大事なデータのバックアップを取ってから行うのが好ましい。
そのため、自分からわざわざエラーチェックをする必要はない。というか、あまりしない方がよい。
特にSSD系は、読み書きを増やせば、それだけ寿命を縮める可能性もある。SSDの場合はドライブメーカー毎に、各社のサイトから専用のツールも提供されているので、そういうものを任意でダウンロードして、そちらで寿命を見た方が安全である。
また、ハードウェアRAID1や5を設定している場合で、サーバー製品でない場合は、チェックディスクを使うよりRAIDユーティリティでチェックした方がよい。以下はIntel Rapid Storage Technologyの場合。
ちなみに、実ディスク損傷(CHKDSKでは改善しない恐れがあるエラー)がある場合は、次のメッセージがイベントログに記録される。たまたま、私のPCにはほとんど全部に近いエラーがあるので、載せておく。ちなみにこのディスクはお亡くなりになったものと、SDカードの差し込みに埃か何かが入っており、エラーになったものだ。(ソース名はDISK、diskの2つである。カスタムログを作るときにはエラー、警告、重大にチェックを入れて作ると良い。)
尚、論理ブロックエラーが出る場合は、SMARTの監視結果が注意や警告になっていることも多い。(以下はCrystalDiskInfo)
これが出るとシステムドライブの場合は突然死がやってくることもあるので、注意が必要だ。尚、SMARTがこの状態なのに、バックアップもせずにデフラグやチェックディスクをするとそのデータだけではなく、同じディスク上の他のデータが壊れることもある。特に衝突エラー、CRCエラーの場合は、下手をするとディスクデータが全滅する可能性もあるので、注意すべきだろう。
<ディスクチェックが持つ現在の役割は、回復のみ>
何故この機能が今も手作業で使えるように残っているのか?
それは、chkdsk /Fと/Rなどのオプションの方が強力なメンテナンスを実行できるからだ。これらの機能は元々何もディスクへの書き込みが発生していない状態であるオフラインメンテに準拠(オフライン専用から発展)しており、fsutil repairコマンドのオンラインメンテ(ディスクアクセスがあってもメンテナンスを順次行う)とは違う本当に純粋なディスク回復とチェック機能を持っているのだ。端的に言えば、指定したアドレスへの読み書きテストを行いその整合性をチェックして問題があれば、回復させるという手順だ。
即ち、高度なチェックと回復を求めるときには、厳格な処理が出来るため、回復出来る確率が上がる。
そのため、fsutil repairでは難しいエラーの回復にはこの機能が必要になるというわけだ。一方で、このチェック機能は強力故に、物理エラーが原因の場合は、破損を増やす原因になる。昔は、よくCHKDSKをするとハードディスクが壊れると揶揄されたがそれがこれである。他にも欠点がありchkdskのような厳格処理をすると恐ろしく時間が掛かり、他の作業中(常駐ソフトがある場合)だところころデータが変わっていく、データ内容が索引(インデックス、MFT/FAT)に登録されているデータ仕様と異なってしまうと、それがエラーになるため、実際にディスク不良でなくともエラーとしてピックアップされ修正を求められたり、不要な修正をしてくれることもある。
そこで、Windowsでは論理チェックの基本を、fsutil repairに任せた訳だ。これは、NTFSが持つMFTとジャーナルエントリーの判別に加えてchkdskの表層チェック要件を使って、修復かどうかを判断し、回復もそれに基づいてファイルをロックすることなく行われている。基本的にはこれだけで、ほとんどの論理エラーは改善する。ただし、CHKDSK /Fスイッチが必要なほど深刻なエラーは回復出来ない。まあ、できる限りCHKDSK(チェックディスク)を使わせないための配慮でもあるのだろう。
https://technet.microsoft.com/en-us/library/cc771388(WS.10).aspx
即ち、不具合が起きているときに手作業で回復する手段として、コマンドラインとGUIにこの機能を残しているだけだ。これは日頃使うためのものという訳ではない。もちろん、自動メンテナンスを個人的な理由で止めている場合は、これを使うことになるのだろうが、そういうことがなければ、わざわざチェックする必要はないのだ。
尚、ディスクチェックのコマンドプロンプト版とPowerShell版はGUI版とは異なり、空き領域のチェック機能まで備えているのが特徴である。詳細なチェック状況の確認と、回復状態を知りたい場合は、GUI版を使ってはいけない。特に、大規模な不良があると思われる場合は、コマンドプロンプト版を使わないと、リアルタイムのログステータスが見られないため、故障判断も難しいだろう。
ちなみに、コマンドプロンプトのコマンド名はスタートボタンを押してcmdと入力か、Windows10なら、スタートのコンテキスト(右クリック)にものがある。
一般的な回復コマンドは、
chkdsk ドライブ名(CドライブならC:) /f
である。
空きクラスタまでチェックするなら、
chkdsk ドライブ名(CドライブならC:) /f /r
でチェックできるが、Rは厳格な容量全てをチェックするので、数時間から数日かかる。
と、これだけ長々と書いたのは、私自身が仕事でいろいろ苦労した結果である。
確かに、機能を知っていることは大事だが、メンテナンス関連の機能は例えば、HDDにしてもスパニング構成だと、それ専用のツールの方がうまく管理してくれるケースも多い。SSDはそもそも読み書きや消去を、ホスト側でカウントしているため、下手にchkdsk /rなどのコマンドを定期的に掛けたら、ただ寿命を縮めるだけだ。
そういう部分を見極めて使わないと、実はやっていることがハードの寿命を縮めていたという結果もあり得る。そもそも、メンテ中の生産性を落とすことにもなるかも知れない。もちろん、たいていの人が使うPCは同じ機種を1台持っている程度だから、他と比べてどうかなどわかりはしないし、微々たる差かも知れない。しかし、複数を運用管理した経験からいえば、それも何度も使えば大きな差になることもあり得る訳だ。
悲しいことにこういう詳しい点は、国内ではあまり記事として書かれることがない、その結果、とりあえずあるんなら時には使ってみようかなと思う人が増える原因になる。特に玄人になりたい素人は、手を出しやすい。もし、玄人になりたいなら、Windowsの機能にこんなものがあるを知っておくのは大事だが、使うタイミングを誤ってはいけない。
修復系のメンテナンスじゃなければ、別にここまで書かなかっただろう。ただディスクは、メンテの中でも肝であり壊れると本当に困るのだ。過去にどんなに苦しんだか。やっと、その問題が減り始めた今、廃れた理由などが「ハードディスクやSSDの信頼性が向上した」ではなく、もうちょっと経緯を調べて自動メンテがあるので、普通は使わないものぐらいにして欲しかった。
別に、エラーチェックするインターフェースがあることを書くのは良いのだ。ただ、たまに使うものではなく、普段は使う必要がないと書いてくれた方がありがたい。
Microsoft Windows 10 Home Anniversary Update適用版 32bit/64bit 日本語版 (最新)|
マイクロソフト
2016-10-07

Amazonアソシエイト by
マイクロソフト
2016-10-07

Amazonアソシエイト by

【大特価 台数限定】(CPU Kabylake カービーレイク)intel Core i7-7700K
アプライド楽天市場店
■ スペック・ プロセッサ名 : Core i7 7700K , (Kaby Lake-S)・ クロ

楽天市場 by
アプライド楽天市場店
■ スペック・ プロセッサ名 : Core i7 7700K , (Kaby Lake-S)・ クロ

楽天市場 by

この記事へのコメント