カーネルパニックが頻発した話

久しぶりの投稿ですが。

実は、ここ2、3日、自分のMacカーネルパニックを頻発していて、運悪く毎回TimeMachineに5時間費やしていました。昨日とて、前回のカーネルパニックのせいで失った今日発表予定のプレゼンの資料を作っていたのですが、夜の7時半になってカーネルパニック発生、Macは起動しなくなってしまいました。
実際に起きていた症状としては、カーネルパニックが発生すると勝手にMacがリスタートし(ここまでは普通)、そこから起動するときの「くるくる」が回ると同時に、セーフブート時に出てくるようなプログレスバーみたいなものが、出てきますが、途中で消えてそのままMacの電源が落ちてしまいます。
幸いにも今回は、別の起動ディスクを使ってデータを回収することができたのですが、このようなことが頻発しては困るので、(すでにこの時プレゼン当日になっていましたが、)原因を究明することにしました。

今回の起動しなくなった直接の原因は、データの読み書き中にMacが強制終了したため、ハードディスク内の格納するデータの目次の部分と実際にデータが保存される場所の大きさが合わなくなって読めなくなったようです。その証拠に、起動しない状態の起動ディスクをディスクユーティリティにかけるとノード長が違うため修復できない旨が出てきます。
また、カーネルパニック自体はどうやって発生するかというと、カーネルと呼ばれるMacの基本ソフトウェアの根幹のソフトウェアが、他のソフトウェア(周辺機器のドライバやアプリなど)と競合してしまい、Mac自身が正常な状態に戻すことが出来ないと判断した時に、安全の為に強制的にリスタートすることを指します。これは、Macの基本ソフトウェアがきちんと動くための安全策なのですが、強制的にリスタートを行うため、その途中でデータの読み書きが行われていた場合は、その読み書きが完了せず、ハードディスク上には書き損じのまま不明のデータが残ってしまったり、目次の部分が間違ったっ状態のままになってしまう可能性があります。

ここ2、3日で何度もカーネルパニックが起きたと述べましたが、その中には正常に起動できた時がありました。普通はカーネルパニックが起きても起動できるはずなので、基本ソフトウェアがレポートを作ってその内容をAppleに送信しなさいと言ってきます。
その内容が確認できたので確認してみると、
「Possible memory corruption: pmap_pv_remove(......」
と表示されていました。これは、RAM(メモリー)がおかしいのではないかと考え、RAMに異常がないか調べる方法をネット上で探しました。すると、Apple Hardware Test(AHT)というプログラムを見つけました。
f:id:beatwave:20160315213324j:image
このAHTMacに標準で備わっているソフトウェアで、ハードウェアの異常を調べることができる画期的なツールのようです。2013年より新しい時期に買ったMacだと、名前と見た目が変わっててApple Diagnosticsというものになっているらしいです。

AHTMacを立ち上げる時にキーボードのDを押しながら起動するとAHTを起動することができるようです。Macを買った時にインストールディスクが付いてきたMacの場合は、それらを挿入した状態で、購入時にLion以降でインストールディスクがないMacはインターネット経由でAHTを起動せねばならないようです。因みに、インターネット経由で起動するときにはOpt+Dだそうです。

AHTを起動してみました。(起動まで時間がかかります。)
すごく時代錯誤感のあるUIが出てきました。そこで、テストを押してみると、ご名答、
「警告:Apple Hardware Testがエラーを検出しました。
4MEM/9/40000000: 0x82e....」
と表示されて、おそらくメモリが壊れているであろうことが分かりました。
f:id:beatwave:20160315213340j:image

Macbook Proにはメモリスロットが2つありますので、この時はどちらが壊れているのかわかりませんでしたが、AHTの「ハードウェアプロファイル」タブのメモリの詳細を表示させると、明らかに表示が不自然なものがありましたので犯人特定。換装したところエラーが出なかったので解決です!
f:id:beatwave:20160315213406j:image

今回異常があったメモリは増設したメモリだったため純正よりも新しいはずなのですが、さすが純正メモリの方が長持ちでしたね。マシン自体は6年目に突入しようとしていて、そろそろ替え時かなぁなんて思ってます。リカバリーの意味を込めて自宅にスティックPCを買ってVPNサーバーを立てているところだったので、そちらを早く完成させねばと改めて思いました。そちらの方も近々記事としてかければ・・・。