Updated: 2021/Apr/14

ATACTL(8)                   System Manager's Manual                  ATACTL(8)

     atactl - a program to manipulate ATA (IDE) devices and busses

     atactl device command [arg [...]]

     atactl allows a user or system administrator to issue commands to and
     otherwise control devices which reside on standard IDE and ATA
     controllers, or the ATA bus itself.  It is used by specifying a device or
     bus to manipulate, the command to perform, and any arguments the command
     may require.

     You may also control devices which are inside a SCSI enclosure, this
     includes many USB disks.  In this case ATA commands are passed through
     the SCSI layer using SATL commands.

     The following commands may be used on IDE and ATA devices.  Note that not
     all devices support all commands.

     identify   Identify the specified device, displaying the device's vendor,
                product, revision strings, and the device's capabilities.

     idle       Place the specified device into Idle mode.  This mode may
                consume less power than Active mode.

     standby    Place the specified device into Standby mode.  This mode will
                consume less power than Idle mode.

     sleep      Place the specified device into Sleep mode.  This mode will
                consume less power than Standby mode, but requires a device
                reset to resume operation.  Typically the wd(4) driver
                performs this reset automatically, but this should still be
                used with caution.

     setidle idle-timer
                Places the specified device into Idle mode, and sets the Idle
                timer to idle-timer seconds.  A value of 0 will disable the
                Idle timer.

     setstandby standby-timer
                Places the specified device into Standby mode, and sets the
                Standby timer to standby-timer seconds.  A value of 0 will
                disable the Standby timer.

                Will print out if the device is in Active, Idle, or Standby
                power management mode.

     apm [disable | set #]
                Controls the Advanced Power Management feature of the
                specified device.  Advanced Power Management is an optional
                feature used to specify a power management level to balance
                between device performance and power consumption.

                disable         Disable the Advanced Power Management.

                set #           Enable the Advanced Power Management feature
                                and set its level to the value #, where # is
                                an integer within the scale 0-253; being 0 the
                                mode with the lowest power consumption (and
                                thus the worse performance) and 253 the mode
                                which provides the better performance at a
                                cost of more power consumption.

                                It should be noted that the effect of the
                                value need not be continous.  For example, a
                                device might provide only two modes: one from
                                0 to 126 and other from 127 to 253.  Per the
                                specification, values of 127 and higher do not
                                permit the device to spin down to save power.

     smart [enable | disable | status [vendor] | offline # | error-log |
                Controls SMART feature set of the specified device.  SMART
                stands for Self-Monitoring, Analysis, and Reporting
                Technology.  It provides an early warning system by comparing
                subtle operation characteristics to those determined in vendor
                testing to precede device failures.

                enable          Enables access to SMART capabilities within
                                the device.  Prior to being enabled, a SMART
                                capable device neither monitors nor saves
                                SMART attribute values.  The state of SMART,
                                either enabled or disabled, will be preserved
                                by the device across power cycles.

                disable         Disables access to SMART capabilities within
                                the device.  Attribute values will be saved,
                                and will no longer be monitored.

                status [vendor]
                                Reports whether SMART is supported by the
                                device, and whether SMART is enabled on the
                                device (can only be determined on ATA6 or
                                better devices).  If SMART is enabled, then a
                                table of attribute information is printed.
                                Attributes are the specific performance or
                                calibration parameters that are used in
                                analyzing the status of the device.  The
                                specific set of attributes being used and the
                                identity of these attributes is vendor
                                specific and proprietary.

                                Attribute values are used to represent the
                                relative reliability of individual performance
                                or calibration parameters.  The valid range of
                                attribute values is from 1 to 253 decimal.
                                Lower values indicate that the analysis
                                algorithms being used by the device are
                                predicting a higher probability of a degrading
                                or faulty condition.

                                Each attribute value has a corresponding
                                threshold limit which is used for direct
                                comparison to the attribute value to indicate
                                the existence of a degrading or faulty
                                condition.  The numerical value of the
                                attribute thresholds are determined by the
                                device manufacturer through design and
                                reliability testing and analysis.  Each
                                attribute threshold represents the lowest
                                limit to which its corresponding attribute
                                value can equal while still retaining a
                                positive reliability status.

                                If the crit field is "yes" then negative
                                reliability of this attribute predicts
                                imminent data loss.  Otherwise it merely
                                indicates that the intended design life period
                                of usage or age has been exceeded.  The
                                collect field indicates whether this attribute
                                is updated while the device is online.  The
                                reliability field indicates whether the
                                attribute value is within the acceptable

                                If the vendor argument is supplied, a vendor-
                                specific table will be used for SMART
                                information if known to atactl.  Currently,
                                only "micron" has a vendor-specific table.  If
                                the vendor is not supplied, it may be guessed
                                from devices' model or other data available.

                offline #       Runs the numbered offline self-test on the

                error-log       Prints the error log.

                selftest-log    Prints the self-test log.

     security [status | freeze | setpass | unlock | disable | erase]
                Controls "security" (password protection) features of modern
                ATA drives.  The security commands are intended to be issued
                by low-level software (firmware / BIOS) only.  Generally, the
                security status should be "frozen" before the operating system
                is started so that misbehaving or malicious software cannot
                set or change a password.  Older and buggy BIOSes neglect to
                do so; in these cases it might make sense to issue the
                "freeze" command early in the boot process.

                status    displays the drive's security status

                freeze    freezes the drive's security status

                setpass [user | master]
                          sets the drive's user or master password

                unlock [user | master]
                          unlocks a password-protected drive

                disable [user | master]
                          disables password protection

                erase [user | master]
                          erases the device and clears security state, using
                          enhanced erasure if the drive supports it; may take
                          a long time to run

                Note that to erase a drive, it must have a password set and be
                unfrozen.  If you can't persuade your firmware to leave the
                drive unfrozen on boot, but it is a SATA drive, say wd2 at
                atabus3, that you can safely physically disconnect and
                reconnect, then you may be able to use SATA hot-plug to work
                around this: first run

                      # drvctl -d wd2

                Then physically disconnect and reconnect the drive, and run

                      # drvctl -r -a ata_hl atabus3

                After this, check that the security status does not list

                      # atactl wd2 security status

     The following commands may be used on IDE and ATA busses.  Note that not
     all devices support all commands.

     reset    Reset the bus.  This will reset all ATA devices present on the
              bus.  Any ATAPI device with pending commands will also be reset.

     To erase wd2 which is currently unfrozen and has no password set:

           # atactl wd2 security status
           # atactl wd2 security setpass user
           Confirm password:
           # atactl wd2 security status
           # atactl wd2 security erase user
           Erasing may take up to 0h 2m 0s...

     ioctl(2), wd(4), dkctl(8), drvctl(8), scsictl(8)

     The atactl command first appeared in NetBSD 1.4.

     The atactl command was written by Ken Hornstein.  It was based heavily on
     the scsictl(8) command written by Jason R. Thorpe.  Matthew R. Green
     significantly enhanced the smart status support.  Michael van Elst added
     support for SATL.

     The output from the identify command is rather ugly.

     Support for master passwords is not implemented.

     The NetBSD kernel behaves poorly with drives that have passwords set and
     are locked.

     The smart status command currently guesses the vendor attribute name
     table to use, and may be wrong or miss supported devices.

     SATL bus commands don't work yet.

NetBSD 9.99                      March 2, 2019                     NetBSD 9.99