HDPARM(8)                                                            HDPARM(8)

       hdparm - get/set hard disk parameters

       hdparm [ flags ] [device] ..

       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.

       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 performance.  Also, many IDE drives also have a  separate
              built-in  read-ahead  function,  which alleviates the need for a
              filesystem read-ahead in many situations.

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

       -b     Get/set bus state.

       -B     Set Advanced Power Management feature, if the drive supports it.
              A low value means aggressive power management and a  high  value
              means better performance. A value of 255 will disable apm on the

       -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 sup-
              ported values include 0 to disable  32-bit  I/O  support,  1  to
              enable 32-bit data transfers, and 3 to enable 32-bit data trans-
              fers 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  com-
              pletely 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
              now  works  with  most combinations of drives and PCI interfaces
              which support DMA and which are known to the IDE driver.  It  is
              also a good idea to use the appropriate -X option in combination
              with -d1 to ensure that the drive itself is programmed  for  the
              correct  DMA mode, although most BIOSs should do this for you at
              boot time.  Using DMA nearly always gives the best  performance,
              with  fast  I/O  throughput and low CPU usage.  But there are at
              least a few configurations of chipsets and drives for which  DMA
              does not make much of a difference, or may even slow things down
              (on really messed up hardware!).  Your mileage may vary.

       -D     Enable/disable the on-drive defect management  feature,  whereby
              the  drive firmware tries to automatically manage defective sec-
              tors by relocating them to "spare" sectors reserved by the  fac-
              tory 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, sectors), 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 supported 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

       -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.  There is a special "no seatbelts"
              variation on this option, -Istdin which cannot be combined  with
              any  other  options,  and  which  accepts a drive identification
              block as standard input instead of using a  /dev/hd*  parameter.
              The  format of this block must be exactly the same as that found
              in the  /proc/ide/*/hd*/identify  "files".   This  variation  is
              designed for use with "libraries" of drive identification infor-
              mation, and can also be used on  ATAPI  drives  which  may  give
              media errors with the standard mechanism.

       -k     Get/set  the  keep_settings_over_reset flag for the drive.  When
              this flag is set, the driver will preserve 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

       -K     Set the drive's  keep_features_over_reset  flag.   Setting  this
              enables the drive to retain the settings for -APSWXZ over a soft
              reset (as done during the error  recovery  sequence).   Not  all
              drives support 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
              automatically, 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.  Multiple sector mode (aka
              IDE Block Mode), is a feature 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  fea-
              ture  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 support the minimum settings of 2, 4, 8, or 16 (sectors).
              Larger settings may also be possible, depending on the drive.  A
              setting of 16 or 32 seems optimal on many systems.  Western Dig-
              ital  recommends  lower  settings  of  4  to  8 on many of their
              drives, due tiny (32kB) drive buffers and non-optimized  buffer-
              ing  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.

       -M     Get/set Automatic Acoustic Management (AAM) setting. Most modern
              harddisk drives have the ability to speed down  the  head  move-
              ments  to  reduce  their  noise output.  The possible values are
              between 0 and 254. 128 is the most quiet (and therefore slowest)
              setting  and  254  the  fastest  (and loudest). Some drives have
              ownly two levels (quiet / fast), while others may have different
              levels  between  128  and 254.  THIS FEATURE IS EXPERIMENTAL AND

       -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  sup-
              ported  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 implemented will
              vary by chipset/driver sophistication.  Use  with  extreme  cau-
              tion!  This feature includes zero protection for the unwary, and
              an unsuccessful outcome may result in severe filesystem  corrup-

       -P     Set  the  maximum sector count for the drive's internal 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 applicable to the -i or -v or -t or  -T

       -Q     Set  tagged  queue  depth (1 or greater), or turn tagged queuing
              off (0).  This only works  with  the  newer  2.5.xx  (or  later)
              kernels, and only with the few drives that currently support it.

       -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 sec-
              onds 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  ven-
              dor-defined  timeout,  and 255 is interpreted as 21 minutes plus
              15 seconds.

       -T     Perform timings of cache reads for benchmark and comparison pur-
              poses.    For  meaningful  results,  this  operation  should  be
              repeated 2-3 times on an otherwise  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

       -t     Perform timings of device reads  for  benchmark  and  comparison
              purposes.   For  meaningful  results,  this  operation should be
              repeated 2-3 times on an otherwise  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 mea-
              surement is an indication of how  fast  the  drive  can  sustain
              sequential  data reads under Linux, without any filesystem over-
              head.  To ensure  accurate  measurments,  the  buffer  cache  is
              flushed  during  the processing of -t using the BLKFLSBUF 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  responsive-
              ness and eliminates "serial port overrun" errors.  Use this fea-
              ture with caution: some  drive/controller  combinations  do  not
              tolerate  the increased I/O latencies possible when this feature
              is enabled, resulting in massive filesystem corruption.  In par-
              ticular, CMD-640B and RZ1000 (E)IDE interfaces can be unreliable
              (due to a hardware flaw) when this option is  used  with  kernel
              versions  earlier  than 2.0.13.  Disabling the IDE prefetch fea-
              ture of these interfaces (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 companion for the
              -R option.  Intended for use with hardware made specifically for
              hot-swapping  (very rare!).  Use with knowledge and extreme cau-
              tion 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 specified.

       -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 useable state.

       -W     Disable/enable  the  IDE  drive's write-caching feature (default
              state is undeterminable; manufacturer/model specific).

       -x     Tristate device for hotswap (DANGEROUS).

       -X     Set the IDE transfer mode for newer (E)IDE/ATA drives.  This  is
              typically used in combination with -d1 when enabling DMA to/from
              a drive on a supported interface chipset, where -X mdma2 is used
              to  select multiword DMA mode2 transfers and -X sdma1 is used to
              select simple mode 1 DMA transfers.  With systems which  support
              UltraDMA  burst  timings,  -X  udma2  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 neces-
              sary 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 alternate  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 setting to
              prevent loss and/or corruption of data.  Use this  with  extreme
              caution!   For  the PIO (Programmed 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.   Setting  00  restores  the
              drive's  "default"  PIO mode, and 01 disables IORDY.  For multi-
              word DMA, the value used is the desired DMA mode number plus 32.
              for UltraDMA, the value is the desired UltraDMA mode number plus

       -y     Force an IDE drive to immediately enter the low  power  consump-
              tion 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  con-
              sumption 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 status can  be  checked
              using the -C flag.

       -z     Force  a  kernel re-read of the partition table of the specified

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

       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%  compatible.   Filesystem corruption may result.  Backup
       everything before experimenting!

       Some options (eg. -r for  SCSI)  may  not  work  with  old  kernels  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 inter-

       hdparm has been written by Mark  Lord  <>,  the  primary
       developer  and  maintainer of the (E)IDE driver for Linux, with sugges-
       tions from many netfolk.

       The disable Seagate auto-powersaving code is courtesy of Tomi Leppikan-

       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  work-
       ing draft, revision 2f, July 26, 1994.

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

       AT Attachment with Packet Interface - 6 (ATA/ATAPI-6), T13-1410D  work-
       ing draft, revision 3b, February 26, 2002.

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

       Enhanced Disk Drive Specification, by Phoenix Technologies  Ltd.,  ver-
       sion 1.0, January 25, 1994.

Version 5.2                        May 2002                          HDPARM(8)