Comment visualiser et effacer le contenu de la NVRAM Mac à partir d'un terminal sous Mac OS X
Les utilisateurs avancés de Mac peuvent juger nécessaire de visualiser ou de manipuler directement les variables du micrologiciel se trouvant dans la NVRAM sur l'ordinateur. En général, la NVRAM contient des données spécifiques au système, comme 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'aient pas à interagir avec la NVRAM, il arrive que l'affichage et l'effacement manuels des variables de la NVRAM puissent être utiles pour le dépannage.
À l'aide d'un outil en ligne de commande dans Mac OS X, les utilisateurs de Mac peuvent directement lire et ajuster le micrologiciel dans Mac OS sans avoir à redémarrer le Mac et à effectuer une réinitialisation générale de la NVRAM.
Cela va sans doute de soi, mais en dehors de la liste des contenus du nvram, les utilisateurs ne doivent absolument pas supprimer ou effacer les variables du nvram s'ils ne savent pas exactement ce qu'ils font et pourquoi.
Pour commencer, lancez le Terminal, qui se trouve dans /Applications/Utilitaires/ et lancez les commandes suivantes, en fonction de l'objectif que vous souhaitez atteindre :
Comment visualiser tout le contenu de la NVRAM sur le Mac actuel
Lancez la commande suivante pour imprimer tout le contenu actuel de la NVRAM :
nvram -xp
Le résultat sera affiché au format XML, qui est beaucoup plus lisible que le format par défaut, qui est lu avec le drapeau -p :
nvram -p
Si vous ne spécifiez pas le drapeau -x, vous verrez probablement beaucoup de charabia, de XML et peut-être un peu de texte en clair mélangé qui est facilement lisible, mais pour la plupart, ces données ne seront pertinentes que pour les utilisateurs avancés de Mac à des fins de dépannage.
Un exemple de sortie nvram -p peut ressembler à ce qui suit :
$ nvram -p
efi-apple-payload- données %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
IOMatchIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOMatchIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOMatchIOMatchIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOProviderClassIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOMediaIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
IOPropertyMatchIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
UUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
UUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
UUIDUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
BD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
BD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00UUIDBD2CB9D3-8A79-4E2F-94E2- C5EC9FEBBA64BLLastBSDNamedisk0s3%00IOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
BLLastBSDNamedisk0s3%00
BLLastBSDNameBLLastBSDNamedisk0s3%00
disk0s3%00
disk0s3disk0s3%00IOMatchIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2- C5EC9FEBBA64BLLastBSDNamedisk0s3%00IOMatchIOProviderClassIOMediaIOPropertyMatchUUIDBD2CB9D3-8A79-4E2F-94E2-C5EC9FEBBA64BLLastBSDNamedisk0s3%00
%00
SystemAudioVolumeDB %00
prev-lang:kbd en:0
Là encore, ces données seront sans intérêt pour la plupart des utilisateurs, mais les utilisateurs avancés de Mac peuvent trouver des détails utiles dans la NVRAM s'ils savent ce qu'ils doivent chercher.
Comment effacer toutes les NVRAM de la ligne de commande sous Mac OS X
L'astuce suivante la plus utile est de pouvoir effacer la NVRAM avec la même chaîne de commande. Pour effacer toutes les variables nvram, il suffit d'utiliser la syntaxe suivante :
nvram -c
Pour que les changements prennent effet, vous devez redémarrer le Mac, donc à moins que vous ne fassiez autre chose, vous pouvez simplement lancer un redémarrage à partir de la ligne de commande pendant que vous êtes là.
Suppression de variables NVRAM spécifiques sur Mac OS X
Pour être plus précis, vous pouvez également cibler une variable nvram définie pour la suppression avec le drapeau -d :
nvram -d (nom de la clé de la variable va ici)
Par exemple, pour effacer le réglage audio du système à partir du nvram :
nvram -d SystemAudioVolume
Aller plus loin avec les modifications du nvram
La commande nvram a également d'autres usages pour les utilisateurs avancés, qu'il s'agisse de paramètres comme la désactivation du son du carillon de démarrage sur un Mac ou le fait de toujours démarrer en mode verbeux sous Mac OS X ou même l'activation du mode de démarrage sûr à partir du terminal pour la gestion à distance ou un Mac sans tête ni clavier. Pour ceux qui souhaitent en savoir plus sur cette puissante commande, la page de manuel du nvram est très utile, tout comme le drapeau -help de base qui permet d'afficher d'autres options syntaxiques :
% nvram --help
nvram : (usage : pas d'option telle que --)
nvram [-x] [-p] [-f nom du fichier] [-d nom] [-c] nom [=valeur] ...
-x utiliser le format XML pour l'impression ou la lecture des variables
(doit figurer avant -p ou -f)
-p imprimer toutes les variables du firmware
-f définir les variables du microprogramme à partir d'un fichier texte
-d supprimer la variable nommée
-c supprimer toutes les variables
name=ensemble de valeurs nommé variable
name print variable
Notez que les arguments et les options sont exécutés dans l'ordre.
Que vous trouviez cela nécessaire ou facile dépend vraiment de votre niveau de compétence et de vos besoins. De nombreux utilisateurs avancés de Mac savent qu'ils peuvent également réinitialiser la PRAM / NVRAM au démarrage avec une séquence de touches, ce qui peut également être utile pour résoudre certains problèmes particuliers, et cette approche supprime tout de la NVRAM comme le drapeau -c lors d'un redémarrage réel, ce qui est peut-être plus facile à retenir pour de nombreux utilisateurs. Cela est particulièrement utile pour travailler avec des machines distantes connectées par SSH ou se trouvant 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 du nvram peut être bénéfique à des fins de dépannage est lorsque le Mac App Store charge un écran vide qui ne contient aucun contenu ou ne stocke aucune donnée. Quelle qu'en soit la raison, le drapeau nvram -c et le redémarrage résolvent presque toujours ce problème à eux seuls.