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  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

              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 its raw form with no

              appear mangled when using -I but that is NOT a bug.
              Otherwise similar to the -i option.

       -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 -b after  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

              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

              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


       -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 (usually OFF by default).

       -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

              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.

       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.


Man(1) output converted with man2html