OPENSEACHEST_RAW(1)

NAME
openSeaChest_Raw - manual page for openSeaChest_Raw ==========================================================================================

DESCRIPTION
==========================================================================================

    openSeaChest_Raw - openSeaChest drive utilities - NVMe Enabled Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Raw Version: 26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144117 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 10 = Not enough resources 11 = Error Writing File 12 = Device not found when opening handle. 13 = Device not opened. Handle is busy. 14 = Insecure Directory to read or write file 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.

B - length in bytes (val * 1) (default if no unit given)
    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.

B - length in bytes (val * 1) (Default if no unit given)
    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-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved openSeaChest_Raw Version: 26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144117 User: current user

========================================================================================== Version Info for openSeaChest_Raw:

    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_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.