OPENSEACHEST_ERASE(1)
β¨ NAME β¨
openSeaChest_Erase β manual page for openSeaChest_Erase
okay bestie, you made it, this is section 1 of the openSeaChest_Erase(1) man page and it's a LOT, so buckle up π«Ά
π DESCRIPTION π
so like, the whole opening block is this:
openSeaChest_Erase - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its
Affiliates, All Rights Reserved openSeaChest_Erase Version:
26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144114
User: current user
that's the banner vibe: Seagate copyright 2014-2026, version 26.03.2, X86_64 build, built May 18 2026, and it stamps today's date/time (20260605T144114) plus who's running it (the current user). no cap π
π§ Usage
openSeaChest_Erase [-d <sg_device>] {arguments} {options}
πΈ Examples
like, here's every single one of them, in a block, exactly as written:
openSeaChest_Erase --scan
openSeaChest_Erase -d /dev/sg<#> -i
openSeaChest_Erase -d /dev/sg<#> --SATInfo
openSeaChest_Erase -d /dev/sg<#> --llInfo
openSeaChest_Erase -d /dev/sg<#> --showEraseSupport
openSeaChest_Erase -d /dev/sg<#> --performQuickestErase --poll
openSeaChest_Erase -d /dev/sg<#> --overwrite 0
openSeaChest_Erase -d /dev/sg<#> --overwrite 1000 --overwriteRange 2000
openSeaChest_Erase -d /dev/sg<#> --overwrite 0 --hours 1
openSeaChest_Erase -d /dev/sg<#> --overwrite 0 --pattern repeat:04ABCDEFh
openSeaChest_Erase -d /dev/sg<#> --writeSame 0 --poll
openSeaChest_Erase -d /dev/sg<#> --writeSame 1000 --writeSameRange 2000 --poll
openSeaChest_Erase -d /dev/sg<#> --sanitize overwrite --poll
openSeaChest_Erase -d /dev/sg<#> --sanitize overwrite --poll --pattern random
openSeaChest_Erase -d /dev/sg<#> --sanitize cryptoerase --poll
openSeaChest_Erase -d /dev/sg<#> --ataSecureErase enhanced
openSeaChest_Erase -d /dev/sg<#> --ataSecureErase enhanced --ataSecPassword AutoATAWindowsString12345678901 --ataSecPassType user
openSeaChest_Erase -d /dev/sg<#> --trim 0
openSeaChest_Erase -d /dev/sg<#> --trim 1000 --trimRange 2000
openSeaChest_Erase -d /dev/sg<#> --formatUnit current --poll
openSeaChest_Erase -d /dev/sg<#> --formatUnit current --poll --pattern file:path/to/myFile.bin
openSeaChest_Erase -d /dev/sg<#> --nvmFormat current --poll
openSeaChest_Erase -d /dev/sg<#> --nvmFormat 4096 --poll
openSeaChest_Erase -d /dev/sg<#> --nvmFormat current --poll --nvmFmtSecErase user
openSeaChest_Erase -d /dev/sg<#> --nvmFormat current --poll --nvmFmtPI 1
openSeaChest_Erase -d /dev/sg<#> --eraseRestoreMaxPrep
openSeaChest_Erase -d /dev/sg<#> --eraseRestoreMaxPrep --overwrite 0
π Return codes
Generic/Common exit codes
0= No Error Found1= Error in command line options2= Invalid Device Handle or Missing Device Handle3= Operation Failure4= Operation not supported5= Operation Aborted6= File Path Not Found7= Cannot Open File8= File Already Exists9= Need Elevated Privileges10= Not enough resources11= Error Writing File12= Device not found when opening handle.13= Device not opened. Handle is busy.14= Insecure Directory to read or write file
openSeaChest_Erase specific exit codes
32= Zero Validation Failure
Anything else = unknown error π
π Utility Options
--csmiIgnorePort(Obsolete) β bestie this one is obsolete and will be removed in future versions. don't get attached.--csmiUsePort(Obsolete) β also obsolete, also getting removed in future versions π«Ά--csmiVerbose(Obsolete) β yep, obsolete too, and it will be removed in future versions.--echoCommandLineβ echoes the command line you typed right back at you on the screen.--enableLegacyUSBPassthroughβ β οΈ ONLY use this on old USB or IEEE1394 (Firewire) products that otherwise just don't work with the tool. It turns on a trial-and-error method that tries sending various ATA Identify commands through vendor specific means. Because of that, some products might respond in unintended ways, since they may interpret these commands differently than the bridge chip the command was designed for.--forceATAβ forces the current drive to be treated as an ATA drive. Only ATA commands will be used to talk to the drive.--forceATADMA(SATA Only) β forces the tool to issue SAT commands to an ATA device using the protocol set to DMA whenever possible (on DMA commands). Can be combined with--forceATA.--forceATAPIO(SATA Only) β forces the tool to issue PIO commands to an ATA device when possible. Can be combined with--forceATA.--forceATAUDMA(SATA Only) β forces the tool to issue SAT commands to an ATA device using the protocol set to UDMA whenever possible (on DMA commands). Can be combined with--forceATA.--forceSCSIβ forces the current drive to be treated as a SCSI drive. Only SCSI commands will be used to talk to the drive.-h,--helpβ shows utility options and example usage (literally this output you're reading rn). Please report bugs/suggestions toseaboard@seagate.com. Include the output of the--versioninformation in the email π§--hideLBACounterβ use this to suppress the output from options that show LBA counters, without turning off all output to the screen.--licenseβ displays the Seagate End User License Agreement (EULA).--modelMatch [model Number]β run on all drives matching the provided model number. It gives a closest match, although an exact match is preferred. Ex:ST500will matchST500LM0001--noBannerβ suppresses the text banner that displays each time openSeaChest is run.--onlyFW [firmware revision]β run on all drives matching the provided firmware revision. This one only does an exact match.--onlySeagateβ match only Seagate drives for the options provided.-q,--quietβ runsopenSeaChest_Erasein quiet mode. Same as-v 0or--verbose 0.-v [0-4],--verbose [0 | 1 | 2 | 3 | 4]β show 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 3or--verbose 3-V,--versionβ showopenSeaChest_Eraseversion and copyright information & exit.
π¦ Utility Arguments
-d,--device [deviceHandle | all]β use this with most commands to specify the device handle to perform an operation 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.
--displayLBA [LBA]β reads and displays the contents of the specified LBA to the screen. Display format is hexadecimal, with an ASCII translation on the side (when available).-F,--scanFlags [option list]β controls the output from scan with the options listed below. Multiple options can be combined:ataβ show only ATA (SATA) devicesusbβ show only USB devicesscsiβ show only SCSI (SAS) devicesnvmeβ show only NVMe devicesinterfaceATAβ show devices on an ATA interfaceinterfaceUSBβ show devices on a USB interfaceinterfaceSCSIβ show devices on a SCSI or SAS interfaceinterfaceNVMEβ show devices on an NVMe interfacesdβ show sd device handlessgtosdβ show the sd and sg device handle mappingignoreCSMIβ do not scan for any CSMI devicesallowDuplicatesβ allow drives with both CSMI and PD handles to show up multiple times in the list
-i,--deviceInfoβ show information and features for the storage device.--llInfoβ dump low-level information about the device to assist with debugging.--pollβ use this option 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 (%) and the final test result.
Full drive procedures will take a very long time.
Used with --sanitize, or --writeSame (SATA).
--progress [sanitize | format | nvmformat]β get the progress for a test that was started quietly without the polling option (that's the default). You must specify a test you wish to get progress from. Ex:"--progress dst"or"--progress sanitize". The progress counts up from0%to100%.-s,--scanβ scan the system and list all storage devices with logical/dev/sg<#>assignments. Shows model, serial and firmware numbers. If your device is not listed on a scan immediately after booting, then wait10seconds and run it again.-S,--Scanβ same as--scanor-s, but it will also perform a low level rescan to pick up other devices. This low level rescan may wake devices from low power states and may cause the OS to re-enumerate them. Use this option when a device is plugged in and not discovered in a normal scan.
NOTE: A low-level rescan may not be available on all interfaces or all OSs. The low-level rescan is not guaranteed to find additional devices in the system when the device is unable to come to a ready state.
--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.--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 displayed if one is available.--fastDiscoveryπ β bestie, this fires off a fast scan on the drive you picked. zoom zoom, quick peek energy.--hours [hours]β° β lets you set a time in hours so a timed operation knows how long to run.--minutes [minutes]β° β same vibe, but minutes, for your timed operation.--seconds [seconds]β° β and yep, seconds for your timed op, so you can be precise bestie π--eraseRestoreMaxPrepβ¨ β okay so this one tries to restore the max LBA to the highest user addressable sector before it even starts erasing the drive. If literally any failure pops up while restoring that maxLBA, then it throws an error and the erase is not started or attempted until you (or some other user) step in. no cap.
Now, if a feature is frozen, locked, or has already been used during the current power cycle, those things can cause a failure. The fix? power cycle the drive π but in some cases you might need to try a different computer or adapter, because commands can get blocked by the system or auto-issued by the BIOS to lock access to capacity-changing commands. rude.
This option handles the ATA HPA (Host Protected Area), AMAC (Accessible Max Address Configuration), HPA Security Extension, and DCO (Device Configuration Overlay) features the way the specs say to, fr fr. If the restore finishes with no errors, then the erase proceeds and any additional errors will only be in relation to those erasure methods. slay β¨
--refreshfsπ¦ β this calls an OS-unique low-level routine to rescan a device for any file systems it can sniff out through the partition table. Which filesystems get detected depends on your OS and its capabilities, so it's giving it depends. Best used after a full disk erase, because it might make a cached volume in the OS go bye-bye π or detect that a device is empty and ready for a shiny new file system. iconic.--showEraseSupportπ β checks the drive to figure out which methods of data erasure it supports and lists them all out for you, from fastest to slowest.
β οΈ WARNING: Some erase methods may affect all LUNs/namespaces for devices with multiple logical units or namespaces.
--zeroVerify [full | quick]π β use this to verify the drive content, whether it's actually set to zero or not. It reads the user accessible address and validates whether the content at that address is zero or not. Validation modes:fullβ Complete drive will be scanned for verification.quickβ 0.1% of total capacity will be scanned for ID and OD validation along with 2 random addresses from 10000 equal size sections each.
π SATA Only π
=========
--ataSATsecurityProtocol [enable | disable]β (SATA only). This one can force enable or disable using the ATA security protocol as laid out in the SAT specification. By default, the tool will use this method when it's supported, so the SATL can understand and manage the security commands being performed and prevent other issues. β¨--ataSecPassword ["ASCII password" | SeaChest | empty]β (SATA only). Wanna specify a password to use with an ATA security operation? this is the one. If your password has spaces in it, you must use quotes. If you give itSeaChest, then the default SeaChest password gets used. If you give itempty, then an empty password gets used. examples bestie:
"This is a valid password"
ThisIsAlsoValid
"This password uses \"quotes\""
"This password is \/\/eird"
--ataSecPassType [user | master]β (SATA only). Tells the tool whether the password you handed it with the--ataSecPasswordoption is a user or a master password. If you don't provide this option,useris assumed. periodt.--ataSecPWMod [byteswapped | zeropad | spacepad | fpad | leftAlign | rightAlign | uppercase | lowercase | invertcase]β (SATA Only). Use this to have the utility make modifications to the ATA security password, to attempt all the other various ways it might've been sent by a system BIOS. These are not guaranteed to work, but they may help unlock a drive that got locked by a BIOS that encoded the password in some unique way. π You can slap this option on multiple times to select multiple modifications. EX:
--ataSecPWMod byteswapped --ataSecPWMod invertcase
byteswappedβ byteswaps the password. EX:blah->lbhazeropadβ zero pads the password if less than 32 charactersspacepadβ space pads the password if less than 32 charactersfpadβ pads the passwords with Fh (all 1's) if less than 32 charactersleftAlignβ left aligns the password in the bufferrightAlignβ right aligns the password in the bufferuppercaseβ sends the password as all uppercaselowercaseβ sends the password as all lowercaseinvertcaseβ switches uppercase for lower, and lowercase for upper
π₯ Data Destructive Commands π₯
π§Ό Data sanitization capabilities π§Ό
- Recommendation β Restore the MaxLBA of the device prior to any erase so the drive can erase all user addressable sectors. For ATA devices this means restoring HPA + DCO / AMAC to restore the maxLBA. Restoring the MaxLBA also lets you fully verify all user addressable space on the device, without getting limited by a lower maxLBA. π
- Clear β Logical techniques are applied to all addressable storage locations, protecting against simple, non-invasive data recovery techniques.
- Clear, Possible Purge β Cryptographic erase is a purge if the vendor implementation meets the requirements in IEEE 2883-2022.
- Purge β Logical techniques that target user data, overprovisioning, unused space, and bad blocks, rendering data recovery infeasible even with state-of-the-art laboratory techniques. π₯
This utility does not support clear/purge verification yet. All labels are written according to the expectation that the device firmware will meet these capabilities as defined in the appropriate standards from T10, T13, SATA - IO, and NVMexpress.
=========================
--auseβ lets you run a sanitize operation in unrestricted mode. Without this option, all sanitize options run in restricted mode by default. In unrestricted mode, if a sanitize erase fails, the drive enters a failure state β and that failure state can be cleared with a Sanitize exit failure mode command, or with a successful sanitize erase. In restricted mode, if a sanitize fails, the failure state can only be cleared with a successful sanitize erase. lowkey a big difference ngl.--ipbpβ tells the drive to invert the requested sanitize overwrite pattern between each overwrite pass. For the default pattern of all zeroes, that means after a first pass of zeroes, the second pass is all 1's (binary) or all F's (hexadecimal). π--overwrite [starting LBA]β (Clear). Starts an overwrite erase at the specified starting LBA. Combine this withoverwriteRangeor the time options (hours,minutes,seconds) to erase just a portion of the drive π―--overwriteRange [range in # of LBAs]β (Clear). Use this with the overwrite option (--overwrite) to erase a range of LBAs on the selected drive.--overwritepasses [ number of overwrite passes ]β sets how many overwrite passes to use during a sanitize overwrite operation. By default, only a single overwrite pass is used unless this option says otherwise. The max number of passes varies by drive type:- ATA: 16 passes
- NVMe: 16 passes
- SCSI: 31 passes
Use the --ipbp option to tell the device to invert the pattern between each overwrite pass. π
--pattern [repeat:asciinospaces | random | increment:startValue | file:filename]β use this with overwrite, sanitize, and format unit operations to write a specific pattern to a range of LBAs or to the whole drive. options:repeatβ without spaces, enter an ASCII text string or a hexadecimal string terminated by a lower caseh. This pattern will be repeated until it fills the logical size of the LBA. i.e.hellowordorFFFFFFFFh. Note: a hexadecimal pattern will be interpreted as a 32bit unsigned integer. 4 hex bytes (8 characters) must be given for a hex value to be used. Ex:1F037AC8hor0000FFFFhrandomβ the entire logical sector size will be filled with random bytes. This pattern will be written to all LBAs in the desired range.incrementβ enter the starting numerical value. Starting with this value, each byte will be written with 1 + previous value.fileβ user supplied file name to use for a pattern. The file will be truncated or padded with zeros to the logical sector size. Note 1: Each file will be interpreted as a binary file. Note 2: A path must also be provided if the file is not in the local directory.- Note 3: Sanitize Overwrite on SATA only supports a 32bit pattern. The file option will get truncated to a 32bit pattern for SATA products. π
--performQuickestEraseβ checks the drive to figure out which methods of data erasure are supported and determines which is the quickest to erase ALL data on the drive. Then it starts the quickest erase. π₯ Combine this option with the--polloption to enable polling for progress on the fastest erase.- Note: Some erase methods require polling and will have polling enabled by default.
- Note 2: If
revertSPis the fastest, it will not be started since the drive PSID must be passed in on the command line.
β οΈ WARNING: Some erase methods may affect all LUNs/namespaces for devices with multiple logical units or namespaces.
--sanitize [info | blockerase | cryptoerase | overwrite | freezelock | antifreezelock]β (Purge)
Okay so info is the argument you use to show all the supported sanitize operations. β¨ Optionally, you can use blockerase, cryptoerase, or overwrite to actually start a sanitize operation. And adding the --poll option? That makes openSeaChest_Erase poll the drive for progress until the operation is complete, or until it's aborted for some reason. Heads up though: all sanitize erase operations are persistent across a power cycle and cannot be stopped. π
Example: --sanitize blockerase --poll
By default, sanitize runs in restricted exit mode, which means the only way to exit a failed sanitize is to attempt sanitize again until it completes successfully. (Yeah, it's giving clingy.) Add the --ause option to run in unrestricted mode. In unrestricted mode, if sanitize fails you can exit this mode with the "exit failure mode" command or a successful sanitize command.
For Zoned block devices, the --znr option can be used to stop the write pointers from resetting, which allows full drive verification to be performed upon completion of sanitize. For NVMe devices that support the deallocate feature (TRIM), the --nodeallocate option can be used to prevent the deallocation of blocks at completion of sanitize, allowing for full drive verification.
NOTE: An NVMe controller may inhibit the no deallocate behavior and may deallocate anyways or fail the sanitize command when no deallocate is specified.
Now here's the tea on what each one actually does, bestie:
blockeraseβ on some solid state drives this is very fast, less than one (1) second, while others may take more than 30 seconds. This operation performs a physical low level block erase operation on all current, past, and potential user data. The contents on user data are indeterminate upon completion. πcryptoeraseβ very fast, less than one (1) second. It changes the internal encryption keys that are used for user data, causing all previous data to be useless. Iconic honestly.overwriteβ a physical overwrite on all current, past, and potential user data. The ATA, NVMe, & SCSI specifications allow a user defined pattern and multiple passes.openSeaChest_Erasewill use a zero pattern and a single pass for this operation by default. Use--overwritepassesand--ipbpto specify the number of passes and whether to invert the pattern between each overwrite pass.freezelockβ migrate to use of--sanitizeFreezeantifreezelockβ migrate to use of--sanitizeAntiFreeze
WARNING: Sanitize may affect all LUNs/namespaces for devices with multiple logical units or namespaces.
--trim,--unmap[starting LBA] β use one of these to start a trim or unmap operation on a drive at the provided LBA. A range must also be provided with the range option. π§Ή--trimRange,--unmapRange[range in # of LBAs] β use one of these to specify a range to trim or unmap on a drive. A starting point must be specified with the--trim/--unmapRangeoption.--writeSame[starting LBA] (Clear) β enter a starting lba to begin a write same on to erase a range of data on the drive. On SCSI devices, this uses thewritesame16command. On ATA devices, this uses the SCT writesame feature. Combine this option with thewriteSameRangeoption to select the range. This operation will write 0's to the device for the specified range. For SATA drives, this option will poll for progress until the write same has completed. SAS/SCSI drives will hold the tool busy until the write same has completed without progress indication, since this is not possible on SAS/SCSI due to specification limitations on how write same was defined. On SATA, if any other commands are sent to the drive while it's performing a write same, the write same will be aborted. NOTE: On SAS/SCSI drives this command is optional. Additionally, the range may be limited to much less than the full device size. Due to the history of this command, there is not a great way to confirm support in all cases. Some ranges will be too large, and some devices may or may not allow writing the full medium in a single command. If you wish to write an entire device, consider a different command such as format unit or sanitize overwrite to accomplish this. π--writeSameRange[range in # of LBAs] β specify a range to writesame to. Use this option with thewriteSameoption in order to begin a write same operation.--znrβ for ZBD's (Zoned Block Devices), use this option during a Sanitize or ATA Security Erase to specify leaving all zones full so that full verification of erasure can be performed. When this option is not specified, all zones will be empty upon completion of these erases. πΈ
π SATA Only π
--ataSecureErase[normal | enhanced] (SATA only) (Clear | Purge) β use"normal"to start a standard ATA security erase (Clear), or"enhanced"to start an enhanced ATA security erase (Purge).
ATA Security Erase takes a very long time to complete β approximately three (3) hours per Tera-byte (HDD). π΄ Some Seagate SED models will perform a quick cryptographic erase in enhanced mode, and the time for completion is reported as 2 minutes by the drive, but will take only seconds. This industry standard command begins by locking the drive with a temporary password which is cleared at the end of the erasure. Do not run this command unless you have ample time to allow it to run through to the end. If the procedure is interrupted prior to completion, then the drive will remain in a locked state and you must manually restart from the beginning again. The tool will attempt to automatically clear the password that was set upon failure. The default password used by the tool is "SeaChest", plain ASCII letters without the quotes.
normalβ writes binary zeros (0) or ones (1) to all user data areas.enhancedβ will fill all user data areas and reallocated user data with a vendor specific pattern. Some Seagate Instant Secure Erase will perform a cryptographic erase instead of an overwrite.
--sanitizeAntiFreeze(SATA Only) β antifreezelock is a command that is designed to block a freezelock command from locking out the sanitize feature set. It is only available on ATA drives that support the ACS3, or newer specification.--sanitizeFreeze(SATA Only) β freezelock is a command to block processing of sanitize operations until a power cycle is performed on a device. It is only available on ATA drives. Once this command has been sent, the freezelock status becomes immediate and cannot be cleared until the drive has been powered off. All sanitize commands, except a sanitize status, will be aborted. π₯Ά
π SAS Only π
--fastFormat[fast format mode] (SAS Only) (SBC4 required) β use this option with the--formatUnitoption to run a fast format. Changing sector sizes is intended for supported Seagate products used in some hardware RAID configurations. Please consult your hardware RAID documentation for information about compatibility and using 4K native sectors before using this option! Software RAID or individual/JBOD drive solutions will see no benefit, as modern file systems and modern operating systems are already 4K aware even on 512 emulation drives. Modern operating systems already align file systems to 4K boundaries required by these drives for optimal performance. Performing a sector size change is data destructive and has a risk that the adapter, driver, or operating system may not know how to communicate with the device once this has completed. π³
There is an additional risk when performing a low-level fast format that may make the drive inoperable if it is reset at any time while it is formatting.
Available fast format modes:
0β this is a standard format unit command. All logical blocks will be overwritten. This command will take a very long time.1β this is a fast format unit command keeping existing data in physical sector. This option can be used to quickly change the the logical sector size between 5xxe and 4xxx. The media may be readable, but data may be unspecified or may return errors on read access according to it's error processing algorithms.2β this is a fast format unit command that can change the logical sector size quickly. Media may or may not be read accessible until a write has been performed to the media.
WARNING: Any interruption to the device while it is formatting may render the drive inoperable! Use this at your own risk! π
WARNING: Set sector size may affect all LUNs/namespaces for devices with multiple logical units or namespaces.
WARNING: Disable any out-of-band management systems/services/daemons before using this option. Interruptions can be caused by these and may prevent completion of a sector size change.
WARNING: It is recommended that this operation is done from a bootable environment (Live USB) to reduce the risk of OS background activities running and triggering a device reset while reformating the drive.
--formatUnit[current | new sector size] (SAS Only) (Clear) β this option will start a format unit operation on a SAS drive. Use"current"to perform a format unit operation with the Sector size currently being used, otherwise enter a new sector size to use upon format completion. This command will erase all data on the drive. Combine this option with--pollto poll for progress until the format is complete. Changing sector sizes is intended for supported Seagate products used in some hardware RAID configurations. Please consult your hardware RAID documentation for information about compatibility and supported/required sector sizes! π«Ά
WARNING: Format Unit may affect all LUNs/namespaces for devices with multiple logical units or namespaces.
β οΈ 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 like4Kor512Bbecause of these customer requirements. Yes bestie this is a real one β read it twice. π€
β¨ NVMe Only β¨
(yes this is literally a sub-section in the docs, the header says NVMe Only: with a big ol' ======== underline, iconic) π
π
--nodeallocate (NVMe Only)
So for NVMe devices, you drop this option during a sanitize when you want to leave all the blocks allocated after a sanitize erase. Why does that matter? Because by default an NVMe controller will deallocate (TRIM/Unmap) all the LBAs β like, it just lets them go. π«₯
Using this option lets you do a full verification of erasure after a Sanitize command, which is the whole point. vibe check passed.
NOTE: An NVMe controller may inhibit this option in certain configurations, which means the sanitize may produce a warning or a failure depending on how this is configured on the controller. Not a vibe, just a fact. π
And omg don't forget: after verifying an erasure with this option, run a deallocate/TRIM across the entire device/namespace to match the default behavior of a sanitize erase. Cleanup era. π§Ήβ¨
π --nvmFmtMetadataSet [ xlba | separate ] (NVMe Only)
Use this one to specify how metadata is transmitted to the host system. Your options, bestie:
xlbaβ metadata is transferred as part of the logical block dataseparateβ 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. (So if you say nothing, nothing changes. The audacity of it being that simple. π)
πΈ --nvmFmtMS [ # of bytes for metadata ] (NVMe Only)
This option specifies the length of metadata with a requested logical block size. Here's the tea: the device must support the combination of logical block size and metadata size, otherwise the format will be rejected by the device. No negotiation. Periodt. π«
π¦ --nvmFmtNSID [all | current] (NVMe Only)
This option changes the NSID used when issuing the NVM format command. So you can control whether you're formatting an entire device or a specific namespace, if your device supports specifying specific namespaces for a format command. π«Ά
Real talk though: not all devices support this behavior. If your device does not support targeting a specific namespace, this option has no effect and it will format the entire device anyway. And if you just don't pass this option at all, the format gets issued to all namespaces by default.
π --nvmFmtPI [ 0 | 1 | 2 | 3 ] (NVMe Only)
Use this to specify the protection type to format the medium with. Protected and pretty. π‘οΈ
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 one to specify the location of protection information in an NVM device's metadata β is it giving beginning or giving end? That's the question. π
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 specifies the type of erase to perform during an NVM format operation. And here's the big caveat: all user data will be inaccessible upon completion of an NVM format, no matter the erase requested. Every single time. No exceptions. π³
Your 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)
Okay this is the big one. This option is used to start an NVM format operation. Let's break it down:
- Use
currentto 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. π¨ Like, all of it. Gone. Bestie please be sure.
Combine this option with --poll to poll for progress until the format is complete. β³
And this part is genuinely important: 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 may substitute returning zeroes for performance instead. π¬ So if you want the real-deal erasure and not just a performance-friendly illusion, pass it.
The docs also show you the utility's own banner / help footer right here, looking like:
openSeaChest_Erase - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Erase Version:
26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144114
User: current user
π§ Version Info for openSeaChest_Erase π
==========================================================================================
Version Info for openSeaChest_Erase:
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_Erase is maintained as a Texinfo manual. If the info and openSeaChest_Erase programs are properly installed at your site, this command:
info openSeaChest_Erase
should give you access to the complete manual. iykyk β the full lore exists, go read it. πβ¨
and that's a wrap on OPENSEACHEST_ERASE(1), bestie β til next time, stay iconic and back up your data first π
β§ openSeaChest_Erase, June 2026, man page section 1 β§
π¦ where this page comes from
- nixpkgs unstable: openseachest 26.03.2
- ubuntu stonking: openseachest 26.03.2+ds-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms