Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


HDPARM(8)							    HDPARM(8)



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 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).  Usage: -A0 (disable) or -A1 (enable).

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

       -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 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	 dif-
	      ference,	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 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.

       -Istdin
	      This  is	a  special "no seatbelts" variation on the -I option,
	      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",  or  that  produced  by  the
	      -Istdout option described below.	This  variation	 is  designed
	      for  use	with  collected	 "libraries"  of drive identification
	      information, and can also be used on  ATAPI  drives  which  may
	      give media errors with the standard mechanism.

       -Istdout
	      This option simply dumps the identify data in hex to stdout, in
	      a format similar to that from /proc/, and	 suitable  for	later
	      use with the -Istdin option.

       -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 systems).

       -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 1 will lock the
	      door mechanism of some removable hard drives (eg. Syquest, ZIP,
	      Jazz..),	and  setting  it to 0 will unlock the door mechanism.
	      Normally, Linux maintains the door locking mechanism  automati-
	      cally,  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 par-
	      tition is left mounted  (read-only)  after  shutdown.   So,  by
	      using this command to unlock the door 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.  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 sys-
	      tems.  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 cir-
	      cumstances, such failures can result in massive filesystem cor-
	      ruption.

       -M     Get/set  Automatic Acoustic Management (AAM) setting. Most mod-
	      ern harddisk drives have the ability to  speed  down  the	 head
	      movements	 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 only two levels (quiet / fast), while others may have dif-
	      ferent  levels between 128 and 254.  THIS FEATURE IS EXPERIMEN-
	      TAL AND NOT WELL TESTED. USE AT YOUR OWN RISK.

       -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  speci-
	      fied  PIO mode, or attempt to auto-tune for the "best" PIO mode
	      supported by the drive.  This feature is supported in the	 ker-
	      nel  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
	      corruption!

       -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, suppressing normal output.	 This
	      is useful for reducing screen clutter when running from  system
	      startup  scripts.	  Not  applicable to the -i or -v or -t or -T
	      flags.

       -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) ker-
	      nels, and only with the few drives that currently support it.

       -r     Get/set read-only flag for the device.  When set, Linux  disal-
	      lows write operations 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	 "timeouts  are	 dis-
	      abled":  the  device will not automatically enter standby mode.
	      Values from 1 to 240 specify multiples of 5  seconds,  yielding
	      timeouts	from 5 seconds to 20 minutes.  Values from 241 to 251
	      specify from 1 to 11 units of  30	 minutes,  yielding  timeouts
	      from 30 minutes to 5.5 hours.  A value of 252 signifies a time-
	      out of 21 minutes. A value of 253 sets a vendor-defined timeout
	      period  between  8 and 12 hours, and the value 254 is reserved.
	      255 is interpreted as 21 minutes plus 15	seconds.   Note	 that
	      some  older  drives  may have very different interpretations of
	      these values.

       -T     Perform timings of cache 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 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 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 measurements,  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
	      feature 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
	      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 interfaces (usually a BIOS/CMOS	 set-
	      ting)  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 specifi-
	      cally 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 specified.

       -w     Perform a device reset (DANGEROUS).  Do NOT  use	this  option.
	      It  exists  for unlikely situations where a reboot might other-
	      wise 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 sys-
	      tems  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  necessary	 since	most/all  modern  IDE  drives
	      default  to  their fastest PIO transfer mode at power-on.	 Fid-
	      dling 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 pro-
	      grammed (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 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  consump-
	      tion  standby  mode, usually causing it to spin down.  The cur-
	      rent 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
	      device(s).

       -Z     Disable the automatic power-saving function of certain  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%  compatible.  Filesystem corruption may result.  Backup
       everything before experimenting!

       Some options (eg. -r for SCSI) may not work with old kernels as neces-
       sary 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  ,	 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	 Lep-
       pikangas(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 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.7			 August 2004			    HDPARM(8)


UNIX/Linux commands referenced on this page:
  1. file
  2. which
  3. disable
  4. enable
  5. card
  6. at
  7. make
  8. as
  9. play
  10. size
  11. info
  12. time
  13. more
  14. refer
  15. identify
  16. reset
  17. test
  18. shutdown
  19. find
  20. write
  21. factor
  22. reboot