summaryrefslogtreecommitdiffstats
path: root/smartctl.8.in
diff options
context:
space:
mode:
Diffstat (limited to 'smartctl.8.in')
-rw-r--r--smartctl.8.in2621
1 files changed, 2621 insertions, 0 deletions
diff --git a/smartctl.8.in b/smartctl.8.in
new file mode 100644
index 0000000..7e1abf2
--- /dev/null
+++ b/smartctl.8.in
@@ -0,0 +1,2621 @@
+.ig
+Copyright (C) 2002-10 Bruce Allen
+Copyright (C) 2004-23 Christian Franke
+
+SPDX-License-Identifier: GPL-2.0-or-later
+
+$Id: smartctl.8.in 5521 2023-07-24 16:44:49Z chrfranke $
+
+..
+.\" Macros borrowed from pages generated with Pod::Man
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp 0.4v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.if t .ft CW
+.if n .ft R
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Use groff extension \(aq (apostrophe quote, ASCII 0x27) if possible
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.TH SMARTCTL 8 "CURRENT_SVN_DATE" "CURRENT_SVN_VERSION" "SMART Monitoring Tools"
+.SH NAME
+\fBsmartctl\fP \- Control and Monitor Utility for SMART Disks
+.Sp
+.SH SYNOPSIS
+.B smartctl [options] device
+.Sp
+.SH DESCRIPTION
+.\" %IF NOT OS ALL
+.\"! [This man page is generated for the OS_MAN_FILTER version of smartmontools.
+.\"! It does not contain info specific to other platforms.]
+.\"! .PP
+.\" %ENDIF NOT OS ALL
+\fBsmartctl\fP controls the Self-Monitoring, Analysis and
+Reporting Technology (SMART) system built into most ATA/SATA and SCSI/SAS
+hard drives and solid-state drives.
+The purpose of SMART is to monitor the reliability of the hard drive
+and predict drive failures, and to carry out different types of drive
+self-tests.
+\fBsmartctl\fP also supports some features not related to SMART.
+This version of \fBsmartctl\fP is compatible with
+ACS-3, ACS-2, ATA8-ACS, ATA/ATAPI-7 and earlier standards
+(see \fBREFERENCES\fP below).
+.PP
+\fBsmartctl\fP also provides support for SCSI tape drives and
+changers (see \fBTAPE DRIVES\fP below).
+.PP
+The user must specify the device to be controlled or interrogated as
+the final argument to \fBsmartctl\fP. The command set used by the device
+is often derived from the device path but may need help with the \*(Aq\-d\*(Aq
+option (for more information see the section on "ATA, SCSI command sets
+and SAT" below).
+Device paths are as follows:
+.\" %IF OS Linux
+.IP \fBLINUX\fP: 9
+Use the forms \fB"/dev/sd[a\-z]"\fP for ATA/SATA and SCSI/SAS devices.
+For SCSI Tape Drives and Changers use the
+devices \fB"/dev/nst*"\fP and \fB"/dev/sg*"\fP. For disks behind
+3ware controllers you may need \fB"/dev/sd[a\-z]"\fP or
+\fB"/dev/twe[0\-9]"\fP, \fB"/dev/twa[0\-9]"\fP or \fB"/dev/twl[0\-9]"\fP:
+see details below.
+For disks behind HighPoint RocketRAID controllers you may need
+\fB"/dev/sd[a\-z]"\fP. For disks behind Areca SATA RAID controllers,
+you need \fB"/dev/sg[2\-9]"\fP (note that smartmontools interacts with
+the Areca controllers via a SCSI generic device which is different
+than the SCSI device used for reading and writing data)! For HP Smart
+Array RAID controllers, there are three currently supported drivers: cciss,
+hpsa, and hpahcisr. For disks accessed via the cciss driver the device nodes
+are of the form \fB"/dev/cciss/c[0\-9]d0"\fP. For disks accessed via
+the hpahcisr and hpsa drivers, the device nodes you need are
+\fB"/dev/sg[0\-9]*"\fP.
+("lsscsi \-g" is helpful in determining which scsi generic device node
+corresponds to which device.)
+Use the nodes corresponding to the RAID controllers, not the nodes
+corresponding to logical drives.
+See the \fB\-d\fP option below, as well.
+Use the forms \fB"/dev/nvme[0\-9]"\fP (broadcast namespace) or
+\fB"/dev/nvme[0\-9]n[1\-9]"\fP (specific namespace 1\-9) for NVMe devices.
+.\" %ENDIF OS Linux
+.\" %IF OS Darwin
+.IP \fBDARWIN\fP: 9
+Use the forms \fB/dev/disk[0\-9]\fP or equivalently \fBdisk[0\-9]\fP or
+equivalently \fB/dev/rdisk[0\-9]\fP.
+Long forms are also available: please use \*(Aq\-h\*(Aq to see some examples.
+.Sp
+There is NVMe support based on the NVMeSMARTLib API in OSX.
+.Sp
+Note that Darwin SCSI support is not yet implemented.
+.Sp
+Use the OS X SAT SMART Driver to access SMART data on SAT capable USB and
+Firewire devices (see INSTALL file).
+.\" %ENDIF OS Darwin
+.\" %IF OS FreeBSD
+.IP \fBFREEBSD\fP: 9
+Use the forms \fB"/dev/ad[0\-9]+"\fP for IDE/ATA
+devices and \fB"/dev/da[0\-9]+"\fP or \fB"/dev/pass[0\-9]+"\fP for SCSI devices.
+For SATA devices on AHCI bus use \fB"/dev/ada[0\-9]+"\fP format. For HP Smart
+Array RAID controllers, use \fB"/dev/ciss[0\-9]"\fP (and see the \fB\-d\fP
+option, below).
+.\" %ENDIF OS FreeBSD
+.\" %IF OS NetBSD OpenBSD
+.IP \fBNETBSD/OPENBSD\fP: 9
+Use the form \fB"/dev/wd[0\-9]+c"\fP for IDE/ATA
+devices. For SCSI disk and tape devices, use the device names
+\fB"/dev/sd[0\-9]+c"\fP and \fB"/dev/st[0\-9]+c"\fP respectively.
+Be sure to specify the correct "whole disk" partition letter for
+your architecture.
+.\" %ENDIF OS NetBSD OpenBSD
+.\" %IF OS Solaris
+.IP \fBSOLARIS\fP: 9
+Use the forms \fB"/dev/rdsk/c?t?d?s?"\fP for IDE/ATA and SCSI disk
+devices, and \fB"/dev/rmt/*"\fP for SCSI tape devices.
+.\" %ENDIF OS Solaris
+.\" %IF OS Windows Cygwin
+.IP \fBWINDOWS\fP: 9
+Use the forms \fB"/dev/sd[a\-z]"\fP for IDE/(S)ATA and SCSI disks
+"\\\\.\\PhysicalDrive[0\-25]" (where "a" maps to "0").
+Use \fB"/dev/sd[a\-z][a\-z]"\fP for "\\\\.\\PhysicalDrive[26\-...]".
+These disks can also be referred to as \fB"/dev/pd[0\-255]"\fP for
+"\\\\.\\PhysicalDrive[0\-255]".
+ATA disks can also be referred to as \fB"/dev/hd[a\-z]"\fP for
+"\\\\.\\PhysicalDrive[0\-25]".
+Use one the forms \fB"/dev/tape[0\-255]"\fP, \fB"/dev/st[0\-255]"\fP,
+or \fB"/dev/nst[0\-255]"\fP for SCSI tape drives "\\\\.\\Tape[0\-255]".
+.Sp
+Alternatively, drive letters \fB"X:"\fP or \fB"X:\\"\fP may be used to
+specify the (\*(Aqbasic\*(Aq) disk behind a mounted partition. This does
+not work with \*(Aqdynamic\*(Aq disks.
+.Sp
+For disks behind 3ware 9000 controllers use \fB"/dev/sd[a\-z],N"\fP where
+N specifies the disk number (3ware \*(Aqport\*(Aq) behind the controller
+providing the logical drive (\*(Aqunit\*(Aq) specified by
+\fB"/dev/sd[a\-z]"\fP.
+Alternatively, use \fB"/dev/tw_cli/cx/py"\fP for controller x, port y
+to run the \*(Aqtw_cli\*(Aq tool and parse the output. This provides limited
+monitoring (\*(Aq\-i\*(Aq, \*(Aq\-c\*(Aq, \*(Aq\-A\*(Aq below) if SMART
+support is missing in the driver.
+Use \fB"/dev/tw_cli/stdin"\fP or \fB"/dev/tw_cli/clip"\fP
+to parse CLI or 3DM output from standard input or clipboard.
+The option \*(Aq\-d 3ware,N\*(Aq is not necessary on Windows.
+.Sp
+For disks behind Intel controller with RST driver or an AMD controller
+with AMD RAID driver, use \fB"/dev/csmi[0\-9],N"\fP where N specifies the
+port behind the logical scsi controller "\\\\.\\Scsi[0\-9]:".
+.br
+The AMD RAID driver may return incomplete information about port assignment.
+To allow access to ports not reported, device scan returns all ports.
+Device open fails then if the port is unused.
+.Sp
+By default, the AMD RAID driver only allows CSMI read accesses.
+To enable write access, change the registry value
+.br
+\fB[HKLM\\SYSTEM\\CurrentControlSet\\Services\\rcraid\\Parameters\\Device]\fP
+.br
+\fB"DriverParameter"="CSMI=Limited;"\fP
+.br
+to
+.br
+\fB"DriverParameter"="CSMI=Full;"\fP
+.br
+and reboot.
+.Sp
+For SATA or SAS disks behind an Areca controller use
+\fB"/dev/arcmsr[0\-9]"\fP, see \*(Aq\-d areca,N[/E]\*(Aq below.
+.Sp
+Use the forms \fB"/dev/nvme[0\-9]"\fP (broadcast namespace) or
+\fB"/dev/nvme[0\-9]n[1\-9]"\fP (specific namespace 1\-9) for first,
+second, ..., NVMe device.
+Alternatively use the forms \fB"/dev/nvmes[0\-9][n[1\-9]]"\fP for NVMe devices
+behind the logical scsi controller "\\\\.\\Scsi[0\-9]:".
+Both forms require a NVMe driver which supports NVME_PASS_THROUGH_IOCTL.
+.Sp
+Use the forms \fB"/dev/sd[...]"\fP or \fB"/dev/pd[...]"\fP (see above)
+for NVMe devices behind Windows 10 NVMe driver (stornvme.sys).
+The pass-through functionality of this driver does not require admin rights
+to retrieve device information (\*(Aq\-x\*(Aq option).
+Admin rights are required if the device state is changed
+(\*(Aq\-t TEST\*(Aq option).
+.Sp
+The prefix \fB"/dev/"\fP is optional.
+.\" %ENDIF OS Windows Cygwin
+.\" %IF OS OS2
+.IP \fBOS/2,eComStation\fP: 9
+Use the form \fB"/dev/hd[a\-z]"\fP for ATA/SATA devices using DANIS506 driver.
+.Sp
+Use the form \fB"/dev/ahci[a\-z]"\fP for ATA/SATA devices using OS2AHCI driver.
+.\" %ENDIF OS OS2
+.PP
+if \*(Aq\-\*(Aq is specified as the device path, \fBsmartctl\fP reads and
+interprets it's own debug output from standard input.
+See \*(Aq\-r ataioctl\*(Aq below for details.
+.PP
+\fBsmartctl\fP guesses the device type if possible.
+If necessary, the \*(Aq\-d\*(Aq option can be used to override this guess.
+.PP
+Note that the printed output of \fBsmartctl\fP displays most numerical
+values in base 10 (decimal), but some values are displayed in base 16
+(hexadecimal). To distinguish them, the base 16 values are always
+displayed with a leading \fB"0x"\fP, for example: "0xff".
+This man page follows the same convention.
+.Sp
+.SH OPTIONS
+The options are grouped below into several categories. \fBsmartctl\fP
+will execute the corresponding commands in the order: INFORMATION,
+ENABLE/DISABLE, DISPLAY DATA, RUN/ABORT TESTS.
+.Sp
+.TP
+.B SHOW INFORMATION OPTIONS:
+.TP
+.B \-h, \-\-help, \-\-usage
+Prints a usage message to STDOUT and exits.
+.TP
+.B \-V, \-\-version, \-\-copyright, \-\-license
+Prints version, copyright, license, home page and SVN revision
+information for your copy of \fBsmartctl\fP to STDOUT and then exits.
+.TP
+.B \-i, \-\-info
+Prints the device model number, serial number, firmware version, and
+ATA Standard version/revision information. Says if the device
+supports SMART, and if so, whether SMART support is currently enabled
+or disabled. If the device supports Logical Block Address mode (LBA
+mode) print current user drive capacity in bytes. (If drive has a
+user protected area reserved, or is "clipped", this may be smaller
+than the potential maximum drive capacity.) Indicates if the drive is
+in the smartmontools database (see \*(Aq\-v\*(Aq options below). If so, the
+drive model family may also be printed.
+If \*(Aq\-n\*(Aq (see below) is specified, the power mode of the drive is
+printed.
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+[NVMe] For NVMe devices the information is obtained from the Identify
+Controller and the Identify Namespace data structure.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.TP
+.B \-\-identify[=[w][nvb]]
+[ATA only] Prints an annotated table of the IDENTIFY DEVICE data.
+By default, only valid words (words not equal to 0x0000 or 0xffff)
+and nonzero bits and bit fields are printed.
+This can be changed by the optional argument which consists of one or
+two characters from the set \*(Aqwnvb\*(Aq.
+The character \*(Aqw\*(Aq enables printing of all 256 words. The character
+\*(Aqn\*(Aq suppresses printing of bits, \*(Aqv\*(Aq enables printing of all
+bits from valid words, \*(Aqb\*(Aq enables printing of all bits.
+For example \*(Aq\-\-identify=n\*(Aq (valid words, no bits) produces the
+shortest output and \*(Aq\-\-identify=wb\*(Aq (all words, all bits) produces
+the longest output.
+.TP
+.B \-a, \-\-all
+Prints all SMART information about the device.
+.Sp
+For ATA, this is equivalent to
+.br
+\*(Aq\-H \-i \-c \-A \-l error \-l selftest \-l selective\*(Aq.
+.br
+This option is no longer recommended for ATA disks because it does not enable
+the SMART options which require support for 48-bit ATA commands
+(see \*(Aq-x\*(Aq below).
+.Sp
+For SCSI, this is equivalent to
+.br
+\*(Aq\-H \-i \-A \-l error \-l selftest\*(Aq.
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+For NVMe, this is equivalent to
+.br
+\*(Aq\-H \-i \-c \-A \-l error \-l selftest\*(Aq.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.TP
+.B \-x, \-\-xall
+Prints all SMART and non-SMART information about the device.
+.Sp
+For ATA, this is equivalent to
+.br
+\*(Aq\-H \-i \-g all \-g wcreorder \-c \-A \-f brief \-l xerror,error
+\-l xselftest,selftest \-l selective \-l directory \-l scttemp \-l scterc
+\-l devstat \-l defects \-l sataphy\*(Aq.
+.br
+If \*(Aq\-a\*(Aq is also specified, add \*(Aq\-l error \-l selftest\*(Aq.
+.Sp
+For SCSI disks, this is equivalent to
+.br
+\*(Aq\-H \-i \-g all \-A \-l error \-l selftest \-l background \-l sasphy
+\-l defects \-l envrep \-l genstats \-l ssd \-l zdevstat\*(Aq
+.br
+and for SCSI tape drives and changers, add \*(Aq\-l tapedevstat\*(Aq.
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+For NVMe, this is equivalent to
+.br
+\*(Aq\-H \-i \-c \-A \-l error \-l selftest\*(Aq.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.TP
+.B \-\-scan
+Scans for devices and prints each device name, device type and protocol
+([ATA] or [SCSI]) info. May be used in conjunction with \*(Aq\-d TYPE\*(Aq
+to restrict the scan to a specific TYPE. See also info about platform
+specific device scan and the \fBDEVICESCAN\fP directive on
+\fBsmartd\fP(8) man page.
+.TP
+.B \-\-scan\-open
+Same as \-\-scan, but also tries to open each device before printing
+device info. The device open may change the device type due
+to autodetection (see also \*(Aq\-d test\*(Aq).
+.Sp
+This option can be used to create a draft \fBsmartd.conf\fP file.
+All options after \*(Aq\-\-\*(Aq are appended to each output line.
+For example:
+.Vb 1
+smartctl \-\-scan\-open \-\- \-a \-W 4,45,50 \-m admin@work > smartd.conf
+.Ve
+.Sp
+Multiple \*(Aq\-d TYPE\*(Aq options may be specified with
+\*(Aq\-\-scan[\-open]\*(Aq to combine the scan results of more than one TYPE.
+.TP
+.B \-g NAME, \-\-get=NAME
+Get non-SMART device settings. See \*(Aq\-s, \-\-set\*(Aq below for further
+info.
+.Sp
+.TP
+.B RUN-TIME BEHAVIOR OPTIONS:
+.TP
+.B \-j, \-\-json[=cgiosuvy]
+Enables JSON or YAML output mode.
+.Sp
+The output could be modified or enhanced by the optional argument which
+consists of one or more characters from the set \*(Aqcgiosuvy\*(Aq:
+.br
+\*(Aqc\*(Aq: Outputs \fBc\fPompact format without extra spaces and newlines.
+By default, output is pretty-printed.
+If used with YAML format, the indentation of arrays is reduced.
+.br
+\*(Aqg\*(Aq: Outputs JSON structure as single assignments to allow the usage
+of \fBg\fPrep.
+Each assignment reflects the absolute path of a value.
+The syntax is compatible with \fBgron\fP:
+.br
+\*(Aqjson.KEY1[INDEX2].KEY3 = VALUE;\*(Aq.
+.br
+\*(Aqo\*(Aq: Includes the full \fBo\fPriginal plaintext \fBo\fPutput of
+\fBsmartctl\fP as a JSON array \*(Aqsmartctl.output[]\*(Aq.
+.br
+\*(Aqs\*(Aq: Outputs JSON object elements \fBs\fPorted by key.
+By default, object elements are ordered as generated internally.
+.br
+\*(Aqv\*(Aq: Enables \fBv\fPerbose output of possible unsafe integers.
+If specified, values which may exceed JSON safe integer (53-bit) range are
+always output as a number (with some \*(AqKEY\*(Aq) and a string
+(\*(AqKEY_s\*(Aq), regardless of the actual value.
+Values which may exceed 64-bit range are also output as a little endian
+byte array (\*(AqKEY_le\*(Aq).
+By default, the additional elements are only output if the value actually
+exceeds the range.
+.br
+\*(Aqy\*(Aq: Outputs in YAML format.
+.Sp
+The following two arguments are primarily intended for development:
+.br
+\*(Aqi\*(Aq: Includes lines from the plaintext output which print info already
+\fBi\fPmplemented for JSON output.
+The lines appear as strings with key \*(Aqsmartctl_NNNN_i\*(Aq.
+.br
+\*(Aqu\*(Aq: Includes lines from the plaintext output which print info still
+\fBu\fPnimplemented for JSON output.
+The lines appear as strings with key \*(Aqsmartctl_NNNN_u\*(Aq.
+.TP
+.B \-q TYPE, \-\-quietmode=TYPE
+Specifies that \fBsmartctl\fP should run in one of the quiet modes
+described here. The valid arguments to this option are:
+.Sp
+.I errorsonly
+\- only print: For the \*(Aq\-l error\*(Aq option, if nonzero, the number
+of errors recorded in the SMART error log and the power-on time when
+they occurred; For the \*(Aq\-l selftest\*(Aq option, errors recorded in
+the device self-test log; For the \*(Aq\-H\*(Aq option, SMART "disk failing"
+status or device Attributes (pre-failure or usage) which failed either now
+or in the past; For the \*(Aq\-A\*(Aq option, device Attributes (pre-failure
+or usage) which failed either now or in the past.
+.Sp
+.I silent
+\- print no output. The only way to learn about what was found is to
+use the exit status of \fBsmartctl\fP (see EXIT STATUS below).
+.Sp
+.I noserial
+\- Do not print the serial number of the device.
+This also suppresses the LU WWN Device Id (ATA) and the SAS addresses (SCSI).
+The related fields are also invalidated in the ATA and NVMe debug outputs.
+.br
+Note: This is not the case in SCSI debug output.
+.br
+[NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+The Namespace IEEE EUI-64 (NVMe) is also suppressed.
+.TP
+.B \-d TYPE, \-\-device=TYPE
+Specifies the type of the device.
+The valid arguments to this option are:
+.Sp
+.I auto
+\- attempt to guess the device type from the device name or from
+controller type info provided by the operating system or from
+a matching USB ID entry in the drive database.
+This is the default.
+.Sp
+.I test
+\- prints the guessed TYPE, then opens the device and prints the
+(possibly changed) TYPE name and then exits without performing
+any further commands.
+.Sp
+.I ata
+\- the device type is ATA. This prevents
+\fBsmartctl\fP
+from issuing SCSI commands to an ATA device.
+.Sp
+.\" %IF NOT OS Darwin
+.I scsi
+\- the device type is SCSI. This prevents
+\fBsmartctl\fP
+from issuing ATA commands to a SCSI device.
+.Sp
+.\" %ENDIF NOT OS Darwin
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I nvme[,NSID]
+\- the device type is NVM Express (NVMe).
+The optional parameter NSID specifies the namespace id (in hex) passed
+to the driver.
+Use 0xffffffff for the broadcast namespace id.
+The default for NSID is the namespace id addressed by the device name.
+.Sp
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.\" %IF NOT OS Darwin
+.I sat[,auto][,N]
+\- the device type is SCSI to ATA Translation (SAT).
+This is for ATA disks that have a SCSI to ATA Translation Layer (SATL)
+between the disk and the operating system.
+SAT defines two ATA PASS THROUGH SCSI commands, one 12 bytes long and
+the other 16 bytes long. The default is the 16 byte variant which can be
+overridden with either \*(Aq\-d sat,12\*(Aq or \*(Aq\-d sat,16\*(Aq.
+.Sp
+If \*(Aq\-d sat,auto\*(Aq is specified, device type SAT (for ATA/SATA disks)
+is only used if the SCSI INQUIRY data reports a SATL (VENDOR: "ATA ").
+Otherwise device type SCSI (for SCSI/SAS disks) is used.
+.Sp
+.I usbasm1352r,PORT
+\- [NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+this device type is for one or two SATA disks that are behind an ASMedia
+ASM1352R USB to SATA (RAID) bridge.
+The parameter PORT (0 or 1) selects the disk to monitor.
+.br
+Note: This USB bridge also supports \*(Aq\-d sat\*(Aq.
+This monitors either the first disk or the second disk if no disk is
+connected to the first port.
+.Sp
+.I usbcypress
+\- this device type is for ATA disks that are behind a Cypress USB to PATA
+bridge. This will use the ATACB proprietary scsi pass through command.
+The default SCSI operation code is 0x24, but although it can be overridden
+with \*(Aq\-d usbcypress,0xN\*(Aq, where N is the scsi operation code,
+you're running the risk of damage to the device or filesystems on it.
+.Sp
+.I usbjmicron[,p][,x][,PORT]
+\- this device type is for SATA disks that are behind a JMicron USB to
+PATA/SATA bridge.
+The 48-bit ATA commands (required e.g.\& for \*(Aq\-l xerror\*(Aq, see below)
+do not work with all of these bridges and are therefore disabled by default.
+These commands can be enabled by \*(Aq\-d usbjmicron,x\*(Aq.
+If two disks are connected to a bridge with two ports, an error message is
+printed if no PORT (0 or 1) is specified.
+.br
+The PORT parameter is not necessary if the device uses a port multiplier to
+connect multiple disks to one port.
+The disks appear under separate /dev/ice names then.
+.br
+CAUTION: Specifying \*(Aq,x\*(Aq for a device which does not support it results
+in I/O errors and may disconnect the drive. The same applies if the specified
+PORT does not exist or is not connected to a disk.
+.Sp
+The Prolific PL2507/3507 USB bridges with older firmware support a pass-through
+command similar to JMicron and work with \*(Aq\-d usbjmicron,0\*(Aq.
+Newer Prolific firmware requires a modified command which can be selected by
+\*(Aq\-d usbjmicron,p\*(Aq.
+Note that this does not yet support the SMART status command.
+.Sp
+.I usbprolific
+\- this device type is for SATA disks that are behind a Prolific
+PL2571/2771/2773/2775 USB to SATA bridge.
+.Sp
+.I usbsunplus
+\- this device type is for SATA disks that are behind a SunplusIT USB to SATA
+bridge.
+.Sp
+.I sntasmedia
+\- [NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+this device type is for NVMe disks that are behind an ASMedia USB to NVMe
+bridge.
+.Sp
+.I sntjmicron[,NSID]
+\- this device type is for NVMe disks that are behind a JMicron USB to NVMe
+bridge.
+The optional parameter NSID specifies the namespace id (in hex) passed
+to the driver.
+The default namespace id is the broadcast namespace id (0xffffffff).
+.Sp
+.I sntrealtek
+\- this device type is for NVMe disks that are behind a Realtek USB to NVMe
+bridge.
+.Sp
+.\" %ENDIF NOT OS Darwin
+.\" %IF OS Linux
+.I marvell
+\- [Linux only] (deprecated and subject to remove).
+.Sp
+.\" %ENDIF OS Linux
+.\" %IF OS FreeBSD Linux
+.I megaraid,N
+\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS disks connected
+to a MegaRAID controller. The non-negative integer N (in the range of 0 to
+127 inclusive) denotes which disk on the controller is monitored. This interface
+will also work for Dell PERC controllers.
+Use syntax such as:
+.\" %ENDIF OS FreeBSD Linux
+.\" %IF OS ALL
+.br
+FreeBSD:
+.\" %ENDIF OS ALL
+.\" %IF OS FreeBSD
+.br
+\fBsmartctl \-a \-d megaraid,2 /dev/mfi0\fP
+.br
+\fBsmartctl \-a \-d megaraid,0 /dev/mrsas0\fP
+.Sp
+.\" %ENDIF OS FreeBSD
+.\" %IF OS ALL
+Linux:
+.\" %ENDIF OS ALL
+.\" %IF OS Linux
+.br
+\fBsmartctl \-a \-d megaraid,2 /dev/sda\fP
+.br
+\fBsmartctl \-a \-d megaraid,0 /dev/sdb\fP
+.br
+\fBsmartctl \-a \-d megaraid,0 /dev/bus/0\fP
+.br
+It is possible to set RAID device name as /dev/bus/N, where N is a SCSI bus
+number.
+.Sp
+The following entry in /proc/devices must exist:
+.br
+For PERC2/3/4 controllers: \fBmegadevN\fP
+.br
+For PERC5/6 controllers: \fBmegaraid_sas_ioctlN\fP
+.Sp
+.\" %ENDIF OS Linux
+.\" %IF OS Linux Windows Cygwin
+.I aacraid,H,L,ID
+\- [Linux, Windows and Cygwin only] the device consists of one or more
+SCSI/SAS or SATA disks connected to an AacRaid controller.
+The non-negative integers H,L,ID (Host number, Lun, ID) denote which disk
+on the controller is monitored.
+Use syntax such as:
+.br
+\fBsmartctl \-a \-d aacraid,0,0,2 /dev/sda\fP
+.br
+\fBsmartctl \-a \-d aacraid,1,0,4 /dev/sdb\fP
+.Sp
+Option \*(Aq\-d sat,auto+...\*(Aq is implicitly enabled to detect SATA disks.
+Use \*(Aq\-d scsi+aacraid,H,L,ID\*(Aq to disable it.
+.Sp
+.\" %ENDIF OS Linux Windows Cygwin
+.\" %IF OS Linux
+On Linux, the following entry in /proc/devices must exist: \fBaac\fP.
+Character device nodes /dev/aacH (H=Host number) are created if required.
+.Sp
+.\" %ENDIF OS Linux
+.\" %IF OS Windows Cygwin
+On Windows, the device name parameter /dev/sdX is ignored if
+\*(Aq\-d aacraid\*(Aq is specified.
+.Sp
+.\" %ENDIF OS Windows Cygwin
+.\" %IF OS FreeBSD Linux
+.I 3ware,N
+\- [FreeBSD and Linux only] the device consists of one or more ATA disks
+connected to a 3ware RAID controller. The non-negative integer N
+(in the range from 0 to 127 inclusive) denotes which disk on the controller
+is monitored.
+Use syntax such as:
+.br
+\fBsmartctl \-a \-d 3ware,2 /dev/sda\fP [Linux only]
+.br
+\fBsmartctl \-a \-d 3ware,0 /dev/twe0\fP
+.br
+\fBsmartctl \-a \-d 3ware,1 /dev/twa0\fP
+.br
+\fBsmartctl \-a \-d 3ware,1 /dev/twl0\fP [Linux only]
+.br
+\fBsmartctl \-a \-d 3ware,1 /dev/tws0\fP [FreeBSD only]
+.br
+The first two forms, which refer to devices /dev/sda\-z (deprecated)
+and /dev/twe0\-15, may be used with 3ware series 6000, 7000, and 8000
+series controllers that use the 3x-xxxx driver.
+The devices /dev/twa0\-15, must be used with 3ware 9000 series controllers,
+which use the 3w\-9xxx driver.
+The devices /dev/twl0\-15 [Linux] or /dev/tws0\-15 [FreeBSD] must be used
+with the 3ware/LSI 9750 series controllers which use the 3w-sas driver.
+.Sp
+Note that if the special character device nodes /dev/tw[ls]?, /dev/twa?
+and /dev/twe? do not exist, or exist with the incorrect major or minor
+numbers, smartctl will recreate them on the fly.
+.Sp
+.\" %ENDIF OS FreeBSD Linux
+.\" %IF OS FreeBSD Linux Windows Cygwin
+.I areca,N
+\- [FreeBSD, Linux, Windows and Cygwin only] the device consists of one or
+more SATA disks connected to an Areca SATA RAID controller.
+The positive integer N (in the range from 1 to 24 inclusive) denotes which
+disk on the controller is monitored.
+.\" %ENDIF OS FreeBSD Linux Windows Cygwin
+.\" %IF OS Linux
+On Linux use syntax such as:
+.br
+\fBsmartctl \-a \-d areca,2 /dev/sg2\fP
+.br
+\fBsmartctl \-a \-d areca,3 /dev/sg3\fP
+.br
+.\" %ENDIF OS Linux
+.\" %IF OS FreeBSD
+On FreeBSD use syntax such as:
+.br
+\fBsmartctl \-a \-d areca,2 /dev/arcmsr1\fP
+.br
+\fBsmartctl \-a \-d areca,3 /dev/arcmsr2\fP
+.br
+.\" %ENDIF OS FreeBSD
+.\" %IF OS Windows Cygwin
+On Windows and Cygwin use syntax such as:
+.br
+\fBsmartctl \-a \-d areca,2 /dev/arcmsr0\fP
+.br
+\fBsmartctl \-a \-d areca,3 /dev/arcmsr1\fP
+.br
+.\" %ENDIF OS Windows Cygwin
+.\" %IF OS FreeBSD Linux Windows Cygwin
+The first line above addresses the second disk on the first Areca RAID
+controller.
+The second line addresses the third disk on the second Areca RAID
+controller.
+.\" %ENDIF OS FreeBSD Linux Windows Cygwin
+.\" %IF OS Linux
+To help identify the correct device on Linux, use the command:
+.br
+\fBcat /proc/scsi/sg/device_hdr /proc/scsi/sg/devices\fP
+.br
+to show the SCSI generic devices (one per line, starting with
+/dev/sg0). The correct SCSI generic devices to address for
+smartmontools are the ones with the type field equal to 3. If the
+incorrect device is addressed, please read the warning/error messages
+carefully. They should provide hints about what devices to use.
+.\" %ENDIF OS Linux
+.\" %IF OS FreeBSD Linux Windows Cygwin
+.Sp
+Important: the Areca controller must have firmware version 1.46 or
+later. Lower-numbered firmware versions will give (harmless) SCSI
+error messages and no SMART information.
+.Sp
+.I areca,N/E
+\- [FreeBSD, Linux, Windows and Cygwin only] the device consists of one
+or more SATA or SAS disks connected to an Areca SAS RAID controller.
+The integer N (range 1 to 128) denotes the channel (slot) and E (range
+1 to 8) denotes the enclosure.
+Important: This requires Areca SAS controller firmware version 1.51 or later.
+.Sp
+.\" %ENDIF OS FreeBSD Linux Windows Cygwin
+.\" %IF OS FreeBSD Linux
+.I cciss,N
+\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS or
+SATA disks connected to a cciss RAID controller.
+The non-negative integer N (in the range from 0 to 15 inclusive) denotes
+which disk on the controller is monitored.
+.Sp
+Option \*(Aq\-d sat,auto+...\*(Aq is implicitly enabled to detect SATA disks.
+Use \*(Aq\-d scsi+cciss,N\*(Aq to disable it.
+.Sp
+To look at disks behind HP Smart Array controllers, use syntax
+such as:
+.\" %ENDIF OS FreeBSD Linux
+.\" %IF OS Linux
+.br
+\fBsmartctl \-a \-d cciss,0 /dev/cciss/c0d0\fP (cciss driver under Linux)
+.br
+\fBsmartctl \-a \-d cciss,0 /dev/sg2\fP (hpsa or hpahcisr drivers under Linux)
+.\" %ENDIF OS Linux
+.\" %IF OS FreeBSD
+.br
+\fBsmartctl \-a \-d cciss,0 /dev/ciss0\fP (under FreeBSD)
+.\" %ENDIF OS FreeBSD
+.\" %IF OS FreeBSD Linux
+.Sp
+.I hpt,L/M/N
+\- [FreeBSD and Linux only] the device consists of one or more ATA disks
+connected to a HighPoint RocketRAID controller. The integer L is the
+controller id, the integer M is the channel number, and the integer N
+is the PMPort number if it is available. The allowed values of L are
+from 1 to 4 inclusive, M are from 1 to 128 inclusive and N from 1 to 4
+if PMPort available. And also these values are limited by the model
+of the HighPoint RocketRAID controller.
+Use syntax such as:
+.\" %ENDIF OS FreeBSD Linux
+.\" %IF OS Linux
+.br
+\fBsmartctl \-a \-d hpt,1/3 /dev/sda\fP (under Linux)
+.br
+\fBsmartctl \-a \-d hpt,1/2/3 /dev/sda\fP (under Linux)
+.\" %ENDIF OS Linux
+.\" %IF OS FreeBSD
+.br
+\fBsmartctl \-a \-d hpt,1/3 /dev/hptrr\fP (under FreeBSD)
+.br
+\fBsmartctl \-a \-d hpt,1/2/3 /dev/hptrr\fP (under FreeBSD)
+.\" %ENDIF OS FreeBSD
+.\" %IF OS FreeBSD Linux
+.br
+Note that the /dev/sda\-z form should be the device node which stands for
+the disks derived from the HighPoint RocketRAID controllers under Linux and
+under FreeBSD, it is the character device which the driver registered (eg,
+/dev/hptrr, /dev/hptmv6).
+.\" %ENDIF OS FreeBSD Linux
+.Sp
+.\" %IF OS Linux
+.I sssraid,E,S
+\- [Linux only: NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+the device consists of one or more SCSI/SAS or SATA disks connected to a
+SSSRAID controller.
+The non-negative integer E (in the range of 0 to 8) denotes the enclosure
+and S (range 0 to 128) denotes the slot.
+Use syntax such as:
+.br
+\fBsmartctl \-a \-d sssraid,0,1 /dev/bsg/sssraid0\fP
+.br
+It is possible to set RAID device name as /dev/bsg/sssraidN, where N is a
+SCSI bus number.
+.Sp
+.\" %ENDIF OS Linux
+.I intelliprop,N[+TYPE]
+\- (deprecated and subject to remove).
+.Sp
+.I jmb39x[\-q],N[,sLBA][,force][+TYPE]
+\- the device consists of multiple SATA disks connected to a JMicron JMB39x
+RAID port multiplier.
+The suffix \*(Aq\-q\*(Aq selects a slightly different command variant used by
+some QNAP NAS devices.
+The integer N is the port number from 0 to 4.
+.br
+\fBWARNING: The ATA pass-through commands are issued via READ/WRITE commands
+to a LBA of the RAID volume.
+Using this option with other devices may overwrite this sector.\fP
+.br
+The default LBA is 33.
+The LBA could be selected in the range from 1 to 255 inclusive.
+.br
+If a GPT partition table is used, LBA 33 contains the last 4 (of 128)
+entries of the partition table.
+These entries are zero filled in most cases.
+If a MBR partition table is used, LBA 33 may be zero filled or may contain
+code from a boot loader.
+.br
+By default, access to the device is refused if the selected sector is not
+zero filled.
+The \*(Aqforce\*(Aq flag disables this check.
+.br
+\fBWARNING: Original sector data is not written back if smartctl is aborted
+with a signal.\fP
+.Sp
+.I jms56x,N[,sLBA][,force][+TYPE]
+\- the device consists of multiple SATA disks connected to a JMicron JMS56x
+USB to SATA RAID bridge.
+See \*(Aqjmb39x...\*(Aq above for valid arguments.
+.TP
+.B \-T TYPE, \-\-tolerance=TYPE
+[ATA only] Specifies how tolerant \fBsmartctl\fP should be of ATA and SMART
+command failures.
+.Sp
+The behavior of \fBsmartctl\fP depends upon whether the command is
+"\fBoptional\fP" or "\fBmandatory\fP". Here "\fBmandatory\fP" means
+"required by the ATA Specification if the device implements
+the SMART command set" and "\fBoptional\fP" means "not required by the
+ATA Specification even if the device implements the SMART
+command set." The "\fBmandatory\fP" ATA and SMART commands are: (1)
+ATA IDENTIFY DEVICE, (2) SMART ENABLE/DISABLE ATTRIBUTE AUTOSAVE, (3)
+SMART ENABLE/DISABLE, and (4) SMART RETURN STATUS.
+.Sp
+The valid arguments to this option are:
+.Sp
+.I normal
+\- exit on failure of any \fBmandatory\fP SMART command, and ignore
+all failures of \fBoptional\fP SMART commands. This is the default.
+Note that on some devices, issuing unimplemented optional SMART
+commands doesn't cause an error. This can result in misleading
+\fBsmartctl\fP messages such as "Feature X not implemented", followed
+shortly by "Feature X: enabled". In most such cases, contrary to the
+final message, Feature X is \fBnot\fP enabled.
+.Sp
+.I conservative
+\- exit on failure of any \fBoptional\fP SMART command.
+.Sp
+.I permissive
+\- ignore failure(s) of \fBmandatory\fP SMART commands. This option
+may be given more than once. Each additional use of this option will
+cause one more additional failure to be ignored. Note that the use of
+this option can lead to messages like "Feature X not supported",
+followed shortly by "Feature X enable failed". In a few
+such cases, contrary to the final message, Feature X \fBis\fP enabled.
+.Sp
+.I verypermissive
+\- equivalent to giving a large number of \*(Aq\-T permissive\*(Aq options:
+ignore failures of \fBany number\fP of \fBmandatory\fP SMART commands.
+Please see the note above.
+.TP
+.B \-b TYPE, \-\-badsum=TYPE
+[ATA only] Specifies the action \fBsmartctl\fP should take if a checksum
+error is detected in the: (1) Device Identity Structure, (2) SMART
+Self-Test Log Structure, (3) SMART Attribute Value Structure, (4) SMART
+Attribute Threshold Structure, or (5) ATA Error Log Structure.
+.Sp
+The valid arguments to this option are:
+.Sp
+.I warn
+\- report the incorrect checksum but carry on in spite of it. This is the
+default.
+.Sp
+.I exit
+\- exit \fBsmartctl\fP.
+.Sp
+.I ignore
+\- continue silently without issuing a warning.
+.TP
+.B \-r TYPE, \-\-report=TYPE
+Intended primarily to help \fBsmartmontools\fP developers understand
+the behavior of \fBsmartmontools\fP on non-conforming or poorly
+conforming hardware. This option reports details of \fBsmartctl\fP
+transactions with the device. The option can be used multiple times.
+When used just once, it shows a record of the ioctl() transactions
+with the device. When used more than once, the detail of these
+ioctl() transactions are reported in greater detail. The valid
+arguments to this option are:
+.Sp
+.I ioctl
+\- report all ioctl() transactions.
+.Sp
+.I ataioctl
+\- report only ioctl() transactions with ATA devices.
+.Sp
+.I scsiioctl
+\- report only ioctl() transactions with SCSI devices.
+Invoking this once shows the SCSI commands in hex and the corresponding status.
+Invoking it a second time adds a hex listing of the first 64 bytes of data
+send to, or received from the device.
+.Sp
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I nvmeioctl
+\- report only ioctl() transactions with NVMe devices.
+.Sp
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+Any argument may include a positive integer to specify the level of detail
+that should be reported. The argument should be followed by a comma then
+the integer with no spaces. For example,
+.I ataioctl,2
+The default level is 1, so \*(Aq\-r ataioctl,1\*(Aq and \*(Aq\-r ataioctl\*(Aq
+are equivalent.
+.Sp
+For testing purposes, the output of \*(Aq\-r ataioctl,2\*(Aq can later be parsed
+by \fBsmartctl\fP itself if \*(Aq\-\*(Aq is used as device path argument.
+The ATA command input parameters, sector data and return values are
+reconstructed from the debug report read from stdin.
+Then \fBsmartctl\fP internally simulates an ATA device with the same
+behaviour.
+This is does not work for SCSI devices yet.
+.TP
+.B \-n POWERMODE[,STATUS[,STATUS2]], \-\-nocheck=POWERMODE[,STATUS[,STATUS2]]
+[ATA, SCSI] Specifies if \fBsmartctl\fP should exit before performing any
+checks when the device is in a low-power mode.
+It may be used to prevent a disk from being spun-up by \fBsmartctl\fP.
+The power mode is ignored by default.
+.Sp
+Note: If this option is used it may also be necessary to specify the device
+type with the \*(Aq\-d\*(Aq option. Otherwise the device may spin up due to
+commands issued during device type autodetection.
+.Sp
+By default, exit status 2 is returned if the device is in one of the
+specified low-power modes.
+This status is also returned if the device open or identification failed
+(see EXIT STATUS below).
+The optional STATUS parameter allows one to override this default.
+STATUS is an integer in the range from 0 to 255 inclusive.
+For example use \*(Aq\-n standby,0\*(Aq to return success if a device is in
+SLEEP or STANDBY mode.
+Use \*(Aq\-n standby,3\*(Aq to return a unique exit status in this case.
+.Sp
+The valid arguments to this option are:
+.Sp
+.I never
+\- check the device always, but print the power mode if \*(Aq\-i\*(Aq is
+specified.
+.Sp
+.I sleep[,STATUS[,STATUS2]]
+\- check the device unless it is in SLEEP mode.
+.Sp
+.I standby[,STATUS[,STATUS2]]
+\- check the device unless it is in SLEEP or STANDBY mode. In
+these modes most disks are not spinning, so if you want to prevent
+a disk from spinning up, this is probably what you want.
+.Sp
+.I idle[,STATUS[,STATUS2]]
+\- check the device unless it is in SLEEP, STANDBY or IDLE mode.
+In the IDLE state, most disks are still spinning, so this is probably
+not what you want.
+.Sp
+The \*(Aq\-n\*(Aq option is ignored if the power mode check is not supported
+or returns an unknown value.
+.br
+[ATA only: NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+If the optional STATUS2 parameter is specified, \fBsmartctl\fP exits
+immediately with STATUS2 in this case.
+For example use \*(Aq\-n standby,3,5\*(Aq to return unique exit statuses in
+the STANDBY and UNSUPPORTED cases.
+.TP
+.B SMART FEATURE ENABLE/DISABLE COMMANDS:
+.IP
+.B Note:
+if multiple options are used to both enable and disable a
+feature, then
+.B both
+the enable and disable commands will be issued. The enable command
+will always be issued
+.B before
+the corresponding disable command.
+.TP
+.B \-s VALUE, \-\-smart=VALUE
+Enables or disables SMART on device. The valid arguments to
+this option are \fIon\fP and \fIoff\fP.
+.Sp
+[ATA]
+Note that the ATA commands SMART ENABLE/DISABLE OPERATIONS were declared
+obsolete in ATA ACS-4 Revision 10 (Nov 2015).
+.Sp
+[SCSI tape drive or changer]
+It is not necessary (or useful) to enable SMART to see the TapeAlert messages.
+.TP
+.B \-o VALUE, \-\-offlineauto=VALUE
+[ATA only] Enables or disables SMART automatic offline test, which scans the
+drive every four hours for disk defects.
+This command can be given during normal system operation.
+The valid arguments to this option are \fIon\fP and \fIoff\fP.
+.Sp
+Note that the SMART automatic offline test command is listed as
+"Obsolete" in every version of the ATA and ATA/ATAPI Specifications.
+It was originally part of the SFF-8035i Revision 2.0 specification,
+but was never part of any ATA specification. However it is
+implemented and used by many vendors.
+You can tell if automatic offline testing is supported by seeing if
+this command enables and disables it, as indicated by the \*(AqAuto
+Offline Data Collection\*(Aq part of the SMART capabilities report
+(displayed with \*(Aq\-c\*(Aq).
+.Sp
+SMART provides \fBthree\fP basic categories of testing. The
+\fBfirst\fP category, called "online" testing, has no effect on the
+performance of the device. It is turned on by the \*(Aq\-s on\*(Aq option.
+.Sp
+The \fBsecond\fP category of testing is called "offline" testing.
+This type of test can, in principle, degrade the device performance.
+The \*(Aq\-o on\*(Aq option causes this offline testing to be carried out,
+automatically, on a regular scheduled basis. Normally, the disk will
+suspend offline testing while disk accesses are taking place, and then
+automatically resume it when the disk would otherwise be idle, so in
+practice it has little effect. Note that a one-time offline test can
+also be carried out immediately upon receipt of a user command. See
+the \*(Aq\-t offline\*(Aq option below, which causes a one-time offline test
+to be carried out immediately.
+.Sp
+The choice (made by the SFF-8035i and ATA specification authors) of
+the word \fItesting\fP for these first two categories is unfortunate,
+and often leads to confusion. In fact these first two categories of
+online and offline testing could have been more accurately described
+as online and offline \fBdata collection\fP.
+.Sp
+The results of this automatic or immediate offline testing (data
+collection) are reflected in the values of the SMART Attributes.
+Thus, if problems or errors are detected, the values of these
+Attributes will go below their failure thresholds; some types of
+errors may also appear in the SMART error log.
+These are visible with the \*(Aq\-A\*(Aq and \*(Aq\-l error\*(Aq options
+respectively.
+.Sp
+Some SMART attribute values are updated only during off-line data
+collection activities; the rest are updated during normal operation of
+the device or during both normal operation and off-line testing. The
+Attribute value table produced by the \*(Aq\-A\*(Aq option indicates this in
+the UPDATED column. Attributes of the first type are labeled
+"Offline" and Attributes of the second type are labeled "Always".
+.Sp
+The \fBthird\fP category of testing (and the \fIonly\fP category for
+which the word \*(Aqtesting\*(Aq is really an appropriate choice) is "self"
+testing. This third type of test is only performed (immediately) when
+a command to run it is issued.
+The \*(Aq\-t\*(Aq and \*(Aq\-X\*(Aq options can be used to carry out and
+abort such self-tests; please see below for further details.
+.Sp
+Any errors detected in the self testing will be shown in the
+SMART self-test log, which can be examined using the \*(Aq\-l selftest\*(Aq
+option.
+.Sp
+\fBNote:\fP in this manual page, the word \fB"Test"\fP is used in
+connection with the second category just described, e.g.\& for the
+"offline" testing. The words \fB"Self-test"\fP are used in
+connection with the third category.
+.TP
+.B \-S VALUE, \-\-saveauto=VALUE
+[ATA] Enables or disables SMART autosave of device vendor-specific
+Attributes. The valid arguments to this option are \fIon\fP
+and \fIoff\fP. Note that this feature is preserved across disk power
+cycles, so you should only need to issue it once.
+.Sp
+The ATA standard does not specify a method to check whether SMART
+autosave is enabled.
+Unlike SCSI (below), smartctl is unable to print a warning if autosave is
+disabled.
+.Sp
+Note that the ATA commands SMART ENABLE/DISABLE AUTOSAVE were declared
+obsolete in ATA ACS-4 Revision 10 (Nov 2015).
+.Sp
+[SCSI] For SCSI devices this toggles the value of the Global Logging
+Target Save Disabled (GLTSD) bit in the Control Mode Page. Some disk
+manufacturers set this bit by default. This prevents error counters,
+power-up hours and other useful data from being placed in non-volatile
+storage, so these values may be reset to zero the next time the device
+is power-cycled. If the GLTSD bit is set then \*(Aqsmartctl \-a\*(Aq will
+issue a warning. Use \fIon\fP to clear the GLTSD bit and thus enable
+saving counters to non-volatile storage. For extreme streaming-video
+type applications you might consider using \fIoff\fP to set the GLTSD
+bit.
+.TP
+.B \-g NAME, \-\-get=NAME, \-s NAME[,VALUE], \-\-set=NAME[,VALUE]
+Gets/sets non-SMART device settings.
+Note that the \*(Aq\-\-set\*(Aq option shares its short option \*(Aq\-s\*(Aq
+with \*(Aq\-\-smart\*(Aq.
+Valid arguments are:
+.Sp
+.I all
+\- Gets all values.
+This is equivalent to
+.br
+\*(Aq\-g aam \-g apm \-g lookahead \-g security \-g wcache \-g rcache \-g dsn\*(Aq
+.Sp
+.I aam[,N|off]
+\- [ATA only] Gets/sets the Automatic Acoustic Management (AAM) feature
+(if supported). A value of 128 sets the most quiet (slowest) mode and 254
+the fastest (loudest) mode, \*(Aqoff\*(Aq disables AAM. Devices may support
+intermediate levels. Values below 128 are defined as vendor specific (0)
+or retired (1 to 127). Note that the AAM feature was declared obsolete in
+ATA ACS-2 Revision 4a (Dec 2010).
+.Sp
+.I apm[,N|off]
+\- [ATA only] Gets/sets the Advanced Power Management (APM) feature on
+device (if supported). If a value between 1 and 254 is provided, it will
+attempt to enable APM and set the specified value, \*(Aqoff\*(Aq disables APM.
+Note the actual behavior depends on the drive, for example some drives disable
+APM if their value is set above 128. Values below 128 are supposed to allow
+drive spindown, values 128 and above adjust only head-parking frequency,
+although the actual behavior defined is also vendor-specific.
+.Sp
+.I lookahead[,on|off]
+\- [ATA only] Gets/sets the read look-ahead feature (if supported).
+Read look-ahead is usually enabled by default.
+.Sp
+.I security
+\- [ATA only] Gets the status of ATA Security feature (if supported).
+If ATA Security is enabled an ATA user password is set. The drive will be
+locked on next reset then.
+.Sp
+.I security-freeze
+\- [ATA only] Sets ATA Security feature to frozen mode. This prevents that
+the drive accepts any security commands until next reset. Note that the
+frozen mode may already be set by BIOS or OS.
+.Sp
+.I standby,[N|off]
+\- [ATA] Sets the standby (spindown) timer and places the drive in
+the IDLE mode. A value of 0 or \*(Aqoff\*(Aq disables the standby timer.
+Values from 1 to 240 specify timeouts from 5 seconds to 20 minutes in 5
+second increments. Values from 241 to 251 specify timeouts from 30 minutes
+to 330 minutes in 30 minute increments. Value 252 specifies 21 minutes.
+Value 253 specifies a vendor specific time between 8 and 12 hours. Value
+255 specifies 21 minutes and 15 seconds. Some drives may use a vendor
+specific interpretation for the values. Note that there is no get option
+because ATA standards do not specify a method to read the standby timer.
+If \*(Aq\-s standby,now\*(Aq is also specified, the drive is immediately
+placed in the STANDBY mode without temporarily placing it in the IDLE mode.
+Note that ATA standards do not specify a command to set the standby timer
+without affecting the power mode.
+.br
+[SCSI] Only the set option with \*(Aqstandby,off\*(Aq or
+\*(Aqstandby,0\*(Aq is accepted and will place the SCSI disk
+into "ACTIVE" power condition.
+.Sp
+.I standby,now
+\- [ATA] Places the drive in the STANDBY mode.
+This usually spins down the drive.
+The setting of the standby timer is not affected unless
+\*(Aq\-s standby,[N|off]\*(Aq is also specified.
+.br
+[SCSI] Only the set option is accepted and will place the SCSI
+disk into "STANDBY_Z" power condition.
+.Sp
+.I wcache[,on|off]
+\- [ATA] Gets/sets the volatile write cache feature (if supported).
+The write cache is usually enabled by default.
+.Sp
+.I wcache[,on|off]
+\- [SCSI] Gets/sets the \*(AqWrite Cache Enable\*(Aq (WCE) bit (if supported).
+The write cache is usually enabled by default.
+.Sp
+.I wcache-sct[,ata|on|off[,p]]
+\- [ATA only] Gets/sets the write cache feature through SCT Feature Control
+(if supported).
+The state of write cache in SCT Feature Control could be "Controlled by ATA",
+"Force Enabled", or "Force Disabled".
+SCT Feature control overwrites the setting by ATA Set Features command
+(wcache[,on|off] option).
+If SCT Feature Control sets write cache as "Force Enabled" or "Force Disabled",
+the setting of wcache[,on|off] is ignored by the drive.
+SCT Feature Control usually sets write cache as "Controlled by ATA" by default.
+If \*(Aq,p\*(Aq is specified, the setting is preserved across power cycles.
+.Sp
+.I wcreorder[,on|off[,p]]
+\- [ATA only] Gets/sets Write Cache Reordering.
+If it is disabled (off), disk write scheduling is executed on a
+first-in-first-out (FIFO) basis. If Write Cache Reordering is enabled (on),
+then disk write scheduling may be reordered by the drive. If write cache is
+disabled, the current Write Cache Reordering state is remembered but has
+no effect on non-cached writes, which are always written in the order received.
+The state of Write Cache Reordering has no effect on either NCQ or LCQ queued
+commands.
+If \*(Aq,p\*(Aq is specified, the setting is preserved across power cycles.
+.Sp
+.I rcache[,on|off]
+\- [SCSI only] Gets/sets the \*(AqRead Cache Disable\*(Aq (RCE) bit.
+\*(AqOff\*(Aq value disables read cache (if supported).
+The read cache is usually enabled by default.
+.Sp
+.I dsn[,on|off]
+\- [ATA only] Gets/sets the DSN feature (if supported).
+The dsn is usually disabled by default.
+.Sp
+.TP
+.B SMART READ AND DISPLAY DATA OPTIONS:
+.TP
+.B \-H, \-\-health
+Prints the health status of the device.
+.Sp
+If the device reports failing health status, this means
+.B either
+that the device has already failed,
+.B or
+that it is predicting its own failure within the next 24 hours.
+If this happens, use the \*(Aq\-x\*(Aq option to get more information, and
+.B get your data off the disk and to someplace safe as soon as you can.
+.Sp
+[ATA] Health status is obtained by checking the (boolean) result returned
+by the SMART RETURN STATUS command.
+The return value of this ATA command may be unknown due to limitations or
+bugs in some layer (e.g.\& RAID controller or USB bridge firmware) between
+disk and operating system.
+In this case, \fBsmartctl\fP prints a warning and checks whether any
+Prefailure SMART Attribute value is less than or equal to its threshold
+(see \*(Aq\-A\*(Aq below).
+.Sp
+[SCSI] Health status is obtained by checking the Additional Sense Code
+(ASC) and Additional Sense Code Qualifier (ASCQ) from Informal Exceptions
+(IE) log page (if supported) and/or from SCSI sense data.
+.Sp
+[SCSI tape drive or changer] The TapeAlert status is obtained by reading the
+TapeAlert log page, but only if this option is given twice (see
+\fBTAPE DRIVES\fP for the rationale).
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+[NVMe] NVMe status is obtained by reading the "Critical Warning" byte from
+the SMART/Health Information log.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.TP
+.B \-c, \-\-capabilities
+[ATA] Prints only the generic SMART capabilities. These
+show what SMART features are implemented and how the device will
+respond to some of the different SMART commands. For example it
+shows if the device logs errors, if it supports offline surface
+scanning, and so on. If the device can carry out self-tests, this
+option also shows the estimated time required to run those tests.
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+[NVMe] Prints various NVMe device capabilities obtained from the Identify
+Controller and the Identify Namespace data structure.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.TP
+.B \-A, \-\-attributes
+[ATA] Prints only the vendor specific SMART Attributes. The Attributes
+are numbered from 1 to 253 and have specific names and ID numbers.
+For example Attribute 12 is "power cycle count": how many times has the
+disk been powered up.
+.Sp
+Each Attribute has a "Raw" value, printed under the heading
+"RAW_VALUE", and a "Normalized" value printed under the heading
+"VALUE". [Note: \fBsmartctl\fP prints these values in base-10.] In
+the example just given, the "Raw Value" for Attribute 12 would be the
+actual number of times that the disk has been power-cycled, for
+example 365 if the disk has been turned on once per day for exactly
+one year. Each vendor uses their own algorithm to convert this "Raw"
+value to a "Normalized" value in the range from 1 to 254. Please keep
+in mind that \fBsmartctl\fP only reports the different Attribute
+types, values, and thresholds as read from the device. It does
+\fBnot\fP carry out the conversion between "Raw" and "Normalized"
+values: this is done by the disk's firmware.
+.Sp
+The conversion from Raw value to a quantity with physical units is
+not specified by the SMART standard. In most cases, the values printed
+by \fBsmartctl\fP are sensible. For example the temperature Attribute
+generally has its raw value equal to the temperature in Celsius.
+However in some cases vendors use unusual conventions. For example
+the Hitachi disk on my laptop reports its power-on hours in minutes,
+not hours. Some IBM disks track three temperatures rather than one, in
+their raw values. And so on.
+.Sp
+Each Attribute also has a Threshold value (whose range is 0 to 255)
+which is printed under the heading "THRESH". If the Normalized value
+is \fBless than or equal to\fP the Threshold value, then the Attribute
+is said to have failed. If the Attribute is a pre-failure Attribute,
+then disk failure is imminent.
+.Sp
+Each Attribute also has a "Worst" value shown under the heading
+"WORST". This is the smallest (closest to failure) value that the
+disk has recorded at any time during its lifetime when SMART was
+enabled. [Note however that some vendors firmware may actually
+\fBincrease\fP the "Worst" value for some "rate-type" Attributes.]
+.Sp
+The Attribute table printed out by \fBsmartctl\fP also shows the
+"TYPE" of the Attribute. Attributes are one of two possible types:
+Pre-failure or Old age. Pre-failure Attributes are ones which, if
+less than or equal to their threshold values, indicate pending disk
+failure. Old age, or usage Attributes, are ones which indicate
+end-of-product life from old-age or normal aging and wearout, if
+the Attribute value is less than or equal to the threshold. \fBPlease
+note\fP: the fact that an Attribute is of type 'Pre-fail' does
+\fBnot\fP mean that your disk is about to fail! It only has this
+meaning if the Attribute's current Normalized value is less than or
+equal to the threshold value.
+.Sp
+If the Attribute's current Normalized value is less than or equal to
+the threshold value, then the "WHEN_FAILED" column will display
+"FAILING_NOW". If not, but the worst recorded value is less than or
+equal to the threshold value, then this column will display
+"In_the_past". If the "WHEN_FAILED" column has no entry (indicated by
+a dash: \*(Aq\-\*(Aq) then this Attribute is OK now (not failing) and has
+also never failed in the past.
+.Sp
+The table column labeled "UPDATED" shows if the SMART Attribute values
+are updated during both normal operation and off-line testing, or
+only during offline testing. The former are labeled "Always" and the
+latter are labeled "Offline".
+.Sp
+So to summarize: the Raw Attribute values are the ones that might have
+a real physical interpretation, such as "Temperature Celsius",
+"Hours", or "Start-Stop Cycles". Each manufacturer converts these,
+using their detailed knowledge of the disk's operations and failure
+modes, to Normalized Attribute values in the range 1\(en254. The
+current and worst (lowest measured) of these Normalized Attribute
+values are stored on the disk, along with a Threshold value that the
+manufacturer has determined will indicate that the disk is going to
+fail, or that it has exceeded its design age or aging limit.
+\fBsmartctl\fP does \fBnot\fP calculate any of the Attribute values,
+thresholds, or types, it merely reports them from the SMART data on
+the device.
+.Sp
+Note that starting with ATA/ATAPI-4, revision 4, the meaning of these
+Attribute fields has been made entirely vendor-specific. However most
+newer ATA/SATA disks seem to respect their meaning, so we have retained
+the option of printing the Attribute values.
+.Sp
+Solid-state drives use different meanings for some of the attributes.
+In this case the attribute name printed by smartctl is incorrect unless
+the drive is already in the smartmontools drive database.
+.Sp
+Note that the ATA command SMART READ DATA was declared obsolete in
+ATA ACS-4 Revision 10 (Nov 2015).
+.Sp
+[SCSI] For SCSI devices the "attributes" are obtained from the temperature
+and start-stop cycle counter log pages.
+Certain vendor specific attributes are listed if recognised.
+The attributes are output in a relatively free format (compared with ATA
+disk attributes).
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+[NVMe] For NVMe devices the attributes are obtained from the SMART/Health
+Information log.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.TP
+.B \-f FORMAT, \-\-format=FORMAT
+[ATA only] Selects the output format of the attributes:
+.Sp
+.I old
+\- Old smartctl format.
+This is the default unless the \*(Aq\-x\*(Aq option is specified.
+.Sp
+.I brief
+\- New format which fits into 80 columns (except in some rare cases).
+This format also decodes four additional attribute flags.
+This is the default if the \*(Aq\-x\*(Aq option is specified.
+.Sp
+.I hex,id
+\- Print all attribute IDs as hexadecimal numbers.
+.Sp
+.I hex,val
+\- Print all normalized values as hexadecimal numbers.
+.Sp
+.I hex
+\- Same as \*(Aq\-f hex,id \-f hex,val\*(Aq.
+.TP
+.B \-l TYPE, \-\-log=TYPE
+Prints various device logs.
+The valid arguments to this option are:
+.Sp
+.I error
+\- [ATA] prints the Summary SMART error log. SMART disks maintain a log
+of the most recent five non-trivial errors. For each of these errors, the
+disk power-on lifetime at which the error occurred is recorded, as is
+the device status (idle, standby, etc) at the time of the error. For
+some common types of errors, the Error Register (ER) and Status
+Register (SR) values are decoded and printed as text.
+The meanings of these are:
+.Vb 5
+ \fBABRT\fP: Command \fBAB\fPo\fBRT\fPed
+ \fBAMNF\fP: \fBA\fPddress \fBM\fPark \fBN\fPot \fBF\fPound
+ \fBCCTO\fP: \fBC\fPommand \fBC\fPompletion \fBT\fPimed \fBO\fPut
+ \fBEOM\fP: \fBE\fPnd \fBO\fPf \fBM\fPedia
+ \fBICRC\fP: \fBI\fPnterface \fBC\fPyclic \fBR\fPedundancy \fBC\fPode (CRC) error
+ \fBIDNF\fP: \fBID\fPentity \fBN\fPot \fBF\fPound
+ \fBILI\fP: (packet command-set specific)
+ \fBMC\fP: \fBM\fPedia \fBC\fPhanged
+ \fBMCR\fP: \fBM\fPedia \fBC\fPhange \fBR\fPequest
+ \fBNM\fP: \fBN\fPo \fBM\fPedia
+ \fBobs\fP: \fBobs\fPolete
+ \fBTK0NF\fP: \fBT\fPrac\fBK 0 N\fPot \fBF\fPound
+ \fBUNC\fP: \fBUNC\fPorrectable Error in Data
+ \fBWP\fP: Media is \fBW\fPrite \fBP\fProtected
+.Ve
+In addition, up to the last five commands that preceded the error are
+listed, along with a timestamp measured from the start of the
+corresponding power cycle. This is displayed in the form
+Dd+HH:MM:SS.msec where D is the number of days, HH is hours, MM is
+minutes, SS is seconds and msec is milliseconds. [Note: this time
+stamp wraps after 2^32 milliseconds, or 49 days 17 hours 2 minutes and
+47.296 seconds.] The key ATA disk registers are also recorded in the
+log. The final column of the error log is a text-string description
+of the ATA command defined by the Command Register (CR) and Feature
+Register (FR) values. Commands that are obsolete in the most current
+spec are listed like this: \fBREAD LONG (w/ retry) [OBS-4]\fP,
+indicating that the command became obsolete with or in the ATA-4
+specification. Similarly, the notation \fB[RET\-\fP\fIN\fP\fB]\fP is
+used to indicate that a command was retired in the ATA-\fIN\fP
+specification. Some commands are not defined in any version of the
+ATA specification but are in common use nonetheless; these are marked
+\fB[NS]\fP, meaning non-standard.
+.Sp
+The ATA Specification (ATA ACS-2 Revision 7, Section A.7.1) says:
+\fB"Error log data structures shall include, but are not limited to,
+Uncorrectable errors, ID Not Found errors for which the LBA requested was
+valid, servo errors, and write fault errors. Error log data structures
+shall not include errors attributed to the receipt of faulty commands."\fP
+The definitions of these terms are:
+.br
+\fBUNC\fP (\fBUNC\fPorrectable): data is uncorrectable. This refers
+to data which has been read from the disk, but for which the Error
+Checking and Correction (ECC) codes are inconsistent. In effect, this
+means that the data can not be read.
+.br
+\fBIDNF\fP (\fBID N\fPot \fBF\fPound): user-accessible address could
+not be found. For READ LOG type commands, \fBIDNF\fP can also indicate
+that a device data log structure checksum was incorrect.
+.Sp
+If the command that caused the error was a READ or WRITE command, then
+the Logical Block Address (LBA) at which the error occurred will be
+printed in base 10 and base 16. The LBA is a linear address, which
+counts 512-byte sectors on the disk, starting from zero. (Because of
+the limitations of the SMART error log, if the LBA is greater than
+0xfffffff, then either no error log entry will be made, or the error
+log entry will have an incorrect LBA. This may happen for drives with
+a capacity greater than 128 GiB or 137 GB.) On Linux systems the
+smartmontools web page has instructions about how to convert the LBA
+address to the name of the disk file containing the erroneous disk
+sector.
+.Sp
+Please note that some manufacturers \fBignore\fP the ATA
+specifications, and make entries in the error log if the device
+receives a command which is not implemented or is not valid.
+.Sp
+.I error
+\- [SCSI] prints the error counter log pages for reads, write and verifies.
+The verify row is only output if it has an element other than zero.
+.Sp
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I error[,NUM]
+\- [NVMe] prints the NVMe Error Information log.
+Only the 16 most recent log entries are printed by default.
+This number can be changed by the optional parameter NUM.
+The maximum number of log entries is vendor specific
+(in the range from 1 to 256 inclusive).
+.Sp
+Note that the contents of this log is not preserved across power cycles or
+controller resets, but the value of \*(AqError Information Log Entries\*(Aq
+from SMART/Health Information log is.
+.Sp
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I xerror[,NUM][,error]
+\- [ATA only] prints the Extended Comprehensive SMART error log
+(General Purpose Log address 0x03). Unlike the Summary SMART error
+log (see \*(Aq\-l error\*(Aq above), it provides sufficient space to log
+the contents of the 48-bit LBA register set introduced with ATA-6.
+It also supports logs with more than one sector. Each sector holds
+up to 4 log entries.
+The actual number of log sectors is vendor specific.
+.Sp
+Only the 8 most recent error log entries are printed by default.
+This number can be changed by the optional parameter NUM.
+.Sp
+If \*(Aq,error\*(Aq is appended and the Extended Comprehensive SMART error
+log is not supported, the Summary SMART self-test log is printed.
+.Sp
+Please note that recent drives may report errors only in the Extended
+Comprehensive SMART error log. The Summary SMART error log may be reported
+as supported but is always empty then.
+.Sp
+.I selftest
+\- [ATA] prints the SMART self-test log. The disk maintains a self-test
+log showing the results of the self tests, which can be run using the
+\*(Aq\-t\*(Aq option described below. For each of the most recent
+twenty-one self-tests, the log shows the type of test (short or
+extended, off-line or captive) and the final status of the test. If
+the test did not complete successfully, then the percentage of the
+test remaining is shown. The time at which the test took place,
+measured in hours of disk lifetime, is also printed. [Note: this time
+stamp wraps after 2^16 hours, or 2730 days and 16 hours, or about 7.5
+years.]
+If any errors were detected, the Logical Block Address (LBA)
+of the first error is printed in decimal notation.
+.Sp
+.I selftest
+\- [SCSI] the self-test log for a SCSI device has a slightly different
+format than for an ATA device. For each of the most recent twenty
+self-tests, it shows the type of test and the status (final or in
+progress) of the test. SCSI standards use the terms "foreground" and
+"background" (rather than ATA's corresponding "captive" and
+"off-line") and "short" and "long" (rather than ATA's corresponding
+"short" and "extended") to describe the type of the test. The printed
+segment number is only relevant when a test fails in the third or
+later test segment. It identifies the test that failed and consists
+of either the number of the segment that failed during the test, or
+the number of the test that failed and the number of the segment in
+which the test was run, using a vendor-specific method of putting both
+numbers into a single byte. The Logical Block Address (LBA) of the
+first error is printed in hexadecimal notation.
+If provided, the SCSI Sense Key (SK), Additional Sense Code (ASC) and
+Additional Sense Code Qualifier (ASCQ) are also printed. The self tests
+can be run using the \*(Aq\-t\*(Aq option described below (using the ATA
+test terminology).
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+.I selftest
+\- [NVMe: NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+prints the NVMe self-test log.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+.I xselftest[,NUM][,selftest]
+\- [ATA only] prints the Extended SMART self-test log (General Purpose
+Log address 0x07). Unlike the SMART self-test log (see \*(Aq\-l selftest\*(Aq
+above), it supports 48-bit LBA and logs with more than one sector.
+Each sector holds up to 19 log entries.
+The actual number of log sectors is vendor specific.
+.Sp
+Only the 25 most recent log entries are printed by default.
+This number can be changed by the optional parameter NUM.
+.Sp
+If \*(Aq,selftest\*(Aq is appended and the Extended SMART self-test log is not
+supported, the old SMART self-test log is printed.
+.Sp
+.I selective
+\- [ATA only] Please see the \*(Aq\-t select\*(Aq option below for a
+description of selective self-tests. The selective self-test log
+shows the start/end Logical Block Addresses (LBA) of each of the five
+test spans, and their current test status. If the span is being
+tested or the remainder of the disk is being read-scanned, the
+current 65536-sector block of LBAs being tested is also displayed.
+The selective self-test log also shows if a read-scan of the
+remainder of the disk will be carried out after the selective
+self-test has completed (see \*(Aq\-t afterselect\*(Aq option) and the time
+delay before restarting this read-scan if it is interrupted (see
+\*(Aq\-t pending\*(Aq option).
+.Sp
+.I directory[,gs]
+\- [ATA only] if the device supports the General Purpose Logging feature
+set (ATA-6 and above) then this prints the Log Directory (the log at
+address 0). The Log Directory shows what logs are available and their
+length in sectors (512 bytes). The contents of the logs at address 1
+[Summary SMART error log] and at address 6 [SMART self-test log] may
+be printed using the previously-described
+.I error
+and
+.I selftest
+arguments to this option.
+If your version of smartctl supports 48-bit ATA commands, both the
+General Purpose Log (GPL) and SMART Log (SL) directories are printed in
+one combined table. The output can be restricted to the GPL directory or
+SL directory by \*(Aq\-l directory,q\*(Aq or \*(Aq\-l directory,s\*(Aq
+respectively.
+.Sp
+.I background
+\- [SCSI only] the background scan results log outputs information derived
+from Background Media Scans (BMS) done after power up and/or periodically
+(e.g.\& every 24 hours) on recent SCSI disks. If supported, the BMS status
+is output first, indicating whether a background scan is currently
+underway (and if so a progress percentage), the amount of time the disk
+has been powered up and the number of scans already completed.
+Then there is a header and a line for each background scan "event".
+These will typically be either recovered or unrecoverable errors.
+That latter group may need some attention.
+There is a description of the background scan mechanism in section 4.18 of
+SBC-3 revision 6 (see www.t10.org ).
+.Sp
+.I scttemp, scttempsts, scttemphist
+\- [ATA only] prints the disk temperature information provided by the
+SMART Command Transport (SCT) commands.
+The option \*(Aqscttempsts\*(Aq prints current temperature and temperature
+ranges returned by the SCT Status command, \*(Aqscttemphist\*(Aq prints
+temperature limits and the temperature history table returned by
+the SCT Data Table command, and \*(Aqscttemp\*(Aq prints both.
+The temperature values are preserved across power cycles.
+The logging interval can be configured with the
+\*(Aq\-l scttempint,N[,p]\*(Aq option, see below.
+The SCT commands were introduced in ATA8-ACS and were also
+supported by many ATA-7 disks.
+.Sp
+.I scttempint,N[,p]
+\- [ATA only] clears the SCT temperature history table and sets the
+time interval for temperature logging to N minutes.
+If \*(Aq,p\*(Aq is specified, the setting is preserved across power cycles.
+Otherwise, the setting is volatile and will be reverted to the last
+non-volatile setting by the next hard reset. The default interval
+is vendor specific, typical values are 1, 2, or 5 minutes.
+.Sp
+.I scterc[,READTIME,WRITETIME][,p|reset]
+\- [ATA only] prints values and descriptions of the SCT Error Recovery
+Control settings.
+These are equivalent to TLER (as used by Western Digital), CCTL (as used
+by Samsung and Hitachi/HGST) and ERC (as used by Seagate).
+READTIME and WRITETIME arguments (deciseconds) set the specified values.
+Values of 0 disable the feature, other values less than 65 are probably not
+supported.
+For RAID configurations, this is typically set to 70,70 deciseconds.
+.br
+[NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+If \*(Aqscterc,READTIME,WRITETIME,p\*(Aq is specified, these time values
+will be persistent over a power-on reset.
+If \*(Aqscterc,p\*(Aq is specified, the persistent over power-on values
+are printed.
+If \*(Aqscterc,reset\*(Aq is specified, all SCT timer settings are restored
+to the manufacturer's default value.
+The \*(Aq,p\*(Aq and \*(Aq,reset\*(Aq options require the device to support
+ATA ACS-4 or higher.
+.Sp
+.I devstat[,PAGE]
+\- [ATA only] prints values and descriptions of the ATA Device Statistics
+log pages (General Purpose Log address 0x04). If no PAGE number is specified,
+entries from all supported pages are printed. If PAGE 0 is specified,
+the list of supported pages is printed. Device Statistics was
+introduced in ACS-2 and is only supported by some recent devices.
+.Sp
+.I defects[,NUM]
+\- [ATA] prints LBA and hours values from the ATA Pending Defects log
+(General Purpose Log address 0x0c).
+Only the 31 entries from first log page are printed by default.
+This number can be changed by the optional parameter NUM.
+The size of the log and the order of the entries are vendor specific.
+The Pending Defects log was introduced in ACS-4 Revision 01 (Mar 2014).
+.Sp
+.I defects
+\- [SCSI: NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE] prints LBAs that the background
+scan was unable to read (i.e. a defect). Entries, if any, show the defective
+LBA and the value of the power\-on hours (since manufacture) when the background
+scan found the defect. Note these pending defects may appear in advance of any
+application trying to read a defective LBA.
+.Sp
+.I envrep
+\- [SCSI only: NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+prints values and descriptions of the SCSI Environmental reporting log
+page. This includes one or more temperatures and may include relative
+humidities. Lifetime maximums and minimums are also reported.
+.Sp
+.I genstats
+\- [SCSI only: NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+prints values and descriptions of the SCSI General statistics and performance
+log page.
+.Sp
+.I sataphy[,reset]
+\- [SATA only] prints values and descriptions of the SATA Phy Event
+Counters (General Purpose Log address 0x11). If \*(Aq\-l sataphy,reset\*(Aq
+is specified, all counters are reset after reading the values.
+This also works for SATA devices with Packet interface like CD/DVD
+drives.
+.Sp
+.I sasphy[,reset]
+\- [SAS (SCSI) only] prints values and descriptions of the SAS (SSP)
+Protocol Specific log page (log page 0x18). If \*(Aq\-l sasphy,reset\*(Aq
+is specified, all counters are reset after reading the values.
+.Sp
+.I tapealert
+\- [SCSI tape drives and changers: NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+prints values and descriptions of the (SSC) Tape Alert log page. See
+\fBTAPE DRIVES\fP below for issue associated with printing this log page.
+.Sp
+.I tapedevstat
+\- [SCSI tape drives and changers: NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+prints values and descriptions of the (SSC) Device Statistics log page.
+.Sp
+.I zdevstat
+\- [SCSI zoned disks: NEW EXPERIMENTAL SMARTCTL 7.3 FEATURE]
+prints values and descriptions of the Zoned Block Device Statistics log
+page (ZBC\-2).
+.Sp
+.I gplog,ADDR[,FIRST[\-LAST|+SIZE]]
+\- [ATA only] prints a hex dump of any log accessible via General
+Purpose Logging (GPL) feature. The log address ADDR is the hex address
+listed in the log directory (see \*(Aq\-l directory\*(Aq above).
+The range of log sectors (pages) can be specified by decimal values
+FIRST\-LAST or FIRST+SIZE. FIRST defaults to 0, SIZE defaults to 1.
+LAST can be set to \*(Aqmax\*(Aq to specify the last page of the log.
+.Sp
+.I smartlog,ADDR[,FIRST[\-LAST|+SIZE]]
+\- [ATA only] prints a hex dump of any log accessible via SMART Read
+Log command. See \*(Aq\-l gplog,...\*(Aq above for parameter syntax.
+.Sp
+For example, all these commands:
+.Vb 3
+ smartctl \-l gplog,0x80,10\-15 /dev/sda
+ smartctl \-l gplog,0x80,10+6 /dev/sda
+ smartctl \-l smartlog,0x80,10\-15 /dev/sda
+.Ve
+print pages 10\(en15 of log 0x80 (first host vendor specific log).
+.Sp
+The hex dump format is compatible with the \*(Aqxxd \-r\*(Aq command.
+This command:
+.Vb 1
+ smartctl \-l gplog,0x11 /dev/sda | grep ^0 | xxd \-r >log.bin
+.Ve
+writes a binary representation of the one sector log 0x11
+(SATA Phy Event Counters) to file log.bin.
+.Sp
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I nvmelog,PAGE,SIZE
+\- [NVMe only] prints a hex dump of the first SIZE bytes from the NVMe
+log with identifier PAGE.
+PAGE is a hexadecimal number in the range from 0x1 to 0xff.
+SIZE is a hexadecimal number in the range from 0x4 to 0x4000 (16 KiB).
+\fBWARNING: Do not specify the identifier of an unknown log page.
+Reading a log page may have undesirable side effects.\fP
+.Sp
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.I ssd
+\- [ATA] prints the Solid State Device Statistics log page.
+This has the same effect as \*(Aq\-l devstat,7\*(Aq, see above.
+.Sp
+.I ssd
+\- [SCSI] prints the Solid State Media percentage used endurance
+indicator. A value of 0 indicates as new condition while 100
+indicates the device is at the end of its lifetime as projected by the
+manufacturer.
+The value may reach 255.
+.Sp
+.I farm
+\- [Seagate ATA or SAS (SCSI) only: NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+prints predictive drive health metrics and values from Seagate's
+vendor-specific Field Access Reliability Metrics (FARM) log when used
+on a drive supporting FARM.
+ATA and SAS logs differ slightly.
+\fBWARNING: Some Seagate drives do not support FARM.\fP
+.TP
+.B \-v ID,FORMAT[:BYTEORDER][,NAME], \-\-vendorattribute=ID,FORMAT...
+[ATA only] Sets a vendor-specific raw value print FORMAT, an optional
+BYTEORDER and an optional NAME for Attribute ID.
+This option may be used multiple times.
+.Sp
+The Attribute ID can be in the range 1 to 255.
+If \*(AqN\*(Aq is specified as ID, the settings for all Attributes are changed.
+.Sp
+The optional BYTEORDER consists of 1 to 8 characters from the
+set \*(Aq012345rvwz\*(Aq.
+The characters \*(Aq0\*(Aq to \*(Aq5\*(Aq select the byte 0 to 5 from the
+48-bit raw value, \*(Aqr\*(Aq selects the reserved byte of the attribute
+data block, \*(Aqv\*(Aq selects the normalized value, \*(Aqw\*(Aq selects
+the worst value and \*(Aqz\*(Aq inserts a zero byte.
+The default BYTEORDER is \*(Aq543210\*(Aq for all 48-bit formats,
+\*(Aqr543210\*(Aq for the 54-bit formats, and \*(Aq543210wv\*(Aq for the
+64-bit formats.
+For example, \*(Aq\-v 5,raw48:012345\*(Aq prints the raw value of
+attribute 5 with big endian instead of little endian
+byte ordering.
+.Sp
+The NAME is a string of letters, digits and underscore. Its length should
+not exceed 23 characters.
+The \*(Aq\-P showall\*(Aq option reports an error if this is the case.
+.Sp
+.I \-v help
+\- Prints (to STDOUT) a list of all valid arguments to this option,
+then exits.
+.Sp
+Valid arguments for FORMAT are:
+.Sp
+.I raw8
+\- Print the Raw value as six 8-bit unsigned base-10 integers.
+This may be useful for decoding the meaning of the Raw value.
+.Sp
+.I raw16
+\- Print the Raw value as three 16-bit unsigned base-10 integers.
+This may be useful for decoding the meaning of the Raw value.
+.Sp
+.I raw48
+\- Print the Raw value as a 48-bit unsigned base-10 integer.
+This is the default for most attributes.
+.Sp
+.I hex48
+\- Print the Raw value as a 12 digit hexadecimal number.
+This may be useful for decoding the meaning of the Raw value.
+.Sp
+.I raw56
+\- Print the Raw value as a 54-bit unsigned base-10 integer.
+This includes the reserved byte which follows the 48-bit raw value.
+.Sp
+.I hex56
+\- Print the Raw value as a 14 digit hexadecimal number.
+This includes the reserved byte which follows the 48-bit raw value.
+.Sp
+.I raw64
+\- Print the Raw value as a 64-bit unsigned base-10 integer.
+This includes two bytes from the normalized and worst attribute value.
+This raw format is used by some SSD devices with Indilinx controller.
+.Sp
+.I hex64
+\- Print the Raw value as a 16 digit hexadecimal number.
+This includes two bytes from the normalized and worst attribute value.
+This raw format is used by some SSD devices with Indilinx controller.
+.Sp
+.I min2hour
+\- Raw Attribute is power-on time in minutes. Its raw value
+will be displayed in the form "Xh+Ym". Here X is hours, and Y is
+minutes in the range 0\(en59 inclusive. Y is always printed with two
+digits, for example "06" or "31" or "00".
+.Sp
+.I sec2hour
+\- Raw Attribute is power-on time in seconds. Its raw value
+will be displayed in the form "Xh+Ym+Zs". Here X is hours, Y is
+minutes in the range 0\(en59 inclusive, and Z is seconds in the range
+0\(en59 inclusive. Y and Z are always printed with two digits, for
+example "06" or "31" or "00".
+.Sp
+.I halfmin2hour
+\- Raw Attribute is power-on time, measured in units of 30
+seconds. This format is used by some Samsung disks. Its raw value
+will be displayed in the form "Xh+Ym". Here X is hours, and Y is
+minutes in the range 0\(en59 inclusive. Y is always printed with two
+digits, for example "06" or "31" or "00".
+.Sp
+.I msec24hour32
+\- Raw Attribute is power-on time measured in 32-bit hours and 24-bit
+milliseconds since last hour update. It will be displayed in the form
+"Xh+Ym+Z.Ms". Here X is hours, Y is minutes, Z is seconds and M is
+milliseconds.
+.Sp
+.I tempminmax
+\- Raw Attribute is the disk temperature in Celsius. Info about
+Min/Max temperature is printed if available. This is the default
+for Attributes 190 and 194. The recording interval (lifetime,
+last power cycle, last soft reset) of the min/max values is device
+specific.
+.Sp
+.I temp10x
+\- Raw Attribute is ten times the disk temperature in Celsius.
+.Sp
+.I raw16(raw16)
+\- Print the raw attribute as a 16-bit value and two optional
+16-bit values if these words are nonzero. This is the default
+for Attributes 5 and 196.
+.Sp
+.I raw16(avg16)
+\- Raw attribute is spin-up time. It is printed as a 16-bit value
+and an optional "Average" 16-bit value if the word is nonzero.
+This is the default for Attribute 3.
+.Sp
+.I raw24(raw8)
+\- Print the raw attribute as a 24-bit value and three optional
+8-bit values if these bytes are nonzero. This is the default
+for Attribute 9.
+.Sp
+.I raw24/raw24
+\- Raw Attribute contains two 24-bit values. The first is the
+number of load cycles. The second is the number of unload cycles.
+The difference between these two values is the number of times that
+the drive was unexpectedly powered off (also called an emergency
+unload). As a rule of thumb, the mechanical stress created by one
+emergency unload is equivalent to that created by one hundred normal
+unloads.
+.Sp
+.I raw24/raw32
+\- Raw attribute is an error rate which consists of a 24-bit error
+count and a 32-bit total count.
+.Sp
+The following old arguments to \*(Aq\-v\*(Aq are also still valid:
+.Sp
+.I 9,minutes
+\- same as:
+.I 9,min2hour,Power_On_Minutes.
+.Sp
+.I 9,seconds
+\- same as:
+.I 9,sec2hour,Power_On_Seconds.
+.Sp
+.I 9,halfminutes
+\- same as:
+.I 9,halfmin2hour,Power_On_Half_Minutes.
+.Sp
+.I 9,temp
+\- same as:
+.I 9,tempminmax,Temperature_Celsius.
+.Sp
+.I 192,emergencyretractcyclect
+\- same as:
+.I 192,raw48,Emerg_Retract_Cycle_Ct
+.Sp
+.I 193,loadunload
+\- same as:
+.I 193,raw24/raw24.
+.Sp
+.I 194,10xCelsius
+\- same as:
+.I 194,temp10x,Temperature_Celsius_x10.
+.Sp
+.I 194,unknown
+\- same as:
+.I 194,raw48,Unknown_Attribute.
+.Sp
+.I 197,increasing
+\- same as:
+.I 197,raw48,Total_Pending_Sectors.
+Also means that Attribute number 197 (Current Pending Sector Count)
+is not reset if uncorrectable sectors are reallocated
+(see \fBsmartd.conf\fP(5) man page).
+.Sp
+.I 198,increasing
+\- same as:
+.I 198,raw48,Total_Offl_Uncorrectabl.
+Also means that Attribute number 198 (Offline Uncorrectable Sector Count)
+is not reset if uncorrectable sectors are reallocated
+(see \fBsmartd.conf\fP(5) man page).
+.Sp
+.I 198,offlinescanuncsectorct
+\- same as:
+.I 198,raw48,Offline_Scan_UNC_SectCt.
+.Sp
+.I 200,writeerrorcount
+\- same as:
+.I 200,raw48,Write_Error_Count.
+.Sp
+.I 201,detectedtacount
+\- same as:
+.I 201,raw48,Detected_TA_Count.
+.Sp
+.I 220,temp
+\- same as:
+.I 220,tempminmax,Temperature_Celsius.
+.TP
+.B \-F TYPE, \-\-firmwarebug=TYPE
+[ATA only] Modifies the behavior of \fBsmartctl\fP to compensate for some
+known and understood device firmware or driver bug. This option may be used
+multiple times. The valid arguments are:
+.Sp
+.I none
+\- Assume that the device firmware obeys the ATA specifications. This
+is the default, unless the device has presets for \*(Aq\-F\*(Aq in the
+drive database. Using this option on the command line will override any
+preset values.
+.Sp
+.I nologdir
+\- Suppresses read attempts of SMART or GP Log Directory.
+Support for all standard logs is assumed without an actual check.
+Some Intel SSDs may freeze if log address 0 is read.
+.Sp
+.I samsung
+\- In some Samsung disks (example: model SV4012H Firmware Version:
+RM100-08) some of the two- and four-byte quantities in the SMART data
+structures are byte-swapped (relative to the ATA specification).
+Enabling this option tells \fBsmartctl\fP to evaluate these quantities
+in byte-reversed order. Some signs that your disk needs this option
+are (1) no self-test log printed, even though you have run self-tests;
+(2) very large numbers of ATA errors reported in the ATA error log;
+(3) strange and impossible values for the ATA error log timestamps.
+.Sp
+.I samsung2
+\- In some Samsung disks the number of ATA errors reported is byte swapped.
+Enabling this option tells \fBsmartctl\fP to evaluate this quantity in
+byte-reversed order. An indication that your Samsung disk needs this
+option is that the self-test log is printed correctly, but there are a
+very large number of errors in the SMART error log. This is because
+the error count is byte swapped. Thus a disk with five errors
+(0x0005) will appear to have 20480 errors (0x5000).
+.Sp
+.I samsung3
+\- Some Samsung disks (at least SP2514N with Firmware VF100-37) report
+a self-test still in progress with 0% remaining when the test was already
+completed. Enabling this option modifies the output of the self-test
+execution status (see options \*(Aq\-c\*(Aq or \*(Aq\-a\*(Aq above)
+accordingly.
+.Sp
+.I xerrorlba
+\- Fixes LBA byte ordering in Extended Comprehensive SMART error log.
+Some disks use little endian byte ordering instead of ATA register
+ordering to specify the LBA addresses in the log entries.
+.Sp
+.I swapid
+\- Fixes byte swapped ATA identify strings (device name, serial number,
+firmware version) returned by some buggy device drivers.
+.TP
+.B \-P TYPE, \-\-presets=TYPE
+[ATA only] Specifies whether \fBsmartctl\fP should use any preset options
+that are available for this drive. By default, if the drive is recognized
+in the \fBsmartmontools\fP database, then the presets are used.
+.Sp
+The argument
+.I show
+will show any preset options for your drive and the argument
+.I showall
+will show all known drives in the \fBsmartmontools\fP database, along
+with their preset options. If there are no presets for your drive and
+you think there should be (for example, a \-v or \-F option is needed
+to get \fBsmartctl\fP to display correct values) then please contact
+the \fBsmartmontools\fP developers so that this information can be
+added to the \fBsmartmontools\fP database. Contact information is at the
+end of this man page.
+.Sp
+The valid arguments to this option are:
+.Sp
+.I use
+\- if a drive is recognized, then use the stored presets for it. This
+is the default. Note that presets will NOT override additional
+Attribute interpretation (\*(Aq\-v N,something\*(Aq) command-line options or
+explicit \*(Aq\-F\*(Aq command-line options..
+.Sp
+.I ignore
+\- do not use presets.
+.Sp
+.I show
+\- show if the drive is recognized in the database, and if so, its
+presets, then exit.
+.Sp
+.I showall
+\- list all recognized drives, and the presets that are set for them,
+then exit. This also checks the drive database regular expressions
+and settings for syntax errors.
+.Sp
+The \*(Aq\-P showall\*(Aq option takes up to two optional arguments to
+match a specific drive type and firmware version.
+The command:
+.Vb 1
+ smartctl \-P showall
+.Ve
+lists all entries, the command:
+.Vb 1
+ smartctl \-P showall \*(AqMODEL\*(Aq
+.Ve
+lists all entries matching MODEL, and the command:
+.Vb 1
+ smartctl \-P showall \*(AqMODEL\*(Aq \*(AqFIRMWARE\*(Aq
+.Ve
+lists all entries for this MODEL and a specific FIRMWARE version.
+.TP
+.B \-B [+]FILE, \-\-drivedb=[+]FILE
+[ATA only] Read the drive database from FILE. The new database replaces
+the built in database by default. If \*(Aq+\*(Aq is specified, then the new
+entries prepend the built in entries.
+.Sp
+Optional entries are read from the file
+.\" %IF NOT OS Windows
+\fB/usr/local/etc/smart_drivedb.h\fP
+.\" %ENDIF NOT OS Windows
+.\" %IF OS ALL
+(Windows: \fBEXEDIR/drivedb-add.h\fP)
+.\" %ENDIF OS ALL
+.\" %IF OS Windows
+.\"! \fBEXEDIR/drivedb-add.h\fP
+.\" %ENDIF OS Windows
+.\" %IF ENABLE_DRIVEDB
+if this option is not specified.
+.Sp
+If
+.\" %IF NOT OS Windows
+\fB/usr/local/var/lib/smartmontools/drivedb.h\fP
+.\" %ENDIF NOT OS Windows
+.\" %IF OS ALL
+(Windows: \fBEXEDIR/drivedb.h\fP)
+.\" %ENDIF OS ALL
+.\" %IF OS Windows
+.\"! \fBEXEDIR/drivedb.h\fP
+.\" %ENDIF OS Windows
+is present, the contents of this file is used instead of the built in table.
+.\" %IF ENABLE_UPDATE_SMART_DRIVEDB
+.Sp
+Run
+.\" %IF NOT OS Windows
+\fB/usr/local/sbin/update-smart-drivedb\fP
+.\" %ENDIF NOT OS Windows
+.\" %IF OS ALL
+(Windows: \fBEXEDIR/update-smart-drivedb.exe\fP)
+.\" %ENDIF OS ALL
+.\" %IF OS Windows
+.\"! \fBEXEDIR/update-smart-drivedb.exe\fP
+.\" %ENDIF OS Windows
+to update this file from the smartmontools SVN repository.
+.\" %ENDIF ENABLE_UPDATE_SMART_DRIVEDB
+.\" %ENDIF ENABLE_DRIVEDB
+.Sp
+The database files use the same C/C++ syntax that is used to initialize
+the built in database array.
+C/C++ style comments are allowed.
+Example:
+.Sp
+.Vb 8
+ /* Full entry: */
+ {
+ "Model family", // Info about model family/series.
+ "MODEL1.*REGEX", // Regular expression to match model of device.
+ "VERSION.*REGEX", // Regular expression to match firmware version(s).
+ "Some warning", // Warning message.
+ "\-v 9,minutes" // String of preset \-v and \-F options.
+ },
+ /* Minimal entry: */
+ {
+ "", // No model family/series info.
+ "MODEL2.*REGEX", // Regular expression to match model of device.
+ "", // All firmware versions.
+ "", // No warning.
+ "" // No options preset.
+ },
+ /* USB ID entry: */
+ {
+ "USB: Device; Bridge", // Info about USB device and bridge name.
+ "0x1234:0xabcd", // Regular expression to match vendor:product ID.
+ "0x0101", // Regular expression to match bcdDevice.
+ "", // Not used.
+ "\-d sat" // String with device type option.
+ },
+ /* ... */
+.Ve
+.Sp
+.TP
+.B SMART RUN/ABORT OFFLINE TEST AND self-test OPTIONS:
+.TP
+.B \-t TEST, \-\-test=TEST
+Executes TEST immediately. The \*(Aq\-C\*(Aq option can be used in
+conjunction with this option to run the short or long (and also for
+ATA devices, selective or conveyance) self-tests in captive mode
+(known as "foreground mode" for SCSI devices). Note that only one
+test type can be run at a time, so only one test type should be
+specified per command line. Note also that if a computer is shutdown
+or power cycled during a self-test, no harm should result. The
+self-test will either be aborted or will resume automatically.
+.Sp
+All \*(Aq\-t TEST\*(Aq commands can be given during normal system operation
+unless captive mode (\*(Aq\-C\*(Aq option) is used.
+A running self-test can, however, degrade performance of the drive.
+Frequent I/O requests from the operating system increase the duration
+of a test. These impacts may vary from device to device.
+.Sp
+If a test failure occurs then the device may discontinue the testing
+and report the result immediately.
+.Sp
+[ATA]
+Note that the ATA command SMART EXECUTE OFF-LINE IMMEDIATE (the command to
+start a test) was declared obsolete in ATA ACS-4 Revision 10 (Nov 2015).
+.Sp
+The valid arguments to this option are:
+.Sp
+.I offline
+\- [ATA] runs SMART Immediate Offline Test. This immediately
+starts the test described above. This command can be given during
+normal system operation. The effects of this test are visible only in
+that it updates the SMART Attribute values, and if errors are
+found they will appear in the SMART error log, visible with the
+\*(Aq\-l error\*(Aq option.
+.Sp
+If the \*(Aq\-c\*(Aq option to \fBsmartctl\fP shows that the device has the
+"Suspend Offline collection upon new command" capability then you can
+track the progress of the Immediate Offline test using the \*(Aq\-c\*(Aq
+option to \fBsmartctl\fP. If the \*(Aq\-c\*(Aq option show that the device
+has the "Abort Offline collection upon new command" capability then
+most commands will abort the Immediate Offline Test, so you should not
+try to track the progress of the test with \*(Aq\-c\*(Aq, as it will abort
+the test.
+.Sp
+.I offline
+\- [SCSI] runs the default self test in foreground.
+No entry is placed in the self test log.
+.Sp
+.I short
+\- [ATA] runs SMART Short Self Test (usually under ten minutes).
+This command can be given during normal system operation (unless run in
+captive mode \- see the \*(Aq\-C\*(Aq option below). This is a
+test in a different category than the immediate or automatic offline
+tests. The "Self" tests check the electrical and mechanical
+performance as well as the read performance of the disk. Their
+results are reported in the Self Test Error Log, readable with
+the \*(Aq\-l selftest\*(Aq option. Note that on some disks the progress of
+the self-test can be monitored by watching this log during the self-test;
+with other disks use the \*(Aq\-c\*(Aq option to monitor progress.
+.Sp
+.I short
+\- [SCSI] runs the "Background short" self-test.
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+.I short
+\- [NVMe: NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+runs the "Short" self-test for current namespace.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+.I long
+\- [ATA] runs SMART Extended Self Test (tens of minutes to several hours).
+This is a longer and more thorough version of the Short Self Test described
+above. Note that this command can be given during normal
+system operation (unless run in captive mode \- see the \*(Aq\-C\*(Aq option
+below).
+.Sp
+.I long
+\- [SCSI] runs the "Background long" self-test.
+.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+.I long
+\- [NVMe: NEW EXPERIMENTAL SMARTCTL 7.4 FEATURE]
+runs the "Extended" self-test for current namespace.
+.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin
+.Sp
+.I conveyance
+\- [ATA only] runs a SMART Conveyance Self Test (minutes). This
+self-test routine is intended to identify damage incurred during
+transporting of the device. This self-test routine should take on the
+order of minutes to complete. Note that this command can be given
+during normal system operation (unless run in captive mode \- see the
+\*(Aq\-C\*(Aq option below).
+.Sp
+.I select,N\-M, select,N+SIZE
+\- [ATA only] runs a SMART Selective Self Test, to test a \fBrange\fP
+of disk Logical Block Addresses (LBAs), rather than the entire disk.
+Each range of LBAs that is checked is called a "span" and is specified
+by a starting LBA (N) and an ending LBA (M) with N less than or equal
+to M.
+The range can also be specified as N+SIZE.
+A span at the end of a disk can be specified by N\-\fBmax\fP.
+.Sp
+For example the commands:
+.Vb 2
+ smartctl \-t select,10\-20 /dev/sda
+ smartctl \-t select,10+11 /dev/sda
+.Ve
+both runs a self test on one span consisting of LBAs ten to twenty
+(inclusive).
+The command:
+.Vb 1
+ smartctl \-t select,100000000\-max /dev/sda
+.Ve
+run a self test from LBA 100000000 up to the end of the disk.
+The \*(Aq\-t\*(Aq option can be given up to five times, to test
+up to five spans. For example the command:
+.Vb 1
+ smartctl \-t select,0\-100 \-t select,1000\-2000 /dev/sda
+.Ve
+runs a self test on two spans. The first span consists of 101 LBAs
+and the second span consists of 1001 LBAs. Note that the spans can
+overlap partially or completely, for example:
+.Vb 1
+ smartctl \-t select,0\-10 \-t select,5\-15 \-t select,10\-20 /dev/sda
+.Ve
+The results of the selective self-test can be obtained (both during
+and after the test) by printing the SMART self-test log, using the
+\*(Aq\-l selftest\*(Aq option to smartctl.
+.Sp
+Selective self tests are particularly useful as disk capacities
+increase: an extended self test (smartctl \-t long) can take several
+hours. Selective self-tests are helpful if (based on SYSLOG error
+messages, previous failed self-tests, or SMART error log entries) you
+suspect that a disk is having problems at a particular range of
+Logical Block Addresses (LBAs).
+.Sp
+Selective self-tests can be run during normal system operation (unless
+done in captive mode \- see the \*(Aq\-C\*(Aq option below).
+.Sp
+The following variants of the selective self-test command use spans based
+on the ranges from past tests already stored on the disk:
+.Sp
+.I select,redo[+SIZE]
+\- [ATA only] redo the last SMART Selective Self Test using the same LBA
+range.
+The starting LBA is identical to the LBA used by last test, same for ending
+LBA unless a new span size is specified by optional +SIZE argument.
+.Sp
+For example the commands:
+.Vb 3
+ smartctl \-t select,10\-20 /dev/sda
+ smartctl \-t select,redo /dev/sda
+ smartctl \-t select,redo+20 /dev/sda
+.Ve
+have the same effect as:
+.Vb 3
+ smartctl \-t select,10\-20 /dev/sda
+ smartctl \-t select,10\-20 /dev/sda
+ smartctl \-t select,10\-29 /dev/sda
+.Ve
+.Sp
+.I select,next[+SIZE]
+\- [ATA only] runs a SMART Selective Self Test on the LBA range which
+follows the range of the last test.
+The starting LBA is set to (ending LBA +1) of the last test.
+A new span size may be specified by the optional +SIZE argument.
+.Sp
+For example the commands:
+.Vb 3
+ smartctl \-t select,0\-999 /dev/sda
+ smartctl \-t select,next /dev/sda
+ smartctl \-t select,next+2000 /dev/sda
+.Ve
+have the same effect as:
+.Vb 3
+ smartctl \-t select,0\-999 /dev/sda
+ smartctl \-t select,1000\-1999 /dev/sda
+ smartctl \-t select,2000\-3999 /dev/sda
+.Ve
+.Sp
+If the last test ended at the last LBA of the disk, the new range starts
+at LBA 0. The span size of the last span of a disk is adjusted such that
+the total number of spans to check the full disk will not be changed
+by future uses of \*(Aq\-t select,next\*(Aq.
+.Sp
+.I select,cont[+SIZE]
+\- [ATA only] performs a \*(Aqredo\*(Aq (above) if the self test status
+reports that the last test was aborted by the host.
+Otherwise it run the \*(Aqnext\*(Aq (above) test.
+.Sp
+.I afterselect,on
+\- [ATA only] perform an offline read scan after a Selective self-test
+has completed. This option must be used together with one or more of
+the \fIselect,N\-M\fP options above. If the LBAs that have been
+specified in the Selective self-test pass the test with no errors
+found, then read scan the \fBremainder\fP of the disk. If the device
+is powered-cycled while this read scan is in progress, the read scan
+will be automatically resumed after a time specified by the pending
+timer (see below). The value of this option is preserved between
+selective self-tests.
+.Sp
+.I afterselect,off
+\- [ATA only] do not read scan the remainder of the disk after a
+Selective self-test has completed. This option must be use together
+with one or more of the \fIselect,N\-M\fP options above. The value of this
+option is preserved between selective self-tests.
+.Sp
+.I pending,N
+\- [ATA only] set the pending offline read scan timer to N minutes.
+Here N is an integer in the range from 0 to 65535 inclusive. If the
+device is powered off during a read scan after a Selective self-test,
+then resume the test automatically N minutes after power-up. This
+option must be use together with one or more of the \fIselect,N\-M\fP
+options above.
+The value of this option is preserved between selective self-tests.
+.Sp
+.I vendor,N
+\- [ATA only] issues the ATA command SMART EXECUTE OFF-LINE IMMEDIATE
+with subcommand N in LBA LOW register. The subcommand is specified as
+a hex value in the range 0x00 to 0xff. Subcommands 0x40\(en0x7e and
+0x90\(en0xff are reserved for vendor specific use, see table 61 of
+T13/1699-D Revision 6a (ATA8-ACS). Note that the subcommands
+0x00\(en0x04, 0x7f, 0x81\(en0x84 are supported by other smartctl options
+(e.g.\& 0x01: \*(Aq\-t short\*(Aq, 0x7f: \*(Aq\-X\*(Aq, 0x82:
+\*(Aq\-C \-t long\*(Aq).
+.Sp
+\fBWARNING: Only run subcommands documented by the vendor of the
+device.\fP
+.Sp
+Example for some Intel SSDs only:
+The subcommand 0x40 (\*(Aq\-t vendor,0x40\*(Aq) clears the timed workload
+related SMART attributes (226, 227, 228). Note that the raw values of
+these attributes are held at 65535 (0xffff) until the workload timer
+reaches 60 minutes.
+.Sp
+.I force
+\- start new self-test even if another test is already running.
+By default a running self-test will not be interrupted to begin another
+test.
+.TP
+.B \-C, \-\-captive
+[ATA] Runs self-tests in captive mode. This has no effect with \*(Aq\-t
+offline\*(Aq or if the \*(Aq\-t\*(Aq option is not used.
+.Sp
+\fBWARNING: Tests run in captive mode may busy out the drive for the
+length of the test. Only run captive tests on drives without any
+mounted partitions!\fP
+.Sp
+[SCSI] Runs the self-test in "Foreground" mode.
+.TP
+.B \-X, \-\-abort
+Aborts non-captive SMART Self Tests. Note that this
+command will abort the Offline Immediate Test routine only if your
+disk has the "Abort Offline collection upon new command" capability.
+.Sp
+.SH ATA, SCSI command sets and SAT
+In the past there has been a clear distinction between storage devices
+that used the ATA and SCSI command sets. This distinction was often
+reflected in their device naming and hardware. Now various SCSI
+transports (e.g.\& SAS, FC and iSCSI) can interconnect to both SCSI
+disks (e.g.\& FC and SAS) and ATA disks (especially SATA). USB and
+IEEE 1394 storage devices use the SCSI command set externally but
+almost always contain ATA or SATA disks (or flash). The storage
+subsystems in some operating systems have started to remove the
+distinction between ATA and SCSI in their device naming policies.
+.PP
+99% of operations that an OS performs on a disk involve the SCSI INQUIRY,
+READ CAPACITY, READ and WRITE commands, or their ATA equivalents. Since
+the SCSI commands are slightly more general than their ATA equivalents,
+many OSes are generating SCSI commands (mainly READ and WRITE) and
+letting a lower level translate them to their ATA equivalents as the
+need arises. An important note here is that "lower level" may be in
+external equipment and hence outside the control of an OS.
+.PP
+SCSI to ATA Translation (SAT) is a standard (ANSI INCITS 431-2007) that
+specifies how this translation is done. For the other 1% of operations
+that an OS performs on a disk, SAT provides two options. First is an
+optional ATA PASS-THROUGH SCSI command (there are two variants).
+The second is a translation from the closest SCSI command.
+Most current interest is in the "pass-through" option.
+.PP
+The relevance to smartmontools (and hence smartctl) is that its
+interactions with disks fall solidly into the "1%" category. So even
+if the OS can happily treat (and name) a disk as "SCSI", smartmontools
+needs to detect the native command set and act accordingly.
+As more storage manufacturers (including external SATA drives) comply
+with SAT, smartmontools is able to automatically distinguish the native
+command set of the device.
+In some cases the \*(Aq\-d sat\*(Aq option is needed on the command line.
+.PP
+There are also virtual disks which typically have no useful information
+to convey to smartmontools, but could conceivably in the future. An
+example of a virtual disk is the OS's view of a RAID 1 box. There are
+most likely two SATA disks inside a RAID 1 box. Addressing those SATA
+disks from a distant OS is a challenge for smartmontools. Another
+approach is running a tool like smartmontools inside the RAID 1 box (e.g.
+a Network Attached Storage (NAS) box) and fetching the logs via a
+browser.
+.Sp
+.SH TAPE DRIVES
+Commands for SCSI Tape drives as defined in the SSC\-4 standard (ANSI
+INCITS 516\-2013). SSC stands for "SCSI Streaming Commands". Draft
+standards can be found at <\fBhttps://www.t10.org/\fP> .
+.PP
+Many SMART related features of SCSI disks are shared by SCSI tape drives.
+One important tape\-specific log page is called "TapeAlert" which is used
+to report abnormal conditions. Unlike most other log pages the TapeAlert
+log page
+.B clears
+pending alerts after that page is fetched (i.e. read from
+the tape drive). To be more precise, the TapeAlert log page is cleared
+for the I_T nexus (initiator-target pair) that sent the (SCSI LOG SENSE)
+command; so another initiator (e.g. a HBA on another machine) will still
+have pending alerts reported. [This clearing action can be controlled by
+the TAPLSD bit is the [SSC] Device Configuration Extension mode page but
+the original and default action remains: clear any pending TapeAlerts.
+The sdparm utility can be used to access and change TAPLSD.]
+.PP
+Previous versions of smartctl have supported polling the TapeAlert log
+page when the \-\-health option is given. This clearing of pending alerts
+has created problems for other tape\-specific tools. This version of
+smartctl will only fetch the TapeAlert log page if the \-\-health option
+is given
+.B twice
+in the command line invocation (or the \-\-log=tapealert option is given).
+.PP
+There are other tape\-specific log pages such as \-\-log=tapedevstat
+that behave normally (i.e. they don't change any state information in
+the tape drive).
+.Sp
+.SH EXAMPLES
+.B smartctl \-a /dev/sda
+.br
+Print a large amount of SMART information for drive /dev/sda.
+.PP
+.B smartctl \-s off /dev/sdd
+.br
+Disable SMART monitoring and data log collection on drive /dev/sdd.
+.PP
+.B smartctl \-\-smart=on \-\-offlineauto=on \-\-saveauto=on /dev/sda
+.br
+Enable SMART on drive /dev/sda, enable automatic offline
+testing every four hours, and enable autosaving of
+SMART Attributes. This is a good start-up line for your system's
+init files. You can issue this command on a running system.
+.PP
+.B smartctl \-t long /dev/sdc
+.br
+Begin an extended self-test of drive /dev/sdc. You can issue this
+command on a running system. The results can be seen in the self-test
+log visible with the \*(Aq\-l selftest\*(Aq option after it has completed.
+.PP
+.B smartctl \-s on \-t offline /dev/sda
+.br
+Enable SMART on the disk, and begin an immediate offline test of
+drive /dev/sda. You can issue this command on a running system. The
+results are only used to update the SMART Attributes, visible
+with the \*(Aq\-A\*(Aq option. If any device errors occur, they are logged to
+the SMART error log, which can be seen with the \*(Aq\-l error\*(Aq option.
+.PP
+.B smartctl \-A \-v 9,minutes /dev/sda
+.br
+Shows the vendor Attributes, when the disk stores its power-on time
+internally in minutes rather than hours.
+.PP
+.B smartctl \-q errorsonly \-H \-l selftest /dev/sda
+.br
+Produces output only if the device returns failing SMART status,
+or if some of the logged self-tests ended with errors.
+.PP
+.B smartctl \-q silent \-a /dev/sda
+.br
+Examine all SMART data for device /dev/sda, but produce no
+printed output. You must use the exit status (the
+.B $?
+shell variable) to learn if any Attributes are out of bound, if the
+SMART status is failing, if there are errors recorded in the
+self-test log, or if there are errors recorded in the disk error log.
+.PP
+.B smartctl \-a \-d 3ware,0 /dev/twl0
+.br
+Examine all SMART data for the first SATA (not SAS) disk connected to a
+3ware RAID 9750 controller card.
+.PP
+.B smartctl \-t long \-d areca,4 /dev/sg2
+.br
+Start a long self-test on the fourth SATA disk connected to an Areca RAID
+controller addressed by /dev/sg2.
+.PP
+.B smartctl \-a \-d hpt,1/3 /dev/sda (under Linux)
+.br
+.B smartctl \-a \-d hpt,1/3 /dev/hptrr (under FreeBSD)
+.br
+Examine all SMART data for the (S)ATA disk directly connected to the third
+channel of the first HighPoint RocketRAID controller card.
+.PP
+.B smartctl \-t short \-d hpt,1/1/2 /dev/sda (under Linux)
+.br
+.B smartctl \-t short \-d hpt,1/1/2 /dev/hptrr (under FreeBSD)
+.br
+Start a short self-test on the (S)ATA disk connected to second pmport on the
+first channel of the first HighPoint RocketRAID controller card.
+.PP
+.B smartctl \-t select,10\-100 \-t select,30\-300 \-t afterselect,on \-t pending,45 /dev/sda
+.br
+Run a selective self-test on LBAs 10 to 100 and 30 to 300. After the
+these LBAs have been tested, read-scan the remainder of the disk.
+If the disk is power-cycled during the read-scan, resume the scan 45 minutes
+after power to the device is restored.
+.PP
+.B smartctl \-a \-d cciss,0 /dev/cciss/c0d0
+.br
+Examine all SMART data for the first SCSI disk connected to a cciss
+RAID controller card.
+.Sp
+.SH EXIT STATUS
+The exit statuses of \fBsmartctl\fP are defined by a bitmask.
+If all is well with the disk, the exit status (return value) of
+\fBsmartctl\fP is 0 (all bits turned off). If a problem occurs, or an
+error, potential error, or fault is detected, then a non-zero status
+is returned. In this case, the eight different bits in the exit status
+have the following meanings for ATA disks; some of these values
+may also be returned for SCSI disks.
+.TP
+.B Bit 0:
+Command line did not parse.
+.TP
+.B Bit 1:
+Device open failed, device did not return an IDENTIFY DEVICE structure,
+or device is in a low-power mode (see \*(Aq\-n\*(Aq option above).
+.TP
+.B Bit 2:
+Some SMART or other ATA command to the disk failed, or there was a checksum
+error in a SMART data structure (see \*(Aq\-b\*(Aq option above).
+.TP
+.B Bit 3:
+SMART status check returned "DISK FAILING".
+.TP
+.B Bit 4:
+We found prefail Attributes <= threshold.
+.TP
+.B Bit 5:
+SMART status check returned "DISK OK" but we found that some (usage
+or prefail) Attributes have been <= threshold at some time in the
+past.
+.TP
+.B Bit 6:
+The device error log contains records of errors.
+.TP
+.B Bit 7:
+The device self-test log contains records of errors.
+[ATA only] Failed self-tests outdated by a newer successful extended
+self-test are ignored.
+.PP
+To test within the shell for whether or not the different bits are
+turned on or off, you can use the following type of construction
+(which should work with any POSIX compatible shell):
+.br
+.B smartstat=$(($? & 8))
+.br
+This looks at only at bit 3 of the exit status
+.B $?
+(since 8=2^3). The shell variable
+$smartstat will be nonzero if SMART status check returned "disk
+failing" and zero otherwise.
+.PP
+This shell script prints all status bits:
+.Vb 5
+val=$?; mask=1
+for i in 0 1 2 3 4 5 6 7; do
+ echo "Bit $i: $(((val & mask) && 1))"
+ mask=$((mask << 1))
+done
+.Ve
+.Sp
+.\" %IF NOT OS Windows
+.SH FILES
+.TP
+.B /usr/local/sbin/smartctl
+full path of this executable.
+.\" %IF ENABLE_DRIVEDB
+.TP
+.B /usr/local/var/lib/smartmontools/drivedb.h
+drive database (see \*(Aq\-B\*(Aq option).
+.\" %ENDIF ENABLE_DRIVEDB
+.TP
+.B /usr/local/etc/smart_drivedb.h
+optional local drive database (see \*(Aq\-B\*(Aq option).
+.Sp
+.\" %ENDIF NOT OS Windows
+.SH AUTHORS
+\fBBruce Allen\fP (project initiator),
+.br
+\fBChristian Franke\fP (project manager, Windows port and all sort of things),
+.br
+\fBDouglas Gilbert\fP (SCSI subsystem),
+.br
+\fBVolker Kuhlmann\fP (moderator of support and database mailing list),
+.br
+\fBGabriele Pohl\fP (wiki & development team support),
+.br
+\fBAlex Samorukov\fP (FreeBSD port and more, new Trac wiki).
+.PP
+Many other individuals have made contributions and corrections,
+see AUTHORS, ChangeLog and repository files.
+.PP
+The first smartmontools code was derived from the smartsuite package,
+written by Michael Cornwell and Andre Hedrick.
+.Sp
+.SH REPORTING BUGS
+To submit a bug report, create a ticket in smartmontools wiki:
+.br
+<\fBhttps://www.smartmontools.org/\fP>.
+.br
+Alternatively send the info to the smartmontools support mailing list:
+.br
+<\fBhttps://listi.jpberlin.de/mailman/listinfo/smartmontools-support\fB>.
+.Sp
+.SH SEE ALSO
+\fBsmartd\fP(8).
+.\" %IF ENABLE_UPDATE_SMART_DRIVEDB
+.br
+\fBupdate-smart-drivedb\fP(8).
+.\" %ENDIF ENABLE_UPDATE_SMART_DRIVEDB
+.Sp
+.SH REFERENCES
+Please see the following web site for more info:
+<\fBhttps://www.smartmontools.org/\fP>
+.PP
+An introductory article about smartmontools is \fIMonitoring Hard
+Disks with SMART\fP, by Bruce Allen, Linux Journal, January 2004,
+pages 74\(en77.
+See <\fBhttps://www.linuxjournal.com/article/6983\fP>.
+.PP
+If you would like to understand better how SMART works, and what it
+does, a good place to start is with Sections 4.8 and 6.54 of the first
+volume of the \*(AqAT Attachment with Packet Interface-7\*(Aq (ATA/ATAPI-7)
+specification Revision 4b. This documents the SMART functionality which the
+\fBsmartmontools\fP utilities provide access to.
+.PP
+The functioning of SMART was originally defined by the SFF-8035i
+revision 2 and the SFF-8055i revision 1.4 specifications. These are
+publications of the Small Form Factors (SFF) Committee.
+.PP
+Links to these and other documents may be found on the Links page of the
+\fBsmartmontools\fP Wiki at <\fBhttps://www.smartmontools.org/wiki/Links\fP>.
+.Sp
+.SH PACKAGE VERSION
+CURRENT_SVN_VERSION CURRENT_SVN_DATE CURRENT_SVN_REV
+.br
+$Id: smartctl.8.in 5521 2023-07-24 16:44:49Z chrfranke $