openSeaChest_Raw - manual page for openSeaChest_Raw
==========================================================================================
==========================================================================================
- openSeaChest_Raw - openSeaChest drive utilities - NVMe Enabled Copyright
(c) 2014-2024 Seagate Technology LLC and/or its Affiliates, All Rights
Reserved openSeaChest_Raw Version: 0.9.0-8_0_1 X86_64 Build Date: Sep 19
2024 Today: 20240925T133707 User: current user
==========================================================================================
Usage =====
- openSeaChest_Raw [-d <sg_device>] {arguments} {options}
Examples ========
- openSeaChest_Raw --scan openSeaChest_Raw -d /dev/sg<#>
-i Identify device:
- -d /dev/sg<#>
--dataDir in
- --dataLen 512 --outputFile ID_dev.bin --tfrByteBlock
512 --tfrProtocol pio --tfrSize 28 --command ECh
--tfrXferLengthReg sectorCount --sectorCount 1
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 Anything else = unknown error
Utility Options ===============
--csmiIgnorePort (Obsolete)
- This option is obsolete and will be removed in future versions.
--csmiUsePort (Obsolete)
- This option is obsolete and will be removed in future versions.
--csmiVerbose (Obsolete)
- This option is obsolete and will be removed in future versions.
--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.
--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_Raw 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_Raw 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<#> 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.
-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 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
-i, --deviceInfo
- Show information and features for the storage device
-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.
--dataDir [in | out | none]
- Use this option to specify the data direction of the entered raw command.
in - transfer data from the device to host out - transfer data from the
host to device none - no data is transferred
--dataLen [length in bytes]
- Use this option to specify the data transfer length for a data-in or
data-out transfer. The following post fixes are allowed for specifying a
transfer length:
- BLOCKS - used to specify a
transfer length
- in device logical blocks. (Preferred)
- KB - length in kilobytes (val *
1000)
- KiB - length in kibibytes (val * 1024) MB - length in megabytes (val *
1000000) MiB - length in mebibytes (val * 1048576)
- You must enter a size that is greater than or equal to any length in the
entered raw command data. If a lesser value is entered, then the utility
may experience errors or crash.
--inputFile [path/filename]
- Use this option to specify an input file to send to a device. Must be a
binary file.
--inputOffset [offset in bytes]
- Use this option to specify the offset within the raw input file to start
sending data from. The following post fixes are allowed for specifying a
transfer length:
- BLOCKS - used to
specify an offset length
- in device logical blocks. (Preferred)
- KB - length in kilobytes (val
* 1000)
- KiB - length in kibibytes (val * 1024) MB - length in megabytes (val *
1000000) MiB - length in mebibytes (val * 1048576)
--outputFile [path/filename]
- Use this option to specify an output file to save data returned from a
command, or in the case of an error, the returned error buffer. This
option will always append data to already created files. If an error
occurs on a datain raw command, the returned error data will not be saved
to a file to prevent adding unexpected data to the created file.
--timeout [time in seconds]
- Use this option to specify an timeout in seconds for a raw command being
sent to a device.
- SATA Only: ========= --aux1 [hex or decimal] (SATA Only)
- Use this option to specify the Aux (7:0) register for sending a raw SATA
command. The value should be specified in hex as ??h or 0x?? or as a
decimale value NOTE: Not all interfaces support setting this register. 32B
SAT CDB required.
--aux2 [hex or decimal] (SATA Only)
- Use this option to specify the Aux (15:8) register for sending a raw SATA
command. The value should be specified in hex as ??h or 0x?? or as a
decimale value NOTE: Not all interfaces support setting this register. 32B
SAT CDB required.
--aux3 [hex or decimal] (SATA Only)
- Use this option to specify the Aux (23:16) register for sending a raw SATA
command. The value should be specified in hex as ??h or 0x?? or as a
decimale value NOTE: Not all interfaces support setting this register. 32B
SAT CDB required.
--aux4 [hex or decimal] (SATA Only)
- Use this option to specify the Aux (31:24) register for sending a raw SATA
command. The value should be specified in hex as ??h or 0x?? or as a
decimale value NOTE: Not all interfaces support setting this register. 32B
SAT CDB required.
- --auxFull [hex or
decimal]
- (SATA Only)
- Use this option to specify the Aux (31:0) registers for sending a raw SATA
command. This will be interpretted as a 32bit value. The value should be
specified in hex as ??h or 0x?? or as a decimale value NOTE: Not all
interfaces support setting these registers. 32B SAT CDB required.
- --command [hex or
decimal]
- (SATA Only)
- Use this option to specify the command operation code for sending a raw
SATA command. The value should be specified in hex as ??h or 0x?? or as a
decimale value
- --deviceHead
[hex or decimal]
- (SATA Only)
- Use this option to specify the Device/Head register for sending a raw SATA
command. If this option is not provided, a value of A0h will be used for
backwards compatibility with older ATA command specifications. NOTE: This
option should be specified BEFORE the --lbaMode option NOTE: On
28bit read/write commands, the high 4 bits of the LBA register need to
be
- placed in the lower 4 bits of this register.
- The value should be specified in hex as ??h or 0x?? or as a decimale
value
- --feature [hex or
decimal]
- (SATA Only)
- Use this option to specify the feature register for sending a raw SATA
command. (Lower 8 bits on 48 bit commands) The value should be specified
in hex as ??h or 0x?? or as a decimale value
- --featureExt
[hex or decimal]
- (SATA Only)
- Use this option to specify the feature ext register for sending a raw SATA
command. (Upper 8 bits on 48 bit commands) The value should be specified
in hex as ??h or 0x?? or as a decimale value
- --featFull [hex
or decimal]
- (SATA Only)
- Use this option to specify the feature and feature ext register for
sending a raw SATA command. This will be interpretted as a 16bit value.
The value should be specified in hex as ??h or 0x?? or as a decimale
value
- --icc [hex or
decimal]
- (SATA Only)
- Use this option to specify the ICC register for sending a raw SATA
command. The value should be specified in hex as ??h or 0x?? or as a
decimale value NOTE: Not all interfaces support setting this register. 32B
SAT CDB required.
- --fullLBA [hex or
decimal]
- (SATA Only)
- Use this option to specify the LBA registers for sending a raw SATA
command. This will be interpretted as a 48 bit value to put into the
appropriate LBA registers. This option is more useful when specifying an
LBA value for a command like a read or a write. The value should be
specified in hex as ??h or 0x?? or as a decimale value
- --lbaHigh [hex or
decimal]
- (SATA Only)
- Use this option to specify the LBA high (Cylinder High) register for
sending a raw SATA command. The value should be specified in hex as ??h or
0x?? or as a decimale value
- --lbaHighExt
[hex or decimal]
- (SATA Only)
- Use this option to specify the LBA high ext (Cylinder High) ext register
for sending a raw SATA command. This is for 48 bit commands. The value
should be specified in hex as ??h or 0x?? or as a decimale value
- --lbaLow [hex or
decimal]
- (SATA Only)
- Use this option to specify the LBA low (sector number) register for
sending a raw SATA command. The value should be specified in hex as ??h or
0x?? or as a decimale value
- --lbaLowExt
[hex or decimal]
- (SATA Only)
- Use this option to specify the LBA low ext (sector number ext) register
for sending a raw SATA command. This is for 48 bit commands. The value
should be specified in hex as ??h or 0x?? or as a decimale value
- --lbaMode
- (SATA Only)
- Use this option to set the LBA Mode bit of the Device/Head register for
sending a raw SATA command. This bit is necessary for performing
read/write commands on modern drives. NOTE: This bit will NOT be set by
default since it only applies to read/write commands
- but not all other commands in the ATA specifications.
- --lbaMid [hex or
decimal]
- (SATA Only)
- Use this option to specify the LBA mid (Cylinder Low) register for sending
a raw SATA command. The value should be specified in hex as ??h or 0x?? or
as a decimale value
- --lbaMidExt
[hex or decimal]
- (SATA Only)
- Use this option to specify the LBA mid ext (Cylinder Low ext) register for
sending a raw SATA command. This is for 48 bit commands. The value should
be specified in hex as ??h or 0x?? or as a decimale value
- --sectorCount
[hex or decimal]
- (SATA Only)
- Use this option to specify the sector count register for sending a raw
SATA command. (Lower 8 bits on 48 bit commands) The value should be
specified in hex as ??h or 0x?? or as a decimale value
- --sectorCountExt
[hex or decimal]
- (SATA Only)
- Use this option to specify the sector count ext register for sending a raw
SATA command. (Upper 8 bits on 48 bit commands) The value should be
specified in hex as ??h or 0x?? or as a decimale value
- --sectFull [hex
or decimal]
- (SATA Only)
- Use this option to specify the sector count and sector count ext register
for sending a raw SATA command. This will be interpretted as a 16bit
value. The value should be specified in hex as ??h or 0x?? or as a
decimale value
--tfrByteBlock [512 | logical | bytes | nodata] (SATA
Only)
- Use this option to specify the data transfer length being sent or received
when issuing a raw SATA command. This option must match the definition of
the command in the ATA/ACS specification. This option must be provided
before a command will be sent. Arguments:
- 512 - the data transfer is a number of 512B blocks (most commands) logical
- data transfer is a number of logical block sizes transfers (read
commands) bytes - the data transfer is a specific number of bytes (some
legacy commands or tpsiu is used) nodata - no data transfer. Used on
non-data protocol commands
- NOTE: All read/write commands should use "logical", all other
data transfers should use 512
--tfrProtocol [pio | dma | udma | fpdma | ncq | nodata |
reset | dmaque | diag] (SATA Only)
- Use this option to specify the protocol for sending a raw SATA command.
This option must match the definition of the command in the ATA/ACS
specification. This option must be provided before a command will be sent.
Arguments:
- pio - send as programmed IO protocol. dma - send as direct memory access
protocol udma - send as ultra direct memory access protocol fpdma/ncq -
send as first party direct memory access protocol (NCQ) nodata - send as
non-data protocol reset - send as reset protocol (ATAPI only) dmaque -
send as direct memory access queued protocol (TCQ) diag - send as devie
diagnostic protocol
- NOTE: If a command with dma doesn't work, try udma. Some SATLs like it
better. NOTE: Most SATLs don't allow sending queued commands as
pass-through. Some OSs
- also will not allow queued pass-through commands.
--tfrSetChkCond (SATA Only)
- Use this option to set the check condition bit in the SAT CDB that may be
sent to a translator to inform it to generate a check condition and return
all task file results. NOTE: This option may not work on all SATLs.
- --tfrSize [28 |
48 | complete]
- (SATA Only)
- Use this option to specify the command type: 28bit or 48bit when issuing a
raw SATA command. This option must match the definition of the command in
the ATA/ACS specification. This option must be provided before a command
will be sent. Arguments:
- 28 - the command is a 28 bit command (ex: identify, SMART) 48 - the
command is a 48 bit command (ex: read DMA ext, read log ext) complete - 48
bit command that also sets ICC or AUX registers.
- use this to force a 32B CDB. If
specifying 48 and AUX or ICC
- are set, 32B CDB will automatically be generated without needing this
option explicitly set.
- NOTE: complete TFR requires
SAT 32B cdb, which many devices or interfaces
- may not support. These commands may not be available.
- --tfrXferLengthReg
[sectorCount | feature | tpsiu | nodata]
- (SATA Only)
- Use this option to specify the registers used to specify the length of
data being sent or received when issuing a raw SATA command. This option
must match the definition of the command in the ATA/ACS specification.
This option must be provided before a command will be sent.
Arguments:
- sectorCount - the sector count registers specify the number of blocks
(most commands) feature - the feature registers specify the number of
blocks (queued commands) tpsiu - a transport specific location will
specify the length of the data transfer nodata - no data transfer. Used on
non-data protocol commands
- NOTE: tpsiu is generally
only seen supported on USB adapters, but not all USB SATL's
- will recognize this option.
- NOTE: For commands, such
as identify (ECh), that transfer data, but do not specify
- a value of 1 in the sector count, it is recommended that this is added to
the sector count register and and "sectorCount" is used for
better compatibility with various SATLs.
- SAS Only: ========= --cdb [csv CDB]
- Use this option to specify a specific CDB to send to a device. The entered
value must be in comma separated value (csv) format. To specify a value as
hex, it must be either pre-pended with "0x" or post-pended with
"h" or "H" Examples:
- 1) inquiry: --cdb 12h,0,0,0,60h,0
- 2) inquiry: --cdb 0x12,0,0,0,0x60,0 3) inquiry: --cdb
18,0,0,0,96,0
- All 3 examples send the same command to a drive
--cdbLen [length in bytes]
- Use this option to specify the length of the CDB to send to the device.
Max length is 255 Some OS's may not support CDBs larger than 16 bytes
- openSeaChest_Raw - openSeaChest drive utilities - NVMe Enabled Copyright
(c) 2014-2024 Seagate Technology LLC and/or its Affiliates, All Rights
Reserved openSeaChest_Raw Version: 0.9.0-8_0_1 X86_64 Build Date: Sep 19
2024 Today: 20240925T133707 User: current user
==========================================================================================
Version Info for openSeaChest_Raw:
- Utility Version: 0.9.0 opensea-common Version: 4.1.0 opensea-transport
Version: 8.0.1 opensea-operations Version: 8.0.2 Build Date: Sep 19 2024
Compiled Architecture: X86_64 Detected Endianness: Little Endian Compiler
Used: GCC Compiler Version: 11.4.0 Operating System Type: Linux Operating
System Version: 5.15.153-1 Operating System Name: Ubuntu 22.04.4 LTS
The full documentation for openSeaChest_Raw is maintained
as a Texinfo manual. If the info and openSeaChest_Raw programs
are properly installed at your site, the command
- info openSeaChest_Raw
should give you access to the complete manual.