筆者はMacを使い始めて3年の初心者です。
Macにも大分慣れてきたある日の作業中、「ボリュームハッシュの不一致」という不可解なポップアップが出るようになりました。
何度か出ましたが、特に気にせず、邪魔だなぁ程度にしか思いませんでした。
何度目か出た際に、原因を簡単に調べましたが、その時はいまいちよく分かりませんでした。
ディスクが危ない的な情報は出てきましたが、正常性バイアスがガンガン効いていたので、あまり重要視していませんでした。
そもそもPCを使っているときは何かに集中している時で、筆者の場合は、PCを使っているという感覚すら怪しくなるぐらいに集中します。
集中している時は、なるべくPCの挙動や不具合等の低レベルの次元に時間を割きたくありません。
あっさりしたホップアップだったこともあり、×ボタンをクリックするだけで済ませていました。
今考えると、この行動が元凶の始まりでした。
本記事には、「ボリュームハッシュの不一致」が発生した方が、検索で来られていると思いますので、筆者と同じ目に遭わないよう注意喚起の目的で、初期の対応方法を記載しております。
目次
ほっといたら次々と悪いことが起きるように
「ボリュームハッシュの不一致」ホップアップの他、様々な悪いことが起きるようになりました。
OSアップデートが正常に完了しない
OSアップデートの通知が来たので、いつも通りアップデートボタンを押しましたが、何度やっても失敗しました。
作業中、突然のOS再起動
今まで、PCを使っていないときに再起動されていたことは何度かありましたが、遂に作業中、突然OS再起動されてしまいました。
これはたまらないと思い、ここでやっと重い腰を上げて本格的に直すことにしました。
ついにOS起動しなくなった
ディスクのFirstAidを実行するも直らず、仕方なく、Macのコミュニティサイトに書かれていた対処法を参考に、OS再インストールを実行しました。
しかし、この再インストールも失敗してしまい、OS起動しなくなりました。
この後、インターネット復旧を使って奮闘しますが、このあたりの話は別記事にします。
結局「ボリュームハッシュの不一致」とは何か
HDDやSSDなどのディスクには、ファイルシステムと呼ばれるデータ整理方式を使って、データが書き込まれます。
ディスクは、長時間使っていると不良セクタと呼ばれる部分的なハードウェア不具合が発生することがあります。
そういった状況に対応するため、ファイルシステムには、データの整合性をチェックする機構があります。
チェック機構を超簡単に説明すると、1、2、3、4というデータがあった場合に、全てを足した10というデータをディスクの別領域に保存しておきます。
この1、2、3、4、10のどこかに不良セクタが発生して壊れた場合に、1+2+3+4=10が成り立たなくなること(ボリュームハッシュの不一致の発生)でディスクの不具合に気づけるという仕組みです。
これをMacでは、あっさりしたホップアップで知らせるというわけですね…。
ディスクがおかしいと知らされたユーザにより、明示的にディスクチェック、修復機能の実行を行うことで、ファイルシステムは、不良セクタを使用できない領域としてマークします。この操作によりディスク修復が完了し、今まで通りPCを使用可能な状態にできます。
【反省点】ボリュームハッシュの不一致が出たら直ぐにすべきこと
このエラーが起きた際に、真っ先に実施すべきは、復旧モードでのターミナルを使ったディスクチェック、修復です。
と言われてもやり方わからないですよね。私もわかりませんでした。なぜか情報あまりないんですよね。
まず復旧モードに入る
復旧モードへの入り方は、MacのCPUの種類により異なります。
復旧モードへの入り方は、Apple公式よりも、こちらのサイトのほうが分かりやすくまとめられています。
※復旧モードには入れない場合は、SMCリセットとNVRAMリセットを行うとよいです。SMCリセットとNVRAMリセットの方法は、別サイトに譲ります。
ターミナルを使ったディスクチェック、修復
復旧モードにうまく入れた場合、下記のような画面が出ていると思います。
画面上部にメニューがありますので、「ユーティリティ(Utilities)」-「ターミナル(Terminal)」をクリックします。
ターミナルが表示されたら、下記コマンドでディスク一覧を表示します。
diskutil list
コマンドの実行結果で、Macに認識されているディスク一覧が表示されます。
次に、ディスク一覧の「IDENTIFIER」列に表示されたディスク名を上から順に、下記コマンドで検証していきます。
diskutil verifyDisk [IDENTIFIER]
それぞれのディスクで実行していき、実行結果の最後のほうに「File system check exit code is 0.」と記載があれば、ディスクは正常です。
exit codeがゼロでない場合、不整合がありますので、下記コマンドで修正していきます。
diskutil repairDisk [IDENTIFIER]
exit codeがゼロでないディスク全てが修正できれば、作業完了です。
筆者の場合はFirstAid(簡単なディスクチェック、修復機能)では、修復できませんでした。これは不良セクタが発生した領域によります。
このような場合に、ターミナルを使った修正が有効と考えています。
筆者の場合、復旧モードでのディスクチェック、修復を早期にやっていれば大事には至らなかったはずです。(反省点)
加えて、Macが元気なうちにリカバリディスクを作っておくべきでした。
ここで、注意事項をひとつ記載しておきます。筆者はMacのいちユーザであり、開発者ではありません。
もしこの対応で、ディスクに何も異常が検出されなかったり、ボリュームハッシュの不一致が改善しなければ、本記事が不完全である可能性を疑って下さい。
その場合は、他の記事を参考にしたり、Appleのサポートに助けを求めるなりすべきと思います。
まとめ
リカバリディスクを用意しておくことは、ベテランのMacユーザにとっては常識かもしれません。
「ボリュームハッシュの不一致」は、実にあっさりしたポップアップで通知されます。
本記事を読まれた貴方は、筆者のように、「大したことないだろう」といって放置することのないよう、お気をつけ下さい。
コメント