hdparm
HDPARM(M)                                               HDPARM(M)



NAME
       hdparm - get/set hard disk parameters

SYNOPSIS
       hdparm [ flags ] [device] ..

DESCRIPTION
       hdparm  provides  a command line interface to various hard
       disk ioctls supported by the stock  Linux  ATA/IDE  device
       driver  subsystem.   Some  options may work correctly only
       with the latest kernels.  For best results, compile hdparm
       with the include files from the latest kernel source code.

OPTIONS
       When no flags are given, -acdgkmnru is assumed.

       -a     Get/set sector  count  for  filesystem  read-ahead.
              This  is  used to improve performance in sequential
              reads of large  files,  by  prefetching  additional
              blocks  in anticipation of them being needed by the
              running  task.   In  the  current  kernel   version
              (2.0.10)  this  has  a default setting of 8 sectors
              (4KB).  This value seems good  for  most  purposes,
              but in a system where most file accesses are random
              seeks, a smaller setting might provide better  per-
              formance.   Also, many IDE drives also have a sepa-
              rate built-in read-ahead function, which alleviates
              the need for a filesystem read-ahead in many situa-
              tions.

       -A     Disable/enable the IDE drive's read-lookahead  fea-
              ture (usually ON by default).

       -b     Get/set bus state.

       -B     Get  setting  of Advanced Power Management feature,
              if the drive supports it.

       -c     Query/enable (E)IDE 32-bit I/O support.  A  numeric
              parameter  can be used to enable/disable 32-bit I/O
              support: Currently supported values  include  0  to
              disable 32-bit I/O support, 1 to enable 32-bit data
              transfers, and 3 to enable  32-bit  data  transfers
              with  a  special  sync  sequence  required  by many
              chipsets.  The value 3 works with nearly all 32-bit
              IDE  chipsets,  but  incurs slightly more overhead.
              Note that "32-bit" refers to data transfers  across
              a  PCI  or  VLB bus to the interface card only; all
              (E)IDE drives still have only a  16-bit  connection
              over the ribbon cable from the interface card.

       -C     Check the current IDE power mode status, which will
              always be one of unknown (drive  does  not  support
              this   command),  active/idle  (normal  operation),
              standby (low power mode, drive has spun  down),  or
              sleeping  (lowest  power  mode, drive is completely
              shut down).  The -S, -y, -Y, and -Z  flags  can  be
              used to manipulate the IDE power modes.

       -d     Disable/enable the "using_dma" flag for this drive.
              This option only works with a few  combinations  of
              drives  and  interfaces which support DMA and which
              are known to the IDE driver (and with all supported
              XT  interfaces).   In  particular, the Intel Triton
              chipset is supported for bus-mastered DMA operation
              with many drives (experimental).  It is also a good
              idea to use the -X34 option in combination with -d1
              to  ensure  that the drive itself is programmed for
              multiword DMA mode2.  Using DMA does not  necessar-
              ily provide any improvement in throughput or system
              performance, but many  folks  swear  by  it.   Your
              mileage may vary.

       -D     Enable/disable  the on-drive defect management fea-
              ture, whereby the drive firmware tries to automati-
              cally  manage  defective sectors by relocating them
              to "spare" sectors  reserved  by  the  factory  for
              such.

       -E     Set cdrom speed.  This is NOT necessary for regular
              operation, as the drive will  automatically  switch
              speeds  on  its  own.  But if you want to play with
              it, just supply a speed number  after  the  option,
              usually a number like 2 or 4.

       -f     Sync  and  flush the buffer cache for the device on
              exit.  This operation is also performed as part  of
              the -t and -T timings.

       -g     Display  the drive geometry (cylinders, heads, sec-
              tors), the size (in sectors) of the device, and the
              starting offset (in sectors) of the device from the
              beginning of the drive.

       -h     Display terse usage information (help).

       -i     Display the identification info that  was  obtained
              from the drive at boot time, if available.  This is
              a feature of modern IDE drives, and may not be sup-
              ported  by older devices.  The data returned may or
              may not be current,  depending  on  activity  since
              booting  the system.  However, the current multiple
              sector mode count is  always  shown.   For  a  more
              detailed interpretation of the identification info,
              refer to AT Attachment Interface  for  Disk  Drives
              (ANSI  ASC X3T9.2 working draft, revision 4a, April
              19/93).

       -I     Request  identification  info  directly  from   the
              drive,  which is displayed in a new expanded format
              with considerably more detail than with  the  older
              -i flag.

       -k     Get/set  the  keep_settings_over_reset flag for the
              drive.  When this flag is set, the driver will pre-
              serve  the -dmu options over a soft reset, (as done
              during the error  recovery  sequence).   This  flag
              defaults to off, to prevent drive reset loops which
              could be caused by combinations of  -dmu  settings.
              The  -k flag should therefore only be set after one
              has achieved confidence in correct system operation
              with  a  chosen  set of configuration settings.  In
              practice, all that is typically necessary to test a
              configuration (prior to using -k) is to verify that
              the drive can be read/written, and  that  no  error
              logs (kernel messages) are generated in the process
              (look in /var/adm/messages on most systems).

       -K     Set  the  drive's  keep_features_over_reset   flag.
              Setting  this  enables the drive to retain the set-
              tings for -APSWXZ over a soft reset (as done during
              the  error recovery sequence).  Not all drives sup-
              port this feature.

       -L     Set the drive's doorlock  flag.   Setting  this  to
              will  lock  the  door  mechanism of some removeable
              hard drives (eg. Syquest, ZIP, Jazz..), and setting
              it to maintains the door locking mechanism automat-
              ically, depending on drive usage (locked whenever a
              filesystem  is  mounted).   But on system shutdown,
              this can be a nuisance if the root partition is  on
              a removeable disk, since the root partition is left
              mounted (read-only) after shutdown.  So,  by  using
              this command to unlock the door the root filesystem
              is remounted read-only, one  can  then  remove  the
              cartridge from the drive after shutdown.

       -m     Get/set sector count for multiple sector I/O on the
              drive.  A setting of 0 disables this feature.  Mul-
              tiple  sector  mode (aka IDE Block Mode), is a fea-
              ture of most modern IDE hard drives, permitting the
              transfer  of  multiple  sectors  per I/O interrupt,
              rather than the usual  one  sector  per  interrupt.
              When  this feature is enabled, it typically reduces
              operating system overhead for disk I/O  by  30-50%.
              On  many  systems,  it also provides increased data
              throughput  of  anywhere  from  5%  to  50%.   Some
              drives,   however   (most  notably  the  WD  Caviar
              series), seem to  run  slower  with  multiple  mode
              enabled.   Your mileage may vary.  Most drives sup-
              port the minimum settings of 2, 4, 8, or  16  (sec-
              tors).   Larger  settings  may  also  be  possible,
              depending on the drive.  A  setting  of  16  or  32
              seems  optimal  on  many  systems.  Western Digital
              recommends lower settings of 4  to  8  on  many  of
              their  drives,  due  tiny  (32kB) drive buffers and
              non-optimized buffering algorithms.   The  -i  flag
              can  be  used to find the maximum setting supported
              by an installed drive (look for MaxMultSect in  the
              output).   Some  drives  claim  to support multiple
              mode, but lose data at some settings.   Under  rare
              circumstances,  such failures can result in massive
              filesystem corruption.

       -n     Get or set the "ignore write errors"  flag  in  the
              driver.  Do NOT play with this without grokking the
              driver source code first.

       -p     Attempt to reprogram the IDE interface chipset  for
              the specified PIO mode, or attempt to auto-tune for
              the "best" PIO mode supported by the  drive.   This
              feature  is  supported in the kernel for only a few
              "known" chipsets, and even then the support is iffy
              at best.  Some IDE chipsets are unable to alter the
              PIO mode for a single drive,  in  which  case  this
              flag  may  cause the PIO mode for both drives to be
              set.  Many IDE chipsets  support  either  fewer  or
              more  than  the standard six (0 to 5) PIO modes, so
              the exact speed setting  that  is  actually  imple-
              mented  will vary by chipset/driver sophistication.
              Use with extreme caution!   This  feature  includes
              zero protection for the unwary, and an unsuccessful
              outcome may result in severe filesystem corruption!

       -P     Set the maximum sector count for the drive's inter-
              nal prefetch mechanism.   Not  all  drives  support
              this feature.

       -q     Handle  the  next  flag  quietly, supressing normal
              output.  This is useful for reducing screen clutter
              when running from /etc/rc.c/rc.local.  Not applica-
              ble to the -i or -v or -t or -T flags.

       -r     Get/set read-only flag for device.  When set, write
              operations are not permitted on the device.

       -R     Register  an IDE interface.  Dangerous.  See the -U
              option for more information.

       -S     Set the standby (spindown) timeout for  the  drive.
              This  value  is  used by the drive to determine how
              long to wait (with no disk activity) before turning
              off  the  spindle  motor to save power.  Under such
              circumstances, the drive may take  as  long  as  30
              seconds  to  respond  to  a subsequent disk access,
              though most drives are much quicker.  The  encoding
              of the timeout value is somewhat peculiar.  A value
              of zero means "off".  Values from 1 to 240  specify
              multiples of 5 seconds, for timeouts from 5 seconds
              to 20 minutes.  Values from 241 to 251 specify from
              1  to  11 units of 30 minutes, for timeouts from 30
              minutes to 5.5 hours.  A value of 252  signifies  a
              timeout  of  21  minutes, 253 sets a vendor-defined
              timeout, and 255 is interpreted as 21 minutes  plus
              15 seconds.

       -T     Perform  timings  of  cache reads for benchmark and
              comparison purposes.  For meaningful results,  this
              operation should be repeated 2-3 times on an other-
              wise inactive system (no  other  active  processes)
              with at least a couple of megabytes of free memory.
              This displays the speed of  reading  directly  from
              the  Linux  buffer cache without disk access.  This
              measurement is essentially  an  indication  of  the
              throughput  of  the processor, cache, and memory of
              the system under test.  If  the  -t  flag  is  also
              specified,  then  a  correction factor based on the
              outcome of -T will be incorporated into the  result
              reported for the -t operation.

       -t     Perform  timings  of device reads for benchmark and
              comparison purposes.  For meaningful results,  this
              operation should be repeated 2-3 times on an other-
              wise inactive system (no  other  active  processes)
              with at least a couple of megabytes of free memory.
              This displays the  speed  of  reading  through  the
              buffer  cache to the disk without any prior caching
              of data.  This measurement is an indication of  how
              fast  the  drive  can sustain sequential data reads
              under Linux, without any filesystem  overhead.   To
              ensure  accurate  measurments,  the buffer cache is
              flushed during the processing of -t using the  BLK-
              FLSBUF  ioctl.   If  the -T flag is also specified,
              then a correction factor based on the outcome of -T
              will  be  incorporated into the result reported for
              the -t operation.

       -u     Get/set interrupt-unmask flag  for  the  drive.   A
              setting  of  1  permits  the driver to unmask other
              interrupts during processing of a  disk  interrupt,
              which  greatly  improves Linux's responsiveness and
              eliminates "serial port overrun" errors.  Use  this
              feature  with caution: some drive/controller combi-
              nations do not tolerate the increased I/O latencies
              possible when this feature is enabled, resulting in
              massive  filesystem  corruption.   In   particular,
              CMD-640B  and RZ1000 (E)IDE interfaces can be unre-
              liable (due to a hardware flaw) when this option is
              used  with  kernel  versions  earlier  than 2.0.13.
              Disabling the IDE prefetch feature of these  inter-
              faces (usually a BIOS/CMOS setting) provides a safe
              fix for the problem for use with earlier kernels.

       -U     Un-register an IDE interface.  Dangerous.  The com-
              panion  for  the  -R option.  Intended for use with
              hardware made specifically for  hot-swapping  (very
              rare!).   Use with knowledge and extreme caution as
              this can easily hang or damage  your  system.   The
              hdparm  source  distribution  includes  a 'contrib'
              directory with some user-donated scripts  for  hot-
              swapping  on  the UltraBay of a ThinkPad 600E.  Use
              at your own risk.

       -v     Display all settings, except -i (same as -acdgkmnru
              for  IDE,  -gr  for SCSI or -adgr for XT).  This is
              also the default behaviour when no flags are speci-
              fied.   -TP  -w Perform a device reset (DANGEROUS).
              Do NOT use this option.   It  exists  for  unlikely
              situations   where  a  reboot  might  otherwise  be
              required to get a confused drive back into  a  use-
              able state.

       -W     Disable/enable  the  IDE drive's write-caching fea-
              ture (default  state  is  undeterminable;  manufac-
              turer/model specific).

       -X     Set  the  IDE  transfer  mode for newer (E)IDE/ATA2
              drives.  This is typically used in combination with
              -d1  when  enabling  DMA  to/from a drive on a sup-
              ported interface chipset (such as the  Intel  430FX
              Triton), where -X34 is used to select multiword DMA
              mode2 transfers.  With systems which support Ultra-
              DMA  burst timings, -X66 is used to select UltraDMA
              mode2 transfers (you'll need to prepare the chipset
              for  UltraDMA beforehand).  Apart from that, use of
              this flag is seldom necessary since most/all modern
              IDE  drives  default  to their fastest PIO transfer
              mode at power-on.  Fiddling with this can  be  both
              needless and risky.  On drives which support alter-
              nate transfer modes, -X can be used to  switch  the
              mode  of  the  drive  only.   Prior to changing the
              transfer mode, the IDE interface should be jumpered
              or  programmed  (see -p flag) for the new mode set-
              ting to prevent loss  and/or  corruption  of  data.
              Use  this  with extreme caution!  For the PIO (Pro-
              grammed Input/Output) transfer modes used by Linux,
              this  value  is  simply the desired PIO mode number
              plus 8.  Thus, a value of 09  sets  PIO  mode1,  10
              enables  PIO mode2, and 11 selects PIO mode3.  Set-
              ting 00 restores the drive's  "default"  PIO  mode,
              and  01  disables  IORDY.   For  multiword DMA, the
              value used is the desired DMA mode number plus  32.
              for  UltraDMA,  the  value  is the desired UltraDMA
              mode number plus 64.

       -y     Force an IDE drive to  immediately  enter  the  low
              power  consumption standby mode, usually causing it
              to spin down.  The current power mode status can be
              checked using the -C flag.

       -Y     Force  an IDE drive to immediately enter the lowest
              power consumption sleep mode, causing  it  to  shut
              down  completely.  A hard or soft reset is required
              before the drive can be accessed again  (the  Linux
              IDE  driver  will  automatically  handle  issuing a
              reset if/when needed).  The current power mode sta-
              tus can be checked using the -C flag.

       -Z     Disable the automatic power-saving function of cer-
              tain Seagate drives (ST3xxx  models?),  to  prevent
              them   from  idling/spinning-down  at  inconvenient
              times.

BUGS
       As noted above, the -m sectcount and -u 1  options  should
       be  used  with caution at first, preferably on a read-only
       filesystem.  Most drives work well  with  these  features,
       but  a few drive/controller combinations are not 100% com-
       patible.  Filesystem corruption may result.  Backup every-
       thing before experimenting!

       Some  options (eg. -r for SCSI) may not work with old ker-
       nels as necessary ioctl()'s were not supported.

       Although this utility is intended primarily for  use  with
       (E)IDE  hard disk devices, several of the options are also
       valid (and permitted) for use with SCSI hard disk  devices
       and MFM/RLL hard disks with XT interfaces.

AUTHOR
       hdparm  has  been  written by Mark Lord <mlord@pobox.com>,
       the primary developer and maintainer of the (E)IDE  driver
       for Linux, with suggestions from many netfolk.

       The  disable  Seagate auto-powersaving code is courtesy of
       Tomi Leppikangas(tomilepp@paju.oulu.fi).

SEE ALSO
       AT Attachment Interface for Disk Drives, ANSI  ASC  X3T9.2
       working draft, revision 4a, April 19, 1993.

       AT  Attachment Interface with Extensions (ATA-2), ANSI ASC
       X3T9.2 working draft, revision 2f, July 26, 1994.

       AT Attachment with Packet  Interface  -  5  (ATA/ATAPI-5),
       T13-1321D working draft, revision 3, February 29, 2000.

       Western  Digital  Enhanced  IDE  Implementation  Guide, by
       Western Digital Corporation, revision  5.0,  November  10,
       1993.

       Enhanced Disk Drive Specification, by Phoenix Technologies
       Ltd., version 1.0, January 25, 1994.



Version 4.5               November 2001                 HDPARM(M)