Macでスリープからの復帰時に問題が発生して再起動してしまう場合

macOS Catalinaにおいてサブで使用しているMacBook Pro 13 Mid 2019がかなりの確率でスリープからの復帰時に「問題が発生したため再起動しました」というクラッシュレポートが表示され、スリープ中あるいはスリープからの復帰の際にKernel Panicや予期せぬシステムのクラッシュが発生していると思われる現象に遭遇した。

ここではMacがスリープからの復帰時に再起動(システムクラッシュ・Kernel Panic)が発生する際の対処法をまとめる。

スリープ復帰時クラッシュの対処法

省エネルギー(バッテリー)設定を見直す

macOS Big Sur・バッテリー&電源アダプタ設定
macOS Catalina省エネルギー設定

まずシステム環境設定の「省エネルギー(バッテリー)」の項目で「バッテリー」「電源アダプタ」両方において「可能な場合はハードディスクをスリープさせる(Catalinaのみ)」、「電源アダプタに接続中にPower Napをオンにする(バッテリー電源使用時にPower Napをオンにする)」のチェックを両方とも外してオフにしてみよう。

ちなみにバッテリー駆動ではないMac miniやiMacなどのMacでは「バッテリー」や「電源アダプタ」などのはタブはない。

これらの設定をオフにするとスリープ中のメールのチェックやiCloudのアップデートが自動で行われなくなる弊害があるが、スリープ中のKernel Panicやクラッシュが解消される場合がある。

ターミナルコマンドでスタンバイをオフにする

省エネルギー設定を変更しても改善されない場合、ターミナルで下記のコマンドを実行して「スタンバイ」をオフにしてみよう。

sudo pmset -a standby 0

パスワードの入力を求められたら管理者パスワードを入力してエンターキーを押そう。

このコマンドによってMacのスタンバイが無効になるが、スリープ自体はきちんと動作する。

ただし、この設定を行うとMacのスリープが中途半端になってしまい、バッテリー使用時にスリープした際、Macがいわゆる「深い眠り」に入らず、バッテリー消費量が増える可能性がある点に注意。

なお、元に戻すには下記コマンドを実行する。

sudo pmset -a standby 1

電源設定関係をリセット

下記のコマンドを実行することでほぼ「SMCのリセット」と同様の効果が得られる。

sudo pmset -a restoredefaults

パスワードの入力を求められたら管理者パスワードを入力してエンターキー。

「Restored Default settings」という表示が出ればリセット成功。

これによりMacBookなどの省エネルギー設定など、電源関係の設定は全てデフォルトに戻り、問題が解決することがある。

SMCのリセット(Intel Macのみ)

スリープからの復帰時の問題はNVRAMというよりはSMCに問題があることが多いので、前述の「電源設定関係をリセット」のターミナルコマンドを実行して、更に下記の手順でSMCを完全にリセットする(Intel Macのみ)。

SMCのリセット手順

T2チップを搭載したノート型Macであれば下記の手順でSMCをリセットする。

  1. Macをシステム終了する。
  2. 内蔵キーボードで、以下のキーをすべて長押しする。場合によっては、Macの電源が入る。
    • キーボードの左側の「control 」キー
    • キーボードの左側の「option (Alt) 」キー
    • キーボードの右側の「shift 」キー
  3. 上記3つのすべてのキーを7秒間押し続け、電源ボタンも長押しする。Macの電源が入っている場合は、キーを押し続けている間に電源が切れる。
  4. 4つすべてのキーをさらに7秒押し続けてから、指を放す。
  5. 数秒待ってから、電源ボタンを押してMacの電源を入れる。

デスクトップコンピュータの場合は下記の手順でSMCをリセットする。

  1. Macをシステム終了し、電源コードを外ず。
  2. 15秒待ってから、電源コードを接続し直しす。
  3. 5秒待ってから、電源ボタンを押してMacの電源を入れる。

T2チップ非搭載のMacの場合は下記のAppleサポートページを参考にして頂きたい。

参考 Mac の SMC をリセットする方法Apple

ファームウェアをリセット

2台目のMacがあるのならばApple Configurator 2でDFUモードを使用してファームウェアをリセットするという手もある。

また、ファームウェアリセットだけならばユーザーデータは消えない。

DFUモードでのファームウェアリセットのやり方は複雑なので詳しくは下記記事にて(Intel Macの場合DFUモードに対応するのはT2チップ搭載Macのみ)。

MacをDFUモードで復活・復元する方法

電源アダプタ接続中のスリープの際に電源アダプタを外さない

もしMacBookシリーズなどを使用しているなら、電源アダプタ(USB-CやMagSafe)を接続してスリープ状態にあるMacBookの電源は外さないように注意しよう。

僕の環境では電源アダプタが接続された状態でスリープになっているMacBook Proから電源アダプタを外してスリープから復帰させると高確率でクラッシュが起きることを確認している。

この現象はmacOS Catalina以前では経験していないため、macOS Catalinaの不具合であると考えられる。

もし電源アダプタを外したい場合は電源アダプタを接続したままスリープから復帰させ、正常にMacがスリープから復帰したのを確認した後に電源アダプタを外すようにしよう。

M1 Mac miniでスリープ中のクラッシュの報告多数

管理人のM1 Mac miniでは経験していないが主にM1 Mac miniと一部ディスプレイとの組み合わせの際にスリープ中にクラッシュするという不具合が多数報告されている。

参考 M1 Mac Mini (8/256) crashing while sleepingMacRumors

M1 Macでスリープ中のクラッシュが発生している場合はmacOS Big Surのアップデートを待つしかないかもしれない。

まとめ

僕の場合は上記の省エネルギー設定の見直しとターミナルによる電源設定のリセット、及びSMCのリセットの3点を実行したところ、Kernel Panicなどのクラッシュは起きなくなった。

ただ、macOSのスリープ中のクラッシュは最近になってIntel MacでもM1 Macでも報告が多くなっているように感じるので根本的な解決にはmacOSのアップデートを待つしかないかもしれない。