==========================================================================================
- openSeaChest_Erase - openSeaChest drive utilities - NVMe Enabled Copyright
(c) 2014-2023 Seagate Technology LLC and/or its Affiliates, All Rights
Reserved openSeaChest_Erase Version: 4.3.6-6_2_0 X86_64 Build Date: Dec 1
2023 Today: Fri Dec 1 15:18:13 2023 User: current user
==========================================================================================
Usage =====
- openSeaChest_Erase [-d <sg_device>] {arguments} {options}
Examples ========
- 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 Found 1 = Error in command line
options 2 = Invalid Device Handle or Missing Device Handle 3 = Operation
Failure 4 = Operation not supported 5 = Operation Aborted 6 = File Path
Not Found 7 = Cannot Open File 8 = File Already Exists 9 = Need Elevated
Privileges ---openSeaChest_Erase specific exit codes--- 32 = Zero
Validation Failure Anything else = unknown error
Utility Options ===============
--echoCommandLine
- Echo the command line entered into the utility on the screen.
--enableLegacyUSBPassthrough
- Only use this option on old USB or IEEE1394 (Firewire) products that do
not otherwise work with the tool. This option will enable a trial and
error method that attempts sending various ATA Identify commands through
vendor specific means. Because of this, certain products that may respond
in unintended ways since they may interpret these commands differently
than the bridge chip the command was designed for.
--forceATA
- Using this option will force the current drive to be treated as a ATA
drive. Only ATA commands will be used to talk to the drive.
- --forceATADMA
- (SATA Only)
- Using this option will force the tool to issue SAT commands to ATA device
using the protocol set to DMA whenever possible (on DMA commands). This
option can be combined with --forceATA
- --forceATAPIO
- (SATA Only)
- Using this option will force the tool to issue PIO commands to ATA device
when possible. This option can be combined with --forceATA
- --forceATAUDMA
- (SATA Only)
- Using this option will force the tool to issue SAT commands to ATA device
using the protocol set to UDMA whenever possible (on DMA commands). This
option can be combined with --forceATA
--forceSCSI
- Using this option will force the current drive to be treated as a SCSI
drive. Only SCSI commands will be used to talk to the drive.
-h, --help
- Show utility options and example usage (this output you see now) Please
report bugs/suggestions to seaboard@seagate.com. Include the output of
--version information in the email.
--hideLBACounter
- Use this option to suppress the output from options that show LBA counters
without turning off all output to the screen.
--license
- Display the Seagate End User License Agreement (EULA).
--modelMatch [model Number]
- Use this option to run on all drives matching the provided model number.
This option will provide a closest match although an exact match is
preferred. Ex: ST500 will match ST500LM0001
--noBanner
- Use this option to suppress the text banner that displays each time
openSeaChest is run.
--onlyFW [firmware revision]
- Use this option to run on all drives matching the provided firmware
revision. This option will only do an exact match.
--onlySeagate
- Use this option to match only Seagate drives for the options provided
-q, --quiet
- Run openSeaChest_Erase in quiet mode. This is the same as -v 0 or
--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 3 or
--verbose 3
-V, --version
- Show openSeaChest_Erase version and copyright information & exit
Utility Arguments =================
-d, --device [deviceHandle | all]
- Use this option with most commands to specify the device handle on which
to perform an operation. Example: /dev/sg<#> 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]
- This option will read and display the contents of the specified LBA to the
screen. The display format is hexadecimal with an ASCII translation on the
side (when available).
-F, --scanFlags [option list]
- Use this option to control the output from scan with the options listed
below. Multiple options can be combined.
- 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
-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 (%)
- 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 (default). You must specify a test you wish to get progress from.
Ex: "--progress dst" or "--progress sanitize" The
progress counts up from 0% to 100%.
-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 wait 10 seconds and
run it again.
-S, --Scan
- This option is the same as --scan or -s, however 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
- Use this option
- to issue a fast scan on the specified drive.
--hours [hours]
- Use this option to specify a time in hours for a timed operation to
run.
--minutes [minutes]
- Use this option to specify a time in minutes for a timed operation to
run.
--seconds [seconds]
- Use this option to specify a time in seconds for a timed operation to
run.
--eraseRestoreMaxPrep
- This option will attempt to restore the max LBA to the highest user
addressable sector prior to beginning a drive erasure. If any failure is
encountered while restoring the maxLBA, then an error will be indicated
and the erase will not be started or attempted until other user
intervention can be completed. If a feature is frozen, locked, or has
already been used during the current power cycle, then these things can
cause a failure. The solution is to power cycle the drive, but in some
cases it may be necessary to try a different computer or adapter as
commands may be blocked by the system or automatically issued by the BIOS
to lock access to capacity changing commands. This option will handle the
ATA HPA (Host Protected Area), AMAC (Accessible Max Address
Configuration), HPA Security Extension, and DCO (Device Configuration
Overlay) features in accordance with the specifications. If the restore
completes without error, then the erase will proceed and additional errors
will only be in relation to those erasure methods.
--showEraseSupport
- This option checks the drive to determine which methods of data erasure
are supported and lists them, 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 option to verify drive content, whether it's set to zero or not.
This operation will read user accessible address and validate if 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 option can be used to force enable or disable using the ATA security
protocol as specified in the SAT specification. By default, the tool will
use this method when it is supported to allow the SATL to understand and
manage the security commands being performed and prevent other
issues.
- --ataSecPassword
["ASCII password" | SeaChest | empty]
- (SATA only)
- Use this option to specify a password to use with an ATA security
operation. If specifying a password with spaces, quotes must be used. If
SeaChest is given, the default SeaChest password will be used. If empty is
given, an empty password will be used. Examples:
- "This is a valid password" ThisIsAlsoValid "This password
uses \"quotes\" "This password is \/\/eird"
- --ataSecPassType
[user | master]
- (SATA only)
- Use this option to specify if the password being given with the
--ataSecPassword option is a user or a master password. If this
option is not provided, user is assumed.
--ataSecPWMod [byteswapped | zeropad | spacepad | fpad |
leftAlign | rightAlign | uppercase | lowercase | invertcase] (SATA Only)
- Use this option to have the utility make modifications to the ATA security
password to attempt other various ways it may be sent by a system bios.
These are not guaranteed to work, but may help unlock a drive that was
locked by a BIOS that encoded the password in a unique way. This option
can be presented multiple times to select multiple modificaitons. EX:
--ataSecPWMod byteswapped --ataSecPWMod invertcase
- byteswapped - byteswaps the password. EX: blah -> lbha zeropad - zero
pads the password if less than 32 characters spacepad - space pads the
password if less than 32 characters fpad - pads the passwords with Fh (all
1's) if less than 32characters leftAlign - left aligns the password in the
buffer rightAlign - right aligns the password in the buffer uppercase -
sends the password as all uppercase lowercase - sends the password as all
lowercase invertcase - 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 in
- order to allow the drive to erase all user addressable sectors. For ATA
devices this means restoring HPA + DCO / AMAC to restore the maxLBA.
Restoring the MaxLBA also allows full verification of all user addressable
space on the device without a limitation from 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. =========================
- --overwrite
[starting LBA]
- (Clear)
- Use this option to start an overwrite erase at the specified starting LBA.
Combine this option with overwriteRange or time options (hours, minutes
seconds) to erase a portion of the drive.
- --overwriteRange
[range in # of LBAs]
- (Clear)
- Use with the overwrite option (--overwrite) to erase a range of
LBAs on the selected drive.
--pattern [repeat:asciinospaces | random |
increment:startValue | file:filename]
- Use this option with overwrite, sanitize, and format unit operations to
write a specific pattern to a range of LBAs or the whole drive.
- * repeat - without spaces, enter an ASCII text string or a hexadecimal
string terminated by a lower case "h". This pattern will be
repeated until it fills the logical size of the LBA. i.e. helloword or
FFFFFFFFh 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: 1F037AC8h or 0000FFFFh * random - 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
- This option checks the drive to determine which methods of data erasure
are supported and determines which is the quickest to erase ALL data on
the drive. It then starts the quickest erase. Combine this option with the
--poll option 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 revertSP is 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)
- Use the info argument to show supported sanitize operations. Optionally,
use blockerase, cryptoerase, or overwrite to start a sanitize operation.
Adding the --poll option will cause openSeaChest_Erase to poll the
drive for progress until the operation is complete, or has aborted for
some reason. All sanitize erase operations are persistent across a power
cycle and cannot be stopped Example: --sanitize blockerase
--poll
- * blockerase on some solid state drives is very fast at less than one (1)
second, while others may take more that 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 is very fast at less than one (1) second. It changes the
internal encryption keys that are used for user data causing all previous
data to be useless.
- * overwrite is a physical overwrite on all current, past, and potential
user data. The ATA and SCSI specifications allow a user defined pattern
and multiple passes. openSeaChest_Erase will use a zero pattern and a
single pass for this operation.
- * 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.
- * 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.
- WARNING: Sanitize
may affect all LUNs/namespaces for devices
- with multiple logical units or namespaces.
--trim or --unmap [starting LBA]
- Use one of these options 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 or --unmapRange [range in # of
LBAs]
- Use one of these options to specify a range to trim or unmap on a drive. A
starting point must be specified with the --trim/--unmapRange
option.
- --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 the writesame16 command. On ATA
devices, this uses the SCT writesame feature. Combine this option with the
writeSameRange option 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 the writeSame option
in order to begin a write same operation.
- 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 at 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.
- SAS Only: ========= --fastFormat [fast format mode] (SAS Only)
(SBC4 required)
- Use this option with the --formatUnit option 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.
?[49m?[38;5;9m 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.
- 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.
?[49m?[38;5;11m 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.
?[0m --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 --poll to 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 like 4K or 512B due to these customer
requirements.
- NVMe Only: ========= --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.
- Utility Version: 4.3.6 opensea-common Version: 2.0.0 opensea-transport
Version: 6.2.0 opensea-operations Version: 5.1.1 Build Date: Dec 1 2023
Compiled Architecture: X86_64 Detected Endianness: Little Endian Compiler
Used: GCC Compiler Version: 7.5.0 Operating System Type: Linux Operating
System Version: 4.15.0-211 Operating System Name: Ubuntu 18.04.6 LTS