Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NVME-FORMAT(1)			   NVMe Manual			  NVME-FORMAT(1)

NAME
     nvme-format - Format an NVMe device

SYNOPSIS
     nvme format <device> [--namespace-id=<nsid> | -n <nsid>]
			     [--lbaf=<lbaf> | -l <lbaf>]
			     [--block-size=<block size | -b <block size>]
			     [--ses=<ses> | -s <ses>] [--pil=<pil> | -p <pil>]
			     [--pi=<pi> | -i <pi>] [--ms=<ms> | -m <ms>]
			     [--reset | -r] [--force]
			     [--timeout=<timeout> | -t <timeout>]
			     [--output-format=<fmt> | -o <fmt>] [--verbose | -v]

DESCRIPTION
     For  the NVMe device given, send an nvme Format Namespace admin command and
     provides the results.

     The <device> parameter is mandatory and may be either  the  NVMe  character
     device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). If
     the  character device is given, and the controller does not support format-
     ting of particular namespaces (ID_CTRL.FNA bit 0 enabled), then  all  name-
     spaces will be formatted. If FNA is disabled, then the namespace identifier
     must  be  specified  with	the  namespace-id  option;  specify  a	value of
     0xffffffff to send the format to all namespaces. If  the  block  device  is
     given,  the  namespace  identifier  will default to the namespace ID of the
     block device given, but can be overridden with the same option.

     Note, the numeric suffix on the character device,	for  example  the  0  in
     /dev/nvme0,  does	NOT indicate this device handle is the parent controller
     of any namespaces with the same suffix. The namespace handle's numeral  may
     be  coming  from the subsystem identifier, which is independent of the con-
     troller's identifier. Do not  assume  any	particular  device  relationship
     based on their names. If you do, you may irrevocably erase data on an unin-
     tended device.

     On  success,  the program will automatically issue BLKRRPART ioctl to force
     rescanning the namespaces. If the driver is recent enough, this will  auto-
     matically	update	the physical block size. If it is not recent enough, you
     will need to remove and rescan your device some other way for the new block
     size to be visible, if the size was changed with this command.

OPTIONS
     -n <nsid>, --namespace-id=<nsid>
	 Send the format command for the specified nsid. This  can  be	used  to
	 override the default value for either character device (unspecified) or
	 the block device (result from NVME_IOCTL_ID).

     -l <lbaf>, --lbaf=<lbaf>
	 LBA Format: This field specifies the LBA format to apply to the NVM me-
	 dia.  This  corresponds  to  the  LBA formats indicated in the Identify
	 Namespace command. Conflicts with --block-size argument. Defaults to 0.

     -b <block size>, --block-size=<block size>
	 Block Size: This field is used to specify the target block size to for-
	 mat to. Potential lbaf values will be scanned and the	lowest	numbered
	 will  be selected for the format operation. Conflicts with --lbaf argu-
	 ment.

     -s <ses>, --ses=<ses>
	 Secure Erase Settings: This field  specifies  whether	a  secure  erase
	 should  be  performed	as part of the format and the type of the secure
	 erase operation. The erase applies to all user data, regardless of  lo-
	 cation (e.g., within an exposed LBA, within a cache, within deallocated
	 LBAs, etc). Defaults to 0.
	 +-------+-----------------------------+
	 | Value | Definition		       |
	 +-------+-----------------------------+
	 | 0	 | No  secure  erase operation |
	 |	 | requested		       |
	 +-------+-----------------------------+
	 | 1	 | User Data Erase:  All  user |
	 |	 | data  shall be erased, con- |
	 |	 | tents of the user data  af- |
	 |	 | ter the erase is indetermi- |
	 |	 | nate  (e.g.,  the user data |
	 |	 | may	be  zero  filled,  one |
	 |	 | filled,   etc).   The  con- |
	 |	 | troller may perform a cryp- |
	 |	 | tographic erase when a User |
	 |	 | Data Erase is requested  if |
	 |	 | all user data is encrypted. |
	 +-------+-----------------------------+
	 | 2	 | Cryptographic   Erase:  All |
	 |	 | user data shall  be	erased |
	 |	 | cryptographically.  This is |
	 |	 | accomplished  by   deleting |
	 |	 | the encryption key.	       |
	 +-------+-----------------------------+
	 | 3-7	 | Reserved		       |
	 +-------+-----------------------------+

     -p <pil>, --pil=<pil>
	 Protection  Information Location: If set to `1' and protection informa-
	 tion is enabled, then protection  information	is  transferred  as  the
	 first	bytes  of metadata. If cleared to `0' and protection information
	 is enabled, then protection information  is  transferred  as  the  last
	 bytes of metadata. Defaults to 0.

     -i <pi>, --pi=<pi>
	 Protection  Information:  This  field specifies whether end-to-end data
	 protection is enabled and the type of protection information.	Defaults
	 to 0.
	 +-------+-----------------------------+
	 | Value | Definition		       |
	 +-------+-----------------------------+
	 | 0	 | Protection  information  is |
	 |	 | not enabled		       |
	 +-------+-----------------------------+
	 | 1	 | Protection  information  is |
	 |	 | enabled, Type 1	       |
	 +-------+-----------------------------+
	 | 2	 | Protection  information  is |
	 |	 | enabled, Type 2	       |
	 +-------+-----------------------------+
	 | 3	 | Protection  information  is |
	 |	 | enabled, Type 3	       |
	 +-------+-----------------------------+
	 | 4-7	 | Reserved		       |
	 +-------+-----------------------------+

     -m <ms>, --ms=<ms>
	 Metadata  Settings:  This field is set to `1' if the metadata is trans-
	 ferred as part of an extended data LBA. This field is cleared to `0' if
	 the metadata is transferred as part of a separate buffer. The	metadata
	 may include protection information, based on the Protection Information
	 (PI) field. Defaults to 0.

     -r, --reset
	 Issue	a  reset  after successful format. Must use the character device
	 for this.

     --force
	 Just send the command immediately without warning of the implications.

     -t <timeout>, --timeout=<timeout>
	 Override default timeout value 600,000. In milliseconds.

     -o <fmt>, --output-format=<fmt>
	 Set the reporting format to normal, json or  binary.  Only  one  output
	 format can be used at a time.

     -v, --verbose
	 Increase the information detail in the output.

EXAMPLES
     *	 Format the device using all defaults:

	     # nvme format /dev/nvme0n1

     *	 Format  namespace 1 with user data secure erase settings and protection
	 information:

	     # nvme format /dev/nvme0 --namespace-id=1 --ses=1 --pi=1

NVME
     Part of the nvme-user suite

NVMe				   10/31/2024			  NVME-FORMAT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nvme-format&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help