OPENSEACHEST_BASICS(1)
πΈ NAME πΈ
openSeaChest_Basics β no cap, this is the manual page for openSeaChest_Basics π
π¦ DESCRIPTION π¦
Bestie. Sit down. This is the openSeaChest drive utilities tool, and it is NVMe Enabled β¨
Here's the literal banner it greets you with:
openSeaChest_Basics - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
openSeaChest_Basics Version: 26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144113 User: current user
Usage
The whole vibe in one line:
openSeaChest_Basics [-d <sg_device>] {arguments} {options}
Examples
These are the receipts, fr fr β copy them exactly, <#> means you swap in your own number:
openSeaChest_Basics --scan
openSeaChest_Basics -d /dev/sg<#> -i
openSeaChest_Basics -d /dev/sg<#> --SATInfo
openSeaChest_Basics -d /dev/sg<#> --llInfo
openSeaChest_Basics -d /dev/sg<#> --smartCheck
openSeaChest_Basics -d /dev/sg<#> --shortDST --poll
openSeaChest_Basics -d /dev/sg<#> --abortDST
openSeaChest_Basics -d /dev/sg<#> --checkPowerMode
openSeaChest_Basics -d /dev/sg<#> --spinDown
openSeaChest_Basics -d /dev/sg<#> --testUnitReady
openSeaChest_Basics -d /dev/sg<#> --smartAttributes hybrid
openSeaChest_Basics -d /dev/sg<#> --showConcurrentRanges
openSeaChest_Basics -d /dev/sg<#> --readyLED info
openSeaChest_Basics -d /dev/sg<#> --readyLED on
openSeaChest_Basics -d /dev/sg<#> --phySpeed 2
openSeaChest_Basics -d /dev/sg<#> --phySpeed 3 --sasPhy 1
openSeaChest_Basics -d /dev/sg<#> --readLookAhead info
openSeaChest_Basics -d /dev/sg<#> --readLookAhead enable
openSeaChest_Basics -d /dev/sg<#> --writeCache info
openSeaChest_Basics -d /dev/sg<#> --writeCache disable
openSeaChest_Basics -d /dev/sg<#> --downloadFW firmwareFile.bin
openSeaChest_Basics -d /dev/sg<#> --downloadFW firmwareFile.bin --downloadMode deferred --activateFW
openSeaChest_Basics -d /dev/sg<#> --displayLBA 1000
openSeaChest_Basics -d /dev/sg<#> --overwrite 0
openSeaChest_Basics -d /dev/sg<#> --overwrite 1000 --overwriteRange 2000
openSeaChest_Basics -d /dev/sg<#> --overwrite 0 --hours 1
openSeaChest_Basics -d /dev/sg<#> --trim 0
openSeaChest_Basics -d /dev/sg<#> --trim 1000 --trimRange 2000
openSeaChest_Basics -d /dev/sg<#> --provision 134217728
openSeaChest_Basics -d /dev/sg<#> --setMaxLBA 134217728
openSeaChest_Basics -d /dev/sg<#> --setMaxLBA 134217728 --changeIdString
openSeaChest_Basics -d /dev/sg<#> --restoreMaxLBA
openSeaChest_Basics -d /dev/sg<#> --capacityModelNumberMapping
Return codes
When the tool exits, it tells you how it went. Here's the whole translate-this-for-me list:
Generic/Common exit codes:
0= No Error Found β¨1= 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
Anything else = unknown error π
π Utility Options π
The obsolete girlies (don't get attached, they're leaving)
--csmiIgnorePort(Obsolete) β babe this option is obsolete and will be removed in future versions.--csmiUsePort(Obsolete) β same story, obsolete, getting removed in future versions.--csmiVerbose(Obsolete) β yep, obsolete, will be removed in future versions.
The rest of them
--echoCommandLineβ repeats the command line you typed back onto your screen. Nice for screenshots and receipts πΈ--enableLegacyUSBPassthroughβ only use this on old USB or IEEE1394 (Firewire) products that just won't work with the tool any other way. 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 the 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 the ATA device when possible. Can be combined with--forceATA.--forceATAUDMA(SATA Only) β forces the tool to issue SAT commands to the 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--versioninformation in the email π§--hideLBACounterβ suppresses the output from options that show LBA counters, without turning off all screen output.--hours [hours]β specify a time in hours for a timed operation to run.--licenseβ displays the Seagate End User License Agreement (EULA).--modelMatch [model Number]β runs on all drives matching the provided model number. It'll give you a closest match, although an exact match is preferred. Ex:ST500will matchST500LM0001--minutes [minutes]β specify a time in minutes for a timed operation to run.--onlyFW [firmware revision]β runs on all drives matching the provided firmware revision. This one only does an exact match.--noTimeLimitβ use with utility command arguments that have a built in timeout value. For example,--shortDSThas a 10 minute default timeout. In some cases a good drive may need more time to complete the test due to other legitimate system activity.--noBannerβ suppresses the text banner that displays every time openSeaChest is run.--onlySeagateβ matches only Seagate drives for the options provided.-q,--quietβ runsopenSeaChest_Basicsin quiet mode. Same as-v 0or--verbose 0.--seconds [seconds]β specify a time in seconds for a timed operation to run.-v [0-4],--verbose [0 | 1 | 2 | 3 | 4]β shows verbose information. Verbosity levels are:0- quiet,1- default,2- command descriptions,3- command descriptions and values,4- command descriptions, values, and data buffers. Example:-v 3or--verbose 3-V,--versionβ showsopenSeaChest_Basicsversion and copyright information & exit π
π Utility Arguments π
-s,--scanβ scans the system and lists 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 β³-F,--scanFlags [option list]β controls the output from scan with the options listed below. Multiple options can be combined. The options are: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
-S,--Scanβ same as--scanor-s, BUT it also performs a low level rescan to pick up other devices. Heads up: this low level rescan may wake devices from low power states and may cause the OS to re-enumerate them π΄ Use it 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.-d,--device [deviceHandle | all]β use 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 theallargument instead of a device handle. Example:-d allNOTE: Theallargument 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.-i,--deviceInfoβ show information and features for the storage device.--llInfoβ dumps low-level information about the device to assist with debugging π--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, plus a human readable translation from the SPC spec if one is available.--fastDiscoveryβ use this option to issue a fast scan on the specified drive πββοΈ--capacityModelNumberMappingβ use this option to display the capacity model number mapping. TBD.--changeIdString
So this option lets you change the ID string to match capacity-to-model-number mapping. You gotta use it together with --setMaxLBA or --restoreMaxLBA tho. π
--checkPowerModeβ pulls up the current power mode of a drive. On SCSI devices, it only works if the drive has already dipped from active state into another state. π€--displayLBA [LBA]β reads and shows you the contents of the LBA you specify, right on your screen. The format is hexadecimal with ASCII translation on the side (when it's available). π--activateFWβ sends the command to activate code that was previously sent to the drive via a deferred download command. It immediately activates the new code on the drive. You can pair this with--downloadFW&--downloadModeto automatically fire off the activate command right after the download finishes. π
WARNING: Activating firmware might affect all LUNs/namespaces on devices with multiple logical units or namespaces. So like, heads up. β οΈ
--downloadFW [firmware_filename]β downloads firmware to a Seagate storage product. Only use firmware data files that are authorized by the device manufacturer and designated for that specific model drive. Using this wrong can harm your device and/or its data. You can specify the path (no spaces!) if the firmware file is somewhere else. By default, this option uses auto mode to pick the best method for updating the drive firmware. Use--downloadModeto choose a different download mode. π₯
WARNING: Firmware updates might affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
--downloadMode [ auto | full | segmented | deferred | deferred+activate ]β use this with--downloadFWto set the firmware download mode. Here are the supported modes:autoβ automatically figures out the best mode for the firmware update.fullβ does a download in one big transfer to the device.segmentedβ downloads firmware in multiple segments to the device. (Most compatible!)deferredβ does a segmented download but doesn't activate the new firmware until a power cycle or activate command is sent.deferred+activateβ does a deferred download and automatically activates it for you. Similar to how a segmented download works but uses a separate activate command. This is the recommended mode that"auto"will pick when possible for maximum compatibility with Windows 10 and later operating systems. β¨
WARNING: Firmware updates might affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
--fwdlIgnoreFinalSegmentβ only use this when doing firmware updates on legacy products. It ignores a failing error code from the OS on the final segment of a firmware update, even though the update actually succeeded. This is a workaround for hardware or firmware limitations that existed in some old products. π¦--shortDSTβ runs a short diagnostic drive self test. This can take up to 2 minutes. Use the--pollargument to make it poll for progress until it's done. Use the--progress dstcommand to check the completion percentage (%) and test result. π
NOTE: Short DST might take longer if there's other disk usage while it's running. If it goes over 10 minutes, it'll automatically abort while polling for progress. To override this, use the --noTimeLimit option. β³
--pollβ makes another operation poll for progress until it's complete. 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--sanitizeor--writeSame(SATA). π°οΈ--progress [dst]β gets the progress for a test that was started quietly without the polling option (that's the default). You have to specify which test you want progress for. Ex:"--progress dst"or"--progress sanitize"The progress counts up from 0% to 100%. π--abortDSTβ aborts a diagnostic Drive Self Test that's in progress. β--phySpeed [0 | 1 | 2 | 3 | 4 | 5]β changes the PHY speed to a new maximum value. On SAS, this sets all phys to the specified speed unless you use--sasPhyto pick a specific phy. Here's the mapping:0β allow full negotiation (default drive behavior)1β allow negotiation up to 1.5Gb/s2β allow negotiation up to 3.0Gb/s3β allow negotiation up to 6.0Gb/s4β allow negotiation up to 12.0Gb/s (SAS Only)5β allow negotiation up to 22.5Gb/s (SAS Only)
NOTE: SATA phy speed changes are only available on Seagate drives. π
WARNING: Check the minimum phy speed supported by your adapter before using this option. If the phy speed is below the adapter's capability, the drive won't be seen by the adapter or the OS. π±
WARNING: Changing Phy speed may affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
--readLookAhead [info | enable | disable]β turns read look-ahead support on or off on a drive. Use the"info"argument to get the current status of the read look-ahead feature. π
WARNING: Changing Read look-ahead may affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
--restoreMaxLBAβ restores the max accessible address of your drive back to its native size. You must power cycle after this command before setting a new max LBA. π--setMaxLBA newMaxLBAβ sets the max accessible address of your drive to any value less than the device's default native size. You must power cycle after this command before resetting or setting a new max LBA. π§--showConcurrentRangesβ displays the concurrent positioning ranges supported by a device. These ranges tell you which actuator is used for a given range in LBA space. π―--smartCheckβ runs a SMART check on a device to see if any internal thresholds have been tripped or if the drive is still operating within spec. π©Ί--spinDownβ cuts power to the disk drive motor using the Standby Immediate command. Use this before moving a hard disk drive. The drive will spin back up if the OS selects it. So an active drive won't stay spun down. π€
WARNING: Spindown may affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
--writeCache [info | enable | disable]β enables or disables write cache support on a drive. Use the"info"argument to get the current status of the write cache feature. βοΈ
WARNING: Changing Write Cache may affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
SATA Only π
--smartAttributes [raw | hybrid | analyzed](SATA Only) β the drive will display its list of supported SMART attributes. Some attribute names are commonly standard, but most others are vendor unique. In either case, the attribute thresholds are always vendor unique. Most attributes are informational and not used to determine a warranty return. Use the--smartCheckcommand to see if one of the warranty attributes has been tripped. Seagate Support does not help analyze SMART attributes. Output modes:rawβ all hex output for those who need every single bit.hybridβ classic table view with some interpretation of some fields. Partial raw interpretation, but not all drive and firmware combinations are supported.analyzedβ a full breakdown of all parts of each individual attribute's data. Full raw data interpretation is only available on select devices.
NOTE: Migration to device statistics is recommended. π
SAS Only π¦
--readyLED [info | on | off | default](SAS Only) β gets the current state or changes the behavior of the ready LED. See the SPL spec for full details on how this changes the LED.infoβ gets the current state of the ready LED.onβ sets the ready LED to usually off unless processing a command.offβ sets the ready LED to usually on unless processing a command.defaultβ sets the ready LED to the drive's default value.
WARNING: The EPC settings may affect all LUNs/namespaces on devices with multiple logical units or namespaces. β οΈ
--sasPhy [phy number](SAS Only) β specifies a specific phy to use with another option that uses a phy identifier value. Some tool options will assume all SAS Phys when this option isn't present. Others will produce an error when a specific phy is needed for an operation. Use the-ioption to learn more about the supported phys. π
Data Destructive Commands π
--overwrite [starting LBA](Clear) β starts an overwrite erase at the specified starting LBA. Combine this withoverwriteRangeor time options (hours, minutes, seconds) to erase just a portion of the drive. π§Ή--overwriteRange [range in # of LBAs](Clear) β use with the--overwriteoption to erase a range of LBAs on the selected drive. π--provision newMaxLBAβ provisions your drive to a new max LBA, any value less than the device's current max LBA. You must power cycle after this command before resetting the max LBA or changing provisioning again. This command erases all data between the newmaxLBAspecified and the currentmaxLBAof the device, using a TRIM/UNMAP command. ποΈ--trimor--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. βοΈ--trimRangeor--unmapRange [range in # of LBAs]β the range option for--trim/--unmap. π
okay bestie, so for real β these next options are how you tell openSeaChest exactly where on a drive you wanna trim or unmap. π
Use one of these options to give it the range to trim or unmap on a drive.
π¨ But listen β a starting point has to be specified with the--trim/--unmapRangeoption, or it's just gonna sit there confused. fr fr. π
π«Ά Version Info Vibes β Version Info for openSeaChest_Basics π«Ά
Not me dropping the whole birth certificate of this utility, but here's literally everything it reports about itself: π
openSeaChest_Basicsβ openSeaChest drive utilities - NVMe Enabled- Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
openSeaChest_BasicsVersion:26.03.2X86_64- Build Date:
May 18 2026 - Today:
20260605T144113 - User:
current user
π Version Info for openSeaChest_Basics: π
- 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_Basics is kept as a Texinfo manual, bestie. πβ¨ If the info and openSeaChest_Basics programs are properly installed at your site, this command
info openSeaChest_Basics
should give you access to the complete manual. no cap, that's the whole lore drop. π¦
And that's a wrap on openSeaChest_Basics, born from the Seagate crew, dated June 2026, filed under OPENSEACHEST_BASICS(1). go slay some drives, bestie ππΈ
π¦ 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