---
name: "nvram"
section: "8"
platform: "macos"
package: "system_cmds"
version: "1042.120.1"
release: "macOS 26.5"
platforms: ["freebsd", "macos"]
url: "https://new.carta.tech/nvram"
---

# nvram(8)

manipulate firmware NVRAM variables

## NAME

**nvram** – manipulate firmware NVRAM variables

## SYNOPSIS

**nvram** \[**-x**\] \[**-p**\] \[**-f** *filename*\] \[**-d** *name*\] \[**-c**\] \[**-s**\] \[*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 variables or set a list of variables from a file.

Changes to NVRAM variables are automatically saved to storage, with the caveat that changes are buffered in memory if we performed a write in the last 15 minutes (to reduce NAND wear). Additionally, writes are saved to storage upon:

- A clean shutdown or restart

- A forced sync via **nvram** **-s**.

In principle, *name* can be any string. In practice, not all strings will be accepted. Some variables 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.

- **-r** *name*

  Deletes the named firmware variable and returns error code if any.

- **-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 separator 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.

## EXAMPLES

example% nvram boot-args="-s rd=\*hd:10"

Set the boot-args variable to "-s rd=\*hd:10". This would specify single user mode with the root device in hard drive partition 10.

example% nvram my-variable="String One%00String Two%00%00"

Create a new variable, my-variable, containing a list of two C-strings that is terminated by a NUL.

example% nvram -d my-variable

Deletes the variable named my-variable.
