0

MacでOS起動の際にアクセスするNVRAMでは一体何を管理しているのか?あまり意味も知らずにMacが起動しない時のトラブルシューティングのPRAMクリアをするのが、何がクリアされるのか心配な人に勇気と解像度を上げる 

mac

NVRAMは OS X 起動前に高速アクセスするRAM上のデータであり、
UNIXブートにおけるアーキテクトです。

その前に
NVRAMとは

PowerPCを搭載しいた頃のMacは、PRAMと呼ばれ、
Intelチップ(現行)を搭載したMacは、NVRAMと呼ばれているようです。
~ wikiより ~

anpan

NVRAMとかPRAMとか実態がブラックボックスですが、
Appleでシニアエンジニアをしている知り合いから聞いた情報によると、
「Intel ベースの Mac の NVRAM として知られる SMC のリセットでは、PRAM のコンテンツは リセットされないか、または変更されない」
とアップルサポートに記載あるとおり、
実は下記のような管理方式が採用されているそうです。

images-1

で、本題ですが、NVRAMのPRAMではどんなデータがのっているの?
と、気になるところかと思います。

実はものすごく簡単に確認できるので紹介します。

NVRAMコマンド
▼man nvram 抜粋

NAME
       nvram - manipulate firmware NVRAM variables

SYNOPSIS
       nvram [ -p ] [ -f filename ] [ -d name ] [ -c ] [ name [= value ]] ...

DESCRIPTION
       The nvram command allows manipulation of firmware NVRAM variables.  It can be used to get or set a variable.  It can also be used to print all of the vari-
       ables or set a list of variables from a file.  Changes to NVRAM variables are only saved by clean restart or shutdown.

       In principle, name can be any string.  In practice, not all strings will be accepted.  New World machines can create new variables as desired.  Some  vari-
       ables require administrator privilege to get or set.

       The  given  value  must  match the data type required for name.  Binary data can be set using the %xx notation, where xx is the hex value of the byte.  The
       type for new variables is always binary data.

OPTIONS
       -d name
              Deletes the named firmware variable.

       -f filename
              Set firmware variables from a text file.  The file must be a list of "name value" statements.  The first space on each line is taken to be the sepa-
              rator between "name" and "value".  If the last character of a line is \, the value extends to the next line.

       -x     Use XML format for reading and writing variables.  This option must be used before the -p or -f options, since arguments are processed in order.

       -c     Delete all of the firmware variables.

       -p     Print all of the firmware variables.

値の表示の他、値の設定、項目の削除や全削除ができます。

■NVRAMのPRAMにセットされているファームウェアパラメータを表示

$ nvram -p
boot-gamma %10%06%00%00%9e%9c%00%00%00%00%00%00%ce%00%00%00%00%00%00%00%0e%00%01%06%e7%02C%0e3%09%05%15%25%10%08#K!%0b,%f6*QG%99?W]%f8T\q%b6j%25%95%05%94%a9%a5%b1%a9%ed%b7%c7%be%b1%c4%a5%cb%f3%cd%a0%d2%fc%f3v%f3%0d%00%01%06%b7%02%c3%0d*%08E%14D%0e%08#%07%1f%0b,%0e(SO%a5?%97_%a9M]u`b%a5%97%0d%86r%cb^%c2%f6%d9%c1%d0%fa%e8%bf%e0%fd%f4/%ef%12%00%01%07%ed%02%04%10%ee%08%05%17)%0f%09$<%1cK,M#W^C?%19glE%9dufPb%89%9c`%aa%a9%b0}%b0%c0%eb%95s%cc%b5%a3;%ecF%cb%fc%f1+%d3%fd%f6%96%db%fe%f9^%e3%fe%fa%e4%e6%ff%fc%9d%ef
boot-args	-v
BootCampHD %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%00%0b%03%12%0a%00%00%00%00%00%00%00%7f%ff%04%00
bluetoothInternalControllerInfo	%13%82%ac%05%00%00%11%06%00&%08%bb]%b7
prev-lang:kbd	ja:0
SystemAudioVolumeDB	%80
fmm-computer-name	mbp
bluetoothActiveControllerInfo %13%82%ac%05%00%00%00%00%11%06%00&%08%bb]%b7
efi-boot-device	MemoryType0xbStartingAddress0xffcb4000IOEFIDevicePathTypeHardwareMemoryMappedEndingAddress0xffffbfffIOEFIDevicePathTypeMediaFirmwareVolumeFilePathGuid2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7IOEFIBootOptionHD%00
efi-boot-device-data %01%03%18%00%0b%00%00%00%00@%cb%ff%00%00%00%00%ff%bf%ff%ff%00%00%00%00%04%06%14%00%eb%85%05+%b8%d8%a9I%8b%8c%e2%1b%01%ae%f2%b7%7f%ff%04%00
SystemAudioVolume	%80
backlight-level	%b3%01

efi-***
EFIボリュームに存在するFirmwareの位置などの情報

boot-***
ブートに関連するパラメータ等ではないかと推測できます。
確かに私はverbose bootにしてます。

最後に、appleなので全てのパラメータをNVRAMで表示させない遊びゴコロがあるようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です