Comment afficher et effacer le contenu de NVRAM Mac à partir du terminal dans OS X

Les utilisateurs Mac avancés peuvent trouver nécessaire d'afficher ou de manipuler directement les variables de firmware trouvées dans la NVRAM sur l'ordinateur. Généralement, la NVRAM contient des données système spécifiques sur des éléments tels que le niveau audio du système, les détails du disque de démarrage, un nom d'utilisateur actif, le rétroéclairage et la résolution de l'écran et d'autres détails techniques. Bien que la plupart des utilisateurs n'interagissent pas avec la NVRAM, il arrive que l'affichage et la suppression manuelle des variables NVRAM soient utiles à des fins de dépannage.

Avec l'aide d'un outil de ligne de commande sous OS X, les utilisateurs Mac peuvent directement lire et ajuster le firmware sous OS X sans devoir redémarrer le Mac et effectuer une réinitialisation NVRAM générale.


Cela va probablement sans dire, mais en dehors de la liste du contenu nvram, les utilisateurs ne doivent absolument pas supprimer ou effacer les variables nvram s'ils ne savent pas exactement ce qu'ils font et pourquoi.

Pour commencer, lancez le Terminal, situé dans / Applications / Utilities / et exécutez les commandes suivantes, en fonction de l'objectif que vous souhaitez:

Comment afficher tout le contenu NVRAM sur le Mac actuel

Exécutez la commande suivante pour imprimer tous les contenus NVRAM actuels:

nvram -xp

Cela affichera la sortie au format XML, qui est beaucoup plus lisible que le format par défaut, qui est lu avec l'option -p:

nvram -p

Si vous ne spécifiez pas de drapeau -x, vous verrez probablement beaucoup de charabia, de XML, et peut-être un peu de texte mélangé qui est facilement lisible, mais pour la plupart, ces données ne seront pertinentes que pour les Macs avancés. utilisateurs à des fins de dépannage.

Un exemple de sortie de nvram -p peut ressembler à ceci:
$ 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

Encore une fois, ce seront des données sans signification pour la plupart des utilisateurs, mais les utilisateurs Mac avancés peuvent trouver des détails utiles dans la NVRAM s'ils savent ce qu'il faut rechercher.

Comment effacer toutes les NVRAM à partir de la ligne de commande dans Mac OS X

L'astuce suivante la plus utile consiste à pouvoir effacer la NVRAM avec la même chaîne de commande. Pour supprimer toutes les variables nvram, utilisez simplement la syntaxe suivante:

nvram -c

Pour que les changements prennent effet, vous devez redémarrer le Mac, donc à moins que vous ne fassiez quelque chose d'autre, vous pouvez simplement lancer un redémarrage à partir de la ligne de commande pendant que vous êtes là.

Suppression de variables NVRAM spécifiques sous Mac OS X

Pour être plus précis, vous pouvez également cibler une variable nvram à supprimer avec l'indicateur -d:

nvram -d (variable key name goes here)

Par exemple, pour effacer le paramètre audio du système de nvram:

nvram -d SystemAudioVolume

Aller plus loin avec les modifications nvram

La commande nvram a aussi d'autres utilisations pour les utilisateurs avancés, des paramètres tels que la désactivation du démarrage carillon sur un Mac, le démarrage en mode détaillé sous OS X ou même l'activation du mode de démarrage sécurisé depuis le terminal pour la gestion à distance ou sans clavier. Mac. Pour ceux qui souhaitent en savoir plus sur cette commande puissante, la page de manuel de nvram est très utile, tout comme l'indicateur -help de base pour afficher d'autres options de syntaxe:

% 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.

Que vous trouviez cela nécessaire ou facile dépend vraiment de votre niveau de compétence et de vos besoins. Beaucoup d'utilisateurs Mac avancés savent qu'ils peuvent également réinitialiser la PRAM / NVRAM au démarrage avec une séquence de touches, ce qui peut être utile pour résoudre certains problèmes particuliers, et cette approche supprime tout de NVRAM similaire à l'indicateur -c pendant un redémarrage réel, ce qui est peut-être plus facile à retenir pour de nombreux utilisateurs. Ceci est particulièrement utile pour travailler avec des machines distantes connectées via SSH ou trouvées ailleurs sur le réseau, où il serait impossible de réinitialiser manuellement la NVRAM avec une séquence de raccourcis clavier.

Un autre exemple courant où l'effacement de nvram peut être bénéfique à des fins de dépannage est lorsque le Mac App Store charge un affichage vide qui ne remplira pas de contenu ou de données de stockage. Pour une raison quelconque, le drapeau nvram -c et le redémarrage résout presque toujours ce problème seul.