OPENSEACHEST_NVME(1)

๐Ÿ“ฆ
version 26.03.2 ยท 4 versions
, in nixpkgs unstable, ubuntu stonking

โœจ NAME โœจ

okay so bestie, this is openSeaChest_NVMe โ€” manual page for openSeaChest_NVMe, that's the whole vibe ๐Ÿ’…


๐ŸŽ€ DESCRIPTION ๐ŸŽ€

okay so first, the receipts (aka the banner it prints at you):

openSeaChest_NVMe - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
openSeaChest_NVMe Version: 26.03.2
X86_64
Build Date: May 18 2026
Today: 20260605T144116
User: current user

๐Ÿฆ‹ Usage ๐Ÿฆ‹

here's the shape of literally every call you're gonna make:

openSeaChest_NVMe [-d <sg_device>] {arguments} {options}

๐Ÿฆ‹ Examples ๐Ÿฆ‹

not me giving you the greatest hits, no gatekeeping here ๐ŸŒธ

Just vibing / finding your drives and getting the tea:

openSeaChest_NVMe --scan
openSeaChest_NVMe -d /dev/sg<#> -i
openSeaChest_NVMe -d /dev/sg<#> --SATInfo
openSeaChest_NVMe -d /dev/sg<#> --llInfo

Updating firmware:

openSeaChest_NVMe -d /dev/sg<#> --downloadFW file.bin

Updating firmware with deferred download and activating:

openSeaChest_NVMe -d /dev/sg<#> --downloadFW file.bin --downloadMode deferred --activateFW

Updating firmware and specifying a firmware slot (NVMe)

openSeaChest_NVMe -d /dev/sg<#> --downloadFW file.bin --downloadMode deferred

+

openSeaChest_NVMe -d /dev/sg<#> --activateFW --firmwareSlot 2

Formatting an NVMe device:

openSeaChest_NVMe -d /dev/sg<#> --showSupportedFormats
openSeaChest_NVMe -d /dev/sg<#> --nvmFormat current --poll
openSeaChest_NVMe -d /dev/sg<#> --nvmFormat 4096 --poll
openSeaChest_NVMe -d /dev/sg<#> --nvmFormat current --poll --nvmFmtSecErase user
openSeaChest_NVMe -d /dev/sg<#> --nvmFormat current --poll --nvmFmtPI 1

Checking and changing power states:

openSeaChest_NVMe -d /dev/sg<#> --checkPowerMode
openSeaChest_NVMe -d /dev/sg<#> --transitionPowerState 1
openSeaChest_NVMe -d /dev/sg<#> --showNVMPowerStates

Pulling the Telemetry log:

openSeaChest_NVMe -d /dev/sg<#> --getTelemetry host
openSeaChest_NVMe -d /dev/sg<#> --getTelemetry host, --telemetryDataArea 2 --logMode bin

๐Ÿ“ Return codes ๐Ÿ“

fr fr, this is the part where the tool tells you what went down. Generic/Common exit codes, bestie:

  1. 0 = No Error Found ๐ŸŒˆ
  2. 1 = Error in command line options
  3. 2 = Invalid Device Handle or Missing Device Handle
  4. 3 = Operation Failure
  5. 4 = Operation not supported
  6. 5 = Operation Aborted
  7. 6 = File Path Not Found
  8. 7 = Cannot Open File
  9. 8 = File Already Exists
  10. 9 = Need Elevated Privileges ๐Ÿ‘‘
  11. 10 = Not enough resources
  12. 11 = Error Writing File
  13. 12 = Device not found when opening handle.
  14. 13 = Device not opened. Handle is busy.
  15. 14 = Insecure Directory to read or write file

Anything else = unknown error ๐Ÿ’€


๐Ÿ‘‘ UTILITY OPTIONS ๐Ÿ‘‘

these are the general settings that tune how the whole utility behaves, not what it does to the drive ๐Ÿ’–

  • --echoCommandLine โ€” makes the utility repeat the command line you typed back onto your screen. yes she's repeating you, it's a service โœจ
  • -h, --help โ€” shows you the utility options and example usage (literally the output you're staring at right now). Puh-lease report bugs/suggestions to seaboard@seagate.com and include the output of the --version info in the email ๐Ÿซถ
  • --license โ€” displays the Seagate End User License Agreement (EULA). the legal girlies love this one
  • --modelMatch [model Number] โ€” use this to run only on the drives that match the model number you hand it. It'll give you a closest match, even though an exact match is the preferred situation. Ex: ST500 will match ST500LM0001
  • --newFW [firmware revision] โ€” use this to skip drives that are already running the firmware revision you named. This one only does an exact match. The whole point is to skip doing an update when a drive already has that firmware revision loaded on it already. no redo's, she's efficient ๐Ÿ’…
  • --noBanner โ€” suppresses the text banner that shows up every single time openSeaChest runs. for the girls who hate intros ๐ŸŽ€
  • --onlyFW [firmware revision] โ€” use this to run only on the drives matching the firmware revision you gave. Exact match only, no vibes-based guessing.
  • --onlySeagate โ€” matches only Seagate drives for the options you're passing in. loyalty test, and only Seagate passes โœจ
  • -q, --quiet โ€” runs openSeaChest_NVMe in quiet mode. It's literally the same thing as -v 0 or --verbose 0. shhh ๐Ÿคซ
  • -v [0-4], --verbose [0 | 1 | 2 | 3 | 4] โ€” shows verbose information. Verbosity levels are:
    • 0 - quiet
    • 1 - default
    • 2 - command descriptions
    • 3 - command descriptions and values
    • 4 - command descriptions, values, and data buffers

Example: -v 3 or --verbose 3

  • -V, --version โ€” shows openSeaChest_NVMe version and copyright information & exit. that's it, she's done, goodbye ๐Ÿฆ‹

๐ŸŒˆ UTILITY ARGUMENTS ๐ŸŒˆ

  • -s, --scan โ€” scans the system and lists every storage device with its logical /dev/sg<#> assignment. Shows model, serial and firmware numbers. Pro tip: if your device isn't showing up on a scan immediately after booting, wait 10 seconds and run it again. patience is a virtue bestie โณ
  • -F, --scanFlags [option list] โ€” use this to control the output from scan, with the options listed right below. Multiple options can be combined, mix and match, she's flexible ๐Ÿ’…
    • ata - show only ATA (SATA) devices
    • usb - show only USB devices
    • scsi - show only SCSI (SAS) devices
    • nvme - show only NVMe devices
    • interfaceATA - show devices on an ATA interface
    • interfaceUSB - show devices on a USB interface
    • interfaceSCSI - show devices on a SCSI or SAS interface
    • interfaceNVME = show devices on an NVMe interface
    • sd - show sd device handles
    • sgtosd - show the sd and sg device handle mapping
    • ignoreCSMI - do not scan for any CSMI devices
    • allowDuplicates - allow drives with both CSMI and PD handles to show up multiple times in the list
  • -d, --device [deviceHandle | all] โ€” use this with most commands to say WHICH device handle the operation happens on. Example: /dev/sg<#>

CSMI device handles can be specified as <error<#><#><#>>

To run across all devices detected in the system, use the "all" argument instead of a device handle. Example: -d all

NOTE: The "all" argument is handled by running the specified options on each drive detected in the OS sequentially. For parallel operations, please use a script opening a separate instance for each device handle. one at a time, she's not a multitasker on this one ๐Ÿ˜ญ
  • -i, --deviceInfo โ€” shows information and features for the storage device. the lil info dump, iconic ๐ŸŒธ
  • --llInfo โ€” dumps low-level information about the device to assist with debugging. for when you gotta go deep, iykyk ๐Ÿ”ฅ
  • --SATInfo โ€” displays SATA device information on any interface using both SCSI Inquiry / VPD / Log reported data (translated according to SAT) and the ATA Identify / Log reported data. two sources, one truth โœจ
  • --testUnitReady โ€” issues a SCSI Test Unit Ready command and displays the status. If the drive is not ready, the sense key, asc, ascq, and fru will be displayed, and a human readable translation from the SPC spec will be shown if one is available. she'll tell you exactly why she's not ready, no mysterious silence ๐Ÿ’…
  • --fastDiscovery โ€” use this option to issue a fast scan on the specified drive. zoom zoom ๐Ÿฆ‹
  • --activateFW โ€” issues the command to activate code that was sent to the drive using a deferred download command. This will immediately activate the new code on the drive. You can use this alongside a --downloadFW & --downloadMode to automatically issue the activate command after the download has completed. auto-pilot slay โœจ
WARNING: Firmware activation may affect all LUNs/namespaces for devices with multiple logical units or namespaces. ๐Ÿ‘€
  • --checkPowerMode โ€” gets the current power mode of a drive. On SCSI devices, this will only work if the drive has transitioned from active state to another state.
  • --transitionPowerState [new power state] (NVMe Only) โ€” use this to transition to a specific power state.
WARNING: Transitioning the drive to a non-operational power state may make the device stop responding. The operating system may or may not block this transition. It is recommended to only use this option for operational power states. bestie pls be careful, she might ghost you ๐Ÿ˜ญ

HINT: Use --showNVMPowerStates to view the supported states.

  • --downloadFW [firmware_filename] โ€” downloads firmware to a Seagate storage product. Use only device manufacturer authorized firmware data files which are designated for the specific model drive. Improper use of this option may harm a device and or its data. You may specify the path (without spaces) if the firmware data file is in a different location. This option will use auto mode by default to choose the best method for updating the drive firmware. Use the --downloadMode option to specify a different download mode.
WARNING: Firmware updates may affect all LUNs/namespaces for devices with multiple logical units or namespaces. ๐ŸŒˆ๐Ÿ’€
  • --downloadMode [ auto | full | segmented | deferred | deferred+activate ] โ€” use this along with the --downloadFW option to set the firmware download mode. Supported Modes:
    • auto - automatically determines the best mode to use to perform the firmware update.
    • full - performs a download in one large transfer to the device.
    • segmented - downloads the firmware in multiple segments to the device. (Most compatible)
    • deferred - performs a segmented download to the device, but does not activate the new firmware until a powercycle or activate command is sent.
    • deferred+activate - performs a deferred download and automatically activates it for you. Similar to how a segmented download works but uses a separate activate command. This is the recommended mode that "auto" will select when possible for maximum compatibility with Windows 10 and later operating systems.
WARNING: Firmware Updates may affect all LUNs/namespaces for devices with multiple logical units or namespaces. ๐Ÿซถ
  • --firmwareSlot/--fwBufferID slot# โ€” use this to specify a firmware slot (NVMe) or a buffer ID (SCSI) alongside the --downloadMode (SCSI) or --activateFW (NVMe & SCSI) options. If this option is not used, a value of zero will be used instead, which means the drive will automatically select the slot number. she's got it, don't worry โœจ
  • --fwdlSegSize [segment size in 512B blocks]

โžก๏ธ the segment size thing โ€” use this option to pick a segment size in 512B blocks for a segmented or deferred download. Heads up bestie: it does NOT touch an immediate download (that's the full buffer at once, no chill). The default segment size is 64. Bigger segments might be faster ๐Ÿƒโ™€๏ธ but they can also be incompatible with controllers or drivers in your system ๐Ÿ˜ญ. Smaller values are more likely to be compatible, but also slower ๐Ÿข. Use this option if the default the tool picks isn't working correctly for firmware updates.


  • --getFeatures [ help | list | # ] โ€” use this to list the NVMe features. Supported Modes:
    • help โ€” prints the descriptions of all the features ๐Ÿ“–
    • list โ€” lists raw values of all mandatory features supported by device ๐Ÿ“‹
    • # โ€” feature number will print the humanized details ๐Ÿ”
  • --getNvmeLogPage [ error | smart | fwSlots | suppCmds | selfTest | # ] โ€” use this to get the NVMe log pages. Supported Modes:
    • error โ€” lists the valid entries found in the Error Information Log ๐Ÿšจ
    • smart โ€” lists information found in the SMART/Health Information Log ๐Ÿ’š
    • fwSlots โ€” lists currently active Firmware slot and Firmware Revision in each slot ๐ŸŽฐ
    • suppCmds โ€” lists the commands that the controller supports and the effects of those commands ๐ŸŽฎ
    • selfTest โ€” lists the status of any device self-test operation in progress and the results of the last 20 device self-test operations ๐Ÿงช
    • # โ€” option to get the log page using a number ๐Ÿ”ข
  • --getTelemetry [host | ctrl] โ€” use this to get the NVMe Telemetry data for a device ๐Ÿ“ก. Use the --telemetryDataArea option to control the amount of data collected.
    • Supported Modes:
      • host โ€” get Host Telemetry
      • ctrl โ€” get Ctrl Telemetry
  • --telemetryDataArea [1 | 2 | 3] โ€” this is a sub-command which defines the amount of data collected by the --getTelemetry option. Data Area 3 is assumed if this option is not used. โœจ
    • Supported Data Area:
      • 1 โ€” get minimal telemetry data
      • 2 โ€” get telemetry data additional to data area 2
      • 3 โ€” get telemetry data additional to data area 3 (default data area)
  • --listSupportedLogs โ€” displays a list of all supported logs by this device type ๐Ÿ“œ.
  • --onlyFW [firmware revision] โ€” use this to run on all drives matching the provided firmware revision. This option will only do an exact match ๐ŸŽฏ.
  • --clearPciErr โ€” use this to clear correctable errors ๐Ÿงน.
  • --poll โ€” use this to cause another operation to poll for progress until it has completed. This argument does not return to the command prompt and prints ongoing completion percentages (%) plus the final test result ๐Ÿ“ˆ.
Full drive procedures will take a very long time. โณ

Used with --sanitize, or --writeSame (SATA).

  • --progress [nvmformat] โ€” get the progress for a test that was started quietly, i.e. without the polling option (which is the default). You must specify a test you wish to get progress from, bestie. Ex: "--progress dst" or "--progress sanitize". The progress counts up from 0% to 100% ๐Ÿ”‹.
  • --extSmartLog โ€” use this to Extract the Extended Smart Log Attributes ๐Ÿ”ฌ.
  • --logMode [ raw | binary ] โ€” use this with other options such as --getNvmeLogPage and --deviceInfo to show a buffer output or to create a binary file. Supported Modes:
    • raw โ€” prints the raw buffer on stdout ๐Ÿ–จ๏ธ
    • binary โ€” writes data to a file with device Serial Number & time stamp ๐Ÿ—‚๏ธ
  • --tempStats โ€” use this to get the NVMe Temperature Statistics ๐ŸŒก๏ธ
  • --pciStats โ€” use this to get the NVMe PCIe Statistics ๐ŸšŒ
  • --showNVMPowerStates (NVMe Only) โ€” use this to display a device's supported power states ๐Ÿ”Œ.
  • --showSupportedFormats โ€” this option will show the supported formats of a device. These can be used to change the sector size or used with a format operation. On SAS, this is the supported block lengths and protection types VPD page. (SBC4 and later) On SATA, this is the sector configuration log. (ACS4 and later) If the device does not report supported sector sizes, please consult your product manual ๐Ÿ“š.
WARNING: Customer unique firmware may have specific requirements that restrict sector sizes on some products. It may not be possible to format/fast format to common sizes like 4K or 512B due to these customer requirements. โš ๏ธ

๐Ÿ’€ Data Destructive Commands ๐Ÿ’€

okay so this is the part where we all hold hands and read very carefully, because these ones are DATA DESTRUCTIVE and they do not play.

  • --nvmFmtMetadataSet [ xlba | separate ] (NVMe Only) โ€” use this option to specify how metadata is transmitted to the host system. Options:
    • xlba โ€” metadata is transferred as part of the logical block data
    • separate โ€” metadata is transferred as a separate buffer
Note: Not all devices support specifying this. If this option is not provided, the NVM format will reuse the current setting. ๐Ÿ™ˆ
  • --nvmFmtMS [ # of bytes for metadata ] (NVMe Only) โ€” this option is used to specify the length of metadata with a requested logical block size. The device must support the combination of logical block size and metadata size or the format will be rejected by the device. ๐Ÿšซ
  • --nvmFmtNSID [all | current] (NVMe Only) โ€” this option changes the NSID used when issuing the NVM format command. This can be used to control formatting an entire device or a specific namespace if the device supports specifying specific namespaces for a format command. Not all devices support this behavior ๐Ÿซ . This has no effect on devices that do not support targeting a specific namespace and will format the entire device. If this option is not given, the format will be issued to all namespaces by default.
  • --nvmFmtPI [ 0 | 1 | 2 | 3 ] (NVMe Only) โ€” use this option to specify the protection type to format the medium with. Note: Not all devices support protection types. If this option is not provided, the NVM format will reuse the current setting. ๐Ÿคทโ™€๏ธ
  • --nvmFmtPIL [ beginning | end ] (NVMe Only) โ€” use this option to specify the location protection information in an NVM device's metadata. Note: Not all devices support specifying this. If this option is not provided, the NVM format will reuse the current setting. ๐Ÿ“
  • --nvmFmtSecErase [none | user | crypto] (NVMe Only) โ€” (None | Clear | Clear, Possible Purge). This option is used to specify the type of erase to perform during an NVM format operation. All user data will be inaccessible upon completion of an NVM format, no matter the erase requested. Options:
    • none โ€” no secure erase requested (previous data will not be accessible, however the media may not have been erased by the controller.)
    • user โ€” requests all user data is erased by the device. (Clear)
    • crypto โ€” requests a cryptographic erase of all user data. Note: this mode is not supported on all devices. (Clear, Possible Purge)
  • --nvmFormat [current | format # | sector size] (NVMe Only) โ€” this option is used to start an NVM format operation. Use "current" to perform a format operation with the Sector size currently being used. If a value between 0 and 15 is given, then that will issue the NVM format with the specified sector size/metadata size for that supported format on the drive. Values 512 and higher will be treated as a new sector size to switch to and will be matched to an appropriate lba format supported by the drive. This command will erase all data on the drive. ๐Ÿ˜ฑ Combine this option with --poll to poll for progress until the format is complete. A data sanitization compliant with IEEE 2883 Clear requires the --nvmFmtSecErase option to be provided. Without this option the controller may not erase all user data and substitute returning zeroes for performance instead. ๐Ÿ’€

And here's the tool's own little intro card, exactly as it prints it ๐Ÿ’Œ:

openSeaChest_NVMe - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
openSeaChest_NVMe Version: 26.03.2 X86_64
Build Date: May 18 2026
Today: 20260605T144116
User: current user

Version Info for openSeaChest_NVMe:

Utility Version: 26.03.2
opensea-common Version: 6.1.0
opensea-transport Version: 10.3.0
opensea-operations Version: 9.4.0
Build Date: May 18 2026
Compiled Architecture: X86_64
Detected Endianness: Little Endian
Compiler Used: GCC
Compiler Version: 14.2.0
Operating System Type: Linux
Operating System Version: 6.6.114-1
Operating System Name: Ubuntu 24.04.4 LTS

๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

The full documentation for openSeaChest_NVMe is maintained as a Texinfo manual ๐Ÿ“˜. If the info and openSeaChest_NVMe programs are properly installed at your site, the command

info openSeaChest_NVMe

should give you access to the complete manual. โœจ


and that's the whole page, bestie ๐Ÿซถ this one's from the openSeaChest_NVMe man page fam, dated June 2026 โ€” go off, format responsibly, and please please please double-check your --nvmFormat before you send it ๐Ÿ’… mwah

๐Ÿ“ฆ where this page comes from