OPENSEACHEST_LOGS(1)

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

πŸ’– NAME πŸ’–

okay so bestie, welcome to the manual page for openSeaChest_Logs πŸ’…βœ¨ That's it β€” that's literally the name section β€” but stay with me because the rest of this page is a whole journey 🫢

✨ DESCRIPTION ✨

openSeaChest_Logs β€” openSeaChest drive utilities β€” NVMe Enabled πŸ”₯

Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved

openSeaChest_Logs Version: 26.03.2 X86_64, Build Date: May 18 2026, Today: 20260605T144116, User: current user


πŸ¦‹ Usage πŸ¦‹

the vibe check, format-wise:

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

πŸ“ Examples πŸ“

real ones showing you how it's done, no cap:

openSeaChest_Logs --scan
openSeaChest_Logs -d /dev/sg<#> -i
openSeaChest_Logs -d /dev/sg<#> --SATInfo
openSeaChest_Logs -d /dev/sg<#> --llInfo
openSeaChest_Logs -d /dev/sg<#> --farm --outputPath logs --logMode pipe
openSeaChest_Logs -d /dev/sg<#> --farmCombined --logTransferLength 64KiB --logMode bin
openSeaChest_Logs -d /dev/sg<#> --deviceStatistics
openSeaChest_Logs -d /dev/sg<#> --listSupportedLogs
openSeaChest_Logs -d /dev/sg<#> --pullLog C6h
openSeaChest_Logs -d /dev/sg<#> --pullLog 0Dh --pullSubpage 01h --logMode bin
openSeaChest_Logs -d /dev/sg<#> --listErrorHistoryIDs
openSeaChest_Logs -d /dev/sg<#> --pullErrorHistoryID 30 --logMode bin
openSeaChest_Logs -d /dev/sg<#> --getTelemetry host
openSeaChest_Logs -d /dev/sg<#> --getTelemetry ctrl
openSeaChest_Logs -d /dev/sg<#> --getTelemetry current
openSeaChest_Logs -d /dev/sg<#> --getTelemetry saved
openSeaChest_Logs -d /dev/sg<#> --getTelemetry host --telemetryDataArea 2
openSeaChest_Logs -d /dev/sg<#> --getTelemetry current --telemetryDataArea 4

πŸŽ€ Return codes πŸŽ€

the Generic/Common exit codes, and yes every single one matters:

  • 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) β€” bestie this one is obsolete and will be removed in future versions. don't get attached πŸ™ˆ
  • --csmiUsePort (Obsolete) β€” also obsolete, also getting removed in future versions.
  • --csmiVerbose (Obsolete) β€” yeah, obsolete too, headed for removal in future versions.
  • --echoCommandLine β€” echoes the command line you typed into the utility right there on your screen 🫢
  • --enableLegacyUSBPassthrough β€” please ONLY use this on old USB or IEEE1394 (Firewire) products that don't otherwise work with the tool, okay? It turns on a trial-and-error method that tries sending various ATA Identify commands through vendor specific means. And because of that πŸ‘€ certain products may respond in ways that are unintended, 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 an 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 an ATA device when possible. Can be combined with --forceATA.
  • --forceATAUDMA (SATA Only) β€” forces the tool to issue SAT commands to an 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 the utility options and example usage (the very output you're looking at right now ✨). Please report bugs/suggestions to seaboard@seagate.com β€” and include the output of the --version information in the email, they need it πŸ™
  • --license β€” displays the Seagate End User License Agreement (EULA) πŸ“œ
  • --modelMatch [model Number] β€” run on all drives matching the provided model number. This gives you a closest match, although an exact match is preferred. Ex: ST500 will match ST500LM0001
  • --noBanner β€” suppresses the text banner that displays each time openSeaChest is run 🚫
  • --onlyFW [firmware revision] β€” run on all drives matching the provided firmware revision. This one only does an exact match.
  • --onlySeagate β€” match only Seagate drives for the options you provided 🌸
  • --outputPath [folder] β€” set a path to the directory/folder where all logs should be created. The directory/folder must already exist with write permissions. If you don't use this option, logs get created in the current working folder.
  • -q, --quiet β€” runs openSeaChest_Logs in quiet mode. Same as -v 0 or --verbose 0 🀫
  • -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 3 or --verbose 3
  • -V, --version β€” shows openSeaChest_Logs version and copyright information & exit πŸ‘‹

🌈 Utility Arguments 🌈

  • -d, --device [deviceHandle | all] β€” use this with most commands to specify the device handle you want 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 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] β€” controls 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 β€” shows information and features for the storage device πŸ’œ
  • --llInfo β€” dumps low-level information about the device to assist with debugging πŸ›
  • -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.
  • -S, --Scan β€” same as --scan or -s, except 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 this 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 isn't 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 ⚑
  • --deviceStatisticsLog β€” pulls the Device Statistics Log from a device πŸ“Š
  • --farm β€” pulls the Seagate Field Accessible Reliability Metrics (FARM) Log from the specified drive. Saves the binary logs to the current directory as <serialnumber>FARM<date and time>.bin (as default) 🌾
  • --farmCombined β€” pulls the Seagate Combined Field Accessible Reliability Metrics (FARM) Log from the specified drive. This log contains a combination of all FARM Sub Log Pages in a single Log File. Saves the binary logs to the current directory as <serialnumber>FARMC<date and time>.FRMC 🌾✨
  • --getTelemetry [host | current || ctrl | saved] β€” gets the Telemetry data for a device. This log is also known as the internal status log on SATA and SAS devices. Use the --getTelemetry option to control the amount of data collected πŸ“‘

Supported Modes:

  • host - get Host initiated Telemetry on NVMe (same as "current")
  • ctrl - get Controller initiated Telemetry on NVMe (Same as "saved")
  • current - get the current internal status log on SAS/SATA
  • saved - get the saved internal status log on SAS/SATA
  • --listSupportedLogs β€” displays a list of all supported logs by this device type πŸ“‹
  • --logLength [length in bytes] (NVMe Only)

so about that length thing we were lowkey just talking about πŸ’… β€” it's you telling the utility exactly how much of a log to snatch from the device. This one's required for NVMe logs that aren't part of the standards, or that this utility literally doesn't know about yet, because otherwise it has no idea how much data to go get. ✨

The post fixes you're allowed to tack on when you're stating a transfer length are:

  • BLOCKS or SECTORS β€” says the transfer length in 512-byte blocks/sectors on the device itself
  • KB β€” length in kilobytes (val * 1000)
  • KiB β€” length in kibibytes (val * 1024)
  • MB β€” length in megabytes (val * 1000000)
  • MiB β€” length in mebibytes (val * 1048576)

  • --logMode [mode] β€” sets the mode used to pull the log. Pair it up with --pullLog to pick your vibe πŸ‘‘
    • raw β€” pulls the log & prints it to the screen as stdout
    • bin β€” pulls the log & saves it to a timestamped binary file (default)
    • pipe β€” pulls the log, prints it to the screen as stdout & sends the result to openSeaChest_LogParser (available for FARM only)
  • --logTransferLength [length in bytes] β€” this sets the data transfer length for a log transfer. Bigger transfer sizes might speed up log retrieval, but it's giving at the loss of compatibility 😭. Same post fixes allowed for specifying a transfer length as always:
    • BLOCKS or SECTORS β€” transfer length in 512-byte blocks/sectors on the device
    • KB β€” length in kilobytes (val * 1000)
    • KiB β€” length in kibibytes (val * 1024)
    • MB β€” length in megabytes (val * 1000000)
    • MiB β€” length in mebibytes (val * 1048576)

ATA drives must be given a value in 512B increments, no exceptions bestie.

⚠️ Warning: Specifying a large size may result in failures due to OS, driver, or HBA/bridge specific limitations.
  • --pullLog [Log Number] β€” pulls a specific log number off the device. [Log Number] is a required argument & you can pass it as a decimal or hex value. Slay.
⚠️ WARNING: Vendor Unique Logs pulled using this option may not be valid due to unknown vendor unique bits in ATA/SCSI/NVMe etc. command fields.
  • --selfTestLog β€” pulls the self test results log from a device. On ATA drives, this pulls the extended SMART self tests result log when the device supports it. cute. πŸŽ€
  • --telemetryDataArea [1 | 2 | 3 | 4 (SAS only)] β€” a sub-command that defines how much data the --getTelemetry option collects. If you don't use this option, Data Area 3 is assumed.

Supported Data Areas:

  • 1 β€” get minimal telemetry data (data set 1)
  • 2 β€” get additional/medium telemetry data (data set 2)
  • 3 β€” get additional/large telemetry data (data set 3) (default)
  • 4 β€” get additional/x-large telemetry data (data set 4) (SAS only)

πŸ“ SATA Only

  • --identifyDataLog β€” (SATA only) pulls the Identify Device data log from an ATA drive.
  • --SATAFarmCopyType [ disc | flash ] β€” (SATA Only) provides the copy type while you're extracting FARM copy type with --farmCombined. The default mode is "disc".
    • disc β€” Pull Disc copy of SATA Farm logs.
    • flash β€” Pull Flash copy of SATA Farm logs.
  • --SATAPhyCntLog β€” (SATA only) pulls the SATA Phy Event Counters log from a SATA drive. πŸ¦‹

πŸ’œ SAS Only

  • --listErrorHistoryIDs β€” (SAS Only) displays a list of all supported error history buffer IDs that the device supports. No cap.
  • --pullErrorHistoryID [Buffer ID] β€” (SAS Only) pulls a specific error history buffer ID off the device. [Buffer ID] is a required argument & you can pass it as a decimal or hex value.
⚠️ WARNING: Vendor Unique Logs pulled using this option may not be valid due to unknown vendor unique bits in ATA/SCSI/NVMe etc. command fields.
  • --infoExceptionsLog β€” (SAS only) pulls the SCSI Informational Exceptions log page from a SCSI device.
  • --pullSubpage [Subpage Number] β€” (SAS Only) use this with the --pullLog option to specify a log subpage to pull. Use it for SCSI Logs. [Subpage Number] can be passed as a decimal or hex value.
⚠️ WARNING: Vendor Unique Logs pulled using this option may not be valid due to unknown vendor unique bits in ATA/SCSI/NVMe etc. command fields.

okay and then the utility drops its whole lil banner on you, and it's iconic so here it is in full πŸ’–

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

🌈 Version Info for openSeaChest_Logs

the receipts, bestie, every single one 🫢

  • 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_Logs lives its best life as a Texinfo manual. If the info and openSeaChest_Logs programs are properly installed at your site, then this command:

info openSeaChest_Logs

should give you access to the complete manual. go get it πŸ’…


and that's a wrap on OPENSEACHEST_LOGS(1) fr fr 🌸 β€” this page came from the openSeaChest_Logs source, version 26.03.2, dated June 2026. now go pull some logs, main character πŸ’–βœ¨

πŸ“¦ where this page comes from