OPENSEACHEST_DEFECT(1)

πŸ“¦
version 26.03.2 Β· 3 versions
, in nixpkgs unstable, ubuntu stonking

✨ openSeaChest_Defect(1) ✨

okay bestie, come sit with me πŸ’– you're holding the manual page for openSeaChest_Defect, and I am so excited to walk you through it. it's a whole drive utility. it's giving main character energy. let's go πŸ¦‹


🌸 NAME 🌸

openSeaChest_Defect β€” manual page for openSeaChest_Defect


πŸ’œ DESCRIPTION πŸ’œ

okay so first things first, the banner you get when you run this thing, and yes it's literally this:

openSeaChest_Defect - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its
Affiliates, All Rights Reserved openSeaChest_Defect Version:
26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144114
User: current user

like. the details. the lore. πŸ’…


πŸŽ€ Usage πŸŽ€

here's the shape of it, no cap:

openSeaChest_Defect [-d <sg_device>] {arguments} {options}

πŸŽ€ Examples πŸŽ€

the iconic trio, memorize these fr fr:

openSeaChest_Defect --scan openSeaChest_Defect -d /dev/sg<#> -i
openSeaChest_Defect -d /dev/sg<#> --reallocateBlocks
123Fh,597,1467,0xA1295323

πŸŽ€ Return codes πŸŽ€

when the tool is done it tells you how it went. the generic / common exit codes are:

  • 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. (a mystery, a vibe, we don't know her πŸ’€)


🌈 Utility Options 🌈

these are the knobs and switches, bestie. buckle up.

  • --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.
heads up bestie: that "unintended ways" bit is real. old hardware + guessing = chaos. πŸ™ˆ
  • --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_Defect 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_Defect version and copyright information & exit

πŸ¦‹ Utility Arguments πŸ¦‹

now the arguments, which is where the actual doing-the-thing happens ✨

  • -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.
  • --errorLimit [limit in number of LBAs] β€” Use this option to specify a different error limit for a user generic or long generic read test or DST and Clean. This must be a number of logical LBAs to have errors. If a drive has multiple logical sectors per physical sector, this number will be adjusted for you to reflect the drive architecture.
  • --checkGrownListCount [count to check] β€” Use this option to check if the grown defect list count is greater than the provided value.
  • --checkPendingListCount [count to check] β€” Use this option to check if the pending defect list count is greater than the provided value.

NOTE: This only works on SAS products that support the Pending Defects log page from SBC4 or later

  • --showPendingList β€” Use this option to show the pending defect list as it is reported by the drive.

NOTE: SBC4 pending log required for SAS support.

SAS Only:

  • --defectFormat [ # | shortBlock | longBlock | xbfi | xchs | bfi | chs ] (SAS Only) β€” This option set the format of the defects to output.

Not all drives will support all defect modes! SSDs will only support block modes!

Arguments: (name | #)

  • shortBlock | 0 - show the defects in short block address mode (drives < 32bit LBA)
  • xbfi | 1 - show the defects in extended bytes from index mode
  • xchs | 2 - show the defects in extended physical cylinder-head-sector mode
  • longBlock | 3 - show the defects in long block address mode (drives > 32bit LBA)
  • bfi | 4 - show the defects in bytes from index mode
  • chs | 5 - show the defects in physical cylinder-head-sector mode
  • --showSCSIDefects [ p | g | pg ] (SAS Only) β€” This option will display the SCSI defects on the screen. The arguments to this will tell whether to get the grown, primary, or primary and grown defects from the drive. Use the --defectFormat option to specify the mode to display the defects. If no mode is specified, physical cylinder-head-sector mode is assumed

Arguments:

  • p - use this option to pull and display the primary (factory) defects
  • g - use this option to pull and display the grown (reallocated) defects

The above options can be combined to pull and display both defect lists.

  • --reallocateBlocks [address,address,...] (SAS Only) β€” This option will reallocate the specified LBAs on a SCSI device. Multiple LBAs can be specified by separating them with commas. For SATA and NVMe devices, this will be passed to a SCSI translator which will handle all translation of this command.

Ex: --reallocateBlocks 123456,234567,345678

πŸ’€ Data Destructive Commands πŸ’€

Okay bestie, this is the section where things get real. Like, these commands actually mess with your drive's data, so read every word, fr fr. πŸ™ˆ


  • --bytesToCorrupt [# of bytes] β€” use this one to say exactly how many data bytes you want to change when you're rolling with --corruptLBA. That's it, that's the whole job. 🎯
  • --dstAndClean β€” runs DST, then peeks for an error and repairs it if it even can. This keeps going until every single error DST reported is fixed, or until you hit the error limit. The default limit? 50 errors. Once you're at 50, we're done here, no cap. πŸ› οΈ
  • --corruptLBA [lba] β€” corrupts the data bytes of one specific LBA. Want control over how many bytes get wrecked? That's --bytesToCorrupt's moment. And if you don't give that option, a default kicks in that tries to create a correctable error on the drive. Depending on the drive's ECC algorithm and how many data bytes you corrupted, you can end up with uncorrectable or correctable errors. It's giving chaos with a plan. πŸ’…
  • --corruptRandomLBAs [# of LBAs to corrupt] β€” same energy but randomized: it corrupts however many LBAs you specified, scattered randomly across the device. Again, --bytesToCorrupt sets the byte count, and if you skip it, the default tries for a correctable error. And again β€” correctable or uncorrectable depends on the ECC algorithm and the number of corrupted data bytes. Roll the dice. 🎲
  • --corruptRange [# of LBAs] β€” pairs with --corruptLBA so you can corrupt a whole range of LBAs on the drive, not just one. Go big or go home. πŸ”₯
  • --disableReadUncorrectables β€” stops read commands from being issued to the LBAs where errors were written. Debugging only, bestie, seriously. And heads up: when you use this, the uncorrectable errors might not end up getting logged in the Pending Defect List on the drive. πŸ‘€
⚠️ Genuinely: only reach for --disableReadUncorrectables when you're debugging. It has side effects on the Pending Defect List and it says so right there.
  • --flaggedUncorrectable β€” flags an uncorrectable error instead of creating a pseudo uncorrectable error the way --psuedoUncorrectable or --randomUncorrectables do. Here are the error types so you know what you're picking:

Pseudo β€” creates a pseudo uncorrectable error. The device will perform full error recovery and logging on failure. ✨

Flagged β€” flags an error. The device will not perform error recovery and will not log on failure. Silent treatment, basically. 🀐

  • --psuedoUncorrectable [lba] β€” creates an uncorrectable error at the LBA you name. Want a whole range instead? Use --uncorrectableRange. By default, pseudo uncorrectable errors get created for the entire physical sector. Prefer flagging instead of pseudo-ing? Then use --flaggedUncorrectable. And remember: flagged errors don't get logged and get zero error processing when they're encountered. ⭐
  • --randomUncorrectables [number of errors] β€” makes a bunch of random uncorrectable LBAs on a drive. Pick your number of errors, let it cook. 🌈
  • --uncorrectableRange [range] β€” specifies a range of LBAs to create an uncorrectable error at. Heads up though: this must be used with --psuedoUncorrectable or --flaggedUncorrectable so that a starting LBA actually gets specified. Can't have a range without a start, babe. 🫢

openSeaChest_Defect - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
openSeaChest_Defect Version: 26.03.2 X86_64
Build Date: May 18 2026
Today: 20260605T144114
User: current user

πŸŽ€ Version Info for openSeaChest_Defect πŸŽ€

Say hi to the receipts:

  • 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_Defect is maintained as a Texinfo manual. If the info and openSeaChest_Defect programs are properly installed at your site, this command:

info openSeaChest_Defect

should give you access to the complete manual. Go read it, it's right there. πŸ“–πŸ’–


And that's a wrap, bestie!! πŸŽ‰ This whole thing is openSeaChest_Defect, version 26.03.2, dated June 2026 β€” thanks for reading all the way to the end, you're literally the main character. πŸ‘‘ Stay safe with those corrupt commands, okay? Byeeeee πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from