前提
概ね問題無いという確認はしたものの、ここに書かれていることを試す場合は自己責任で
公式のリセット方法
NVRAM リセットについては
Mac の NVRAM をリセットする方法 - Apple サポート
のように書かれており、こちらでやるのが確実、かつ安全と思われる。
このページのターゲット
- 再インストールが怖くないぐらい心に余裕がある
- マシンが遠隔地にあるが、 NVRAM リセットしなければならなくて困っている
- コマンドがあるなら使う派
確認した環境
- MacBook Pro (Retina, 15-inch, Mid 2014)
- OSX 10.11.2
そもそも NVRAM とは
前述の Apple サポートのページから引用すると、
NVRAM には、次のような情報が記憶されます。
・スピーカーの音量
・画面解像度
・選択されている起動ディスク
・最近起きたカーネルパニックの情報 (存在する場合)
と、書かれている。
上記に関連する問題が起きた場合に、とりあえずリセットだよね?というもので、
Kernel Panic 遭遇時にリセットをしたことがある人もいるはず。
頻繁にやると覚えられるけど滅多にやらないので、あれ?何のキーを押しっぱなしで電源ONだっけ?
と、さきほどのページを見る所から始めることになり、意外と面倒だったりする。
nvram コマンドの使い方
存在を知らなかったが、なんとコマンドがあった...
これを覚えてしまえばわざわざブラウザを起動して検索して〜が不要になる。
さっそくターミナルから使い方を見てみる。
$ man nvram
Apple の Man Page はこちら
nvram(8) Mac OS X Manual Page
10.9 からあったのね、このコマンド...
EXAMPLES を見ると -s オプションで boot 時にどうするとか指定できるようなので、
そちらも重宝する人がいるのかもしれない。
なお、サクッと Usage を見たい場合は、存在しないオプションを指定すれば良いようなので、
$ nvram -h
nvram: (usage: no such option as -h)
nvram [-x] [-p] [-f filename] [-d name] [-c] name[=value] ...
-x use XML format for printing or reading variables
(must appear before -p or -f)
-p print all firmware variables
-f set firmware variables from a text file
-d delete the named variable
-c delete all variables
name=value set named variable
name print variable
Note that arguments and options are executed in order.
と、 -h でも指定しておけば出力される。
-h が将来的に割り当てられると危険かな?と不安を感じたなら --help でも可。
NVRAM の状態を確認する
-p オプション(XMLが良ければ -xp )付きで実行してみる。
$ nvram -p
BootCampProcessorPstates %0f%00
SystemAudioVolume %80
backlight-level %ac%04
bluetoothInternalControllerInfo %89%82%ac%05%00%003%14%80%e6P%16 %bb
prev-lang:kbd ja:0
SystemAudioVolumeDB %80
efi-apple-recovery <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>C0554C3A-51F0-4191-9618-2FC1D31C3282</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\MBP112_0138_B16_LOCKED.scap</string></dict></array>%00
efi-boot-device <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>XXXXXXXX-NNNN-XXXX-XXXX-XXXXXXXXXXXX</string></dict></dict><key>BLLastBSDName</key><string>disk0s3</string></dict></array>%00
fmm-computer-name mbp
ALS_Data %056
Test_ALS_Data %01%00
efi-boot-device-data %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%04%1c%01%01%06%00%00%00%03%12%0a%00%00%00%00%00%00%00%04%01*%00%03%00%00%008%04%25%1d%00%00%00%00 _%13%00%00%00%00%00%a4B%1b;I %c8O%aa{%db~%8csh%1c%02%02%7f%ff%04%00
bluetoothActiveControllerInfo %89%82%ac%05%01%00%00%003%14%80%e6P%16 %bb
UUID 、マシン名は伏せた(他は伏せなくて大丈夫?)が、似たような出力になるはず。
Apple サポートのページに書かれたように、スピーカーの音量や起動ディスクなどの情報が含まれるようだ。
漢リセット
漢なら全部リセット!な人向け。 -c オプションで全てリセットしてしまう。
$ nvram -c
実行しても出力は何も出ないが、再起動すれば反映される。
(再起動前後で -p で確認してみると良い)
再起動は Ctrl + Eject でメニューからするなり、そのまま sudo shutdown -r now
を実行するなりで。
狙い撃ちリセット
-d オプションで特定の項目のみをリセット。
ここでは、影響の少なそうなスピーカーの音量で説明する。
$ nvram -d SystemAudioVolume
これで、スピーカーの音量がリセットされる。
ここでも、やはり再起動が必要。
音量ゼロにしてる人は、再起動したらジャーンって鳴るはず。
備考
余談だが、書いてる本人は、 Kernel Panic 頻発に悩まされた時に NVRAM リセットしたが、
結局、OSクリーンインストールしなければ直らなかった...
NVRAM リセットは SMC リセットとセットでやることが多いと思うので、
そちらをコマンドで出来る方法をご存知なら是非コメントを!