Come visualizzare e cancellare i contenuti NVRAM Mac dal terminale in OS X

Gli utenti Mac esperti potrebbero ritenere necessario visualizzare o manipolare direttamente le variabili firmware rilevate nella NVRAM sul computer. In genere la NVRAM contiene dati di sistema specifici su cose come il livello audio del sistema, i dettagli del disco di avvio, un nome utente attivo, retroilluminazione dello schermo e risoluzione e altri dettagli tecnici. Mentre la maggior parte degli utenti non ha attività commerciali che interagiscono con NVRAM, ci sono dei momenti in cui la visualizzazione manuale e l'eliminazione delle variabili NVRAM possono essere utili per la risoluzione dei problemi.

Con l'aiuto di uno strumento da riga di comando in OS X, gli utenti Mac possono leggere e regolare direttamente il firmware in OS X senza dover riavviare il Mac ed eseguire un reset generale della NVRAM.


Questo probabilmente è ovvio, ma a parte elencare i contenuti di nvram, gli utenti non dovrebbero assolutamente cancellare o cancellare le variabili di nvram se non sanno esattamente cosa stanno facendo e perché.

Per iniziare, avvia il Terminale, trovato in / Applicazioni / Utility / e invia i seguenti comandi, in base all'obiettivo che desideri:

Come visualizzare tutti i contenuti NVRAM sul Mac corrente

Emettere il seguente comando per stampare tutti i contenuti correnti della NVRAM:

nvram -xp

Questo mostrerà l'output in formato XML, che è molto più leggibile rispetto al formato predefinito, che viene letto con l'opzione -p:

nvram -p

Se non specifichi -x flag, probabilmente vedrai un sacco di termini incomprensibili, XML, e forse un testo semplice mescolato in che è facilmente leggibile, ma per la maggior parte questi dati saranno rilevanti per il Mac avanzato utenti per la risoluzione dei problemi.

Un esempio di output di nvram -p potrebbe essere simile al seguente:
$ nvram -p
efi-apple-payload-data %20%10%00%CC%00U%00P%00D%00A%20%10%00%CC%00U%00P%00D%00A%20%10%00%CC%00U%00P%00D%00A%20%00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A00U%00P%00D%00A
efi-boot-device IOMatchIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
SystemAudioVolumeDB %00
prev-lang:kbd en:0

Di nuovo, questo sarà un dato privo di significato per la maggior parte degli utenti, ma gli utenti Mac avanzati possono trovare utili dettagli nella NVRAM se sanno cosa cercare.

Come cancellare tutta la NVRAM dalla riga di comando in Mac OS X.

Il trucco successivo più utile è quello di essere in grado di cancellare NVRAM con la stessa stringa di comando. Per cancellare tutte le variabili di nvram basta usare la seguente sintassi:

nvram -c

Affinché le modifiche abbiano effetto, è necessario riavviare il Mac, quindi, a meno che tu non stia facendo qualcos'altro, potresti voler avviare un riavvio dalla riga di comando mentre sei lì.

Eliminazione di specifiche variabili NVRAM su Mac OS X.

Per essere più specifici, puoi anche scegliere come target una variabile nvram per la rimozione con il flag -d:

nvram -d (variable key name goes here)

Ad esempio, per cancellare le impostazioni audio del sistema da nvram:

nvram -d SystemAudioVolume

Andando oltre con le modifiche di nvram

Il comando nvram ha altri usi anche per utenti esperti, da impostazioni come disabilitare il suono di avvio all'avvio su un Mac per avviarlo sempre in modalità dettagliata in OS X o anche abilitare la modalità di avvio sicura dal terminale per la gestione remota o senza headless / senza tastiera Mac. Per coloro che sono interessati a saperne di più su questo potente comando, la pagina man di nvram è molto utile, così come il flag di base per visualizzare altre opzioni di sintassi:

% nvram --help
nvram: (usage: no such option as --)
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.

Che tu trovi o meno ciò che è necessario o facile dipende dal tuo livello di abilità e dai tuoi bisogni. Molti utenti Mac esperti sanno che possono anche resettare la PRAM / NVRAM all'avvio con una sequenza di tasti, che può essere utile anche nella risoluzione di alcuni problemi particolari, e tale approccio rimuove qualsiasi cosa dalla NVRAM simile al flag -c durante un vero e proprio riavvio, che è forse più facile da ricordare per molti utenti. Ciò è particolarmente utile per lavorare con macchine remote collegate tramite SSH o trovate altrove sulla rete, dove sarebbe impossibile reimpostare manualmente NVRAM con una sequenza di tasti di scelta rapida da tastiera.

Un altro esempio comune in cui la cancellazione di nvram può essere utile per la risoluzione dei problemi è quando il Mac App Store carica una visualizzazione vuota che non popolerà con alcun contenuto o dati del negozio. Per qualsiasi motivo, il flag nvram -c e il riavvio risolvono quasi sempre solo questo problema.