Yolinux.com

hdparm manpage

Search topic Section
Get manual page for the search topic
List all commands matching the search topic
List all topics in the manpage index

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 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 kernel IDE  driver.
	      It  is also a good idea to use the appropriate -X option in com-
	      bination 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.

       --direct
	      Use  the	kernel O_DIRECT flag when performing a -t timing test.
	      This bypasses the page cache, causing the reads to  go  directly
	      from the drive into hdparm's buffers, using so-called "raw" I/O.
	      In many cases, this can produce results that appear much	faster
	      than  the usual page cache method, giving a better indication of
	      raw device and driver performance.

       -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 partition
	      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 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 only
	      two  levels (quiet / fast), while others may have different lev-
	      els between 128 and 254.	At the moment, most drives  only  sup-
	      port  3 options, off, quiet, and fast.  These have been assigned
	      the values 0, 128, and 254 at present, respectively, but integer
	      space  has  been	incorporated for future expansion, should this
	      change.

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

       -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  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 "timeouts are disabled": 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  timeout  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 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
	      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
	      overhead.	 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 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
	      64.

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


       ATA Security Feature Set

       These switches are DANGEROUS to experiment with,	 and  might  not  work
       with every kernel.  USE AT YOUR OWN RISK.

       --security-help
	      Display terse usage info for all of the --security-* flags.

       --security-freeze
	      Freeze the drive?s security settings.  The drive does not accept
	      any security commands until next power-on reset.	Use this func-
	      tion in combination with --security-unlock to protect drive from
	      any attempt to set a new password. Can be used standalone,  too.

       --security-unlock PWD
	      Unlock  the  drive, using password PWD.  Password is given as an
	      ASCII string and is padded with NULs to  reach  32  bytes.   The
	      applicable  drive	 password  is  selected with the --user-master
	      switch.  THIS FEATURE IS EXPERIMENTAL AND NOT WELL  TESTED.  USE
	      AT YOUR OWN RISK.

       --security-set-pass PWD
	      Lock  the	 drive, using password PWD (Set Password) (DANGEROUS).
	      Password is given as an ASCII string and is padded with NULs  to
	      reach  32 bytes.	The applicable drive password is selected with
	      the --user-master switch and the applicable security  mode  with
	      the  --security-mode  switch.   THIS FEATURE IS EXPERIMENTAL AND
	      NOT WELL TESTED. USE AT YOUR OWN RISK.

       --security-disable PWD
	      Disable drive locking, using password PWD.  Password is given as
	      an  ASCII string and is padded with NULs to reach 32 bytes.  The
	      applicable drive password is  selected  with  the	 --user-master
	      switch.	THIS  FEATURE IS EXPERIMENTAL AND NOT WELL TESTED. USE
	      AT YOUR OWN RISK.

       --security-erase PWD
	      Erase (locked) drive, using password PWD (DANGEROUS).   Password
	      is  given as an ASCII string and is padded with NULs to reach 32
	      bytes.  The applicable  drive  password  is  selected  with  the
	      --user-master switch.  THIS FEATURE IS EXPERIMENTAL AND NOT WELL
	      TESTED. USE AT YOUR OWN RISK.

       --security-erase-enhanced PWD
	      Enhanced erase (locked) drive, using password  PWD  (DANGEROUS).
	      Password	is given as an ASCII string and is padded with NULs to
	      reach 32 bytes.  The applicable drive password is selected  with
	      the  --user-master switch.  THIS FEATURE IS EXPERIMENTAL AND NOT
	      WELL TESTED. USE AT YOUR OWN RISK.

       --user-master USER
	      Specifies which password (user/master) to select.	  Defaults  to
	      master.	Only  useful  in  combination  with --security-unlock,
	      --security-set-pass,  --security-disable,	 --security-erase   or
	      --security-erase-enhanced.
		      u	      user password
		      m	      master password

	      THIS  FEATURE  IS	 EXPERIMENTAL AND NOT WELL TESTED. USE AT YOUR
	      OWN RISK.

       --security-mode MODE
	      Specifies which security mode (high/maximum) to  set.   Defaults
	      to high.	Only useful in combination with --security-set-pass.
		      h	      high security
		      m	      maximum security

	      THIS  FEATURE  IS	 EXPERIMENTAL AND NOT WELL TESTED. USE AT YOUR
	      OWN RISK.

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 inter-
       faces.

       The Linux kernel up until 2.6.12 (and probably  later)  doesn?t	handle
       the  security  unlock and disable commands gracefully and will segfault
       and in some cases even  panic.  The  security  commands	however	 might
       indeed  have  been  executed  by	 the drive. This poor kernel behaviour
       makes the PIO data security commands rather useless at the moment.

       Note that the "security erase" and  "security  disable"	commands  have
       been implemented as two consecutive PIO data commands and will not suc-
       ceed on a locked drive because the second command will  not  be	issued
       after the segfault.  See the code for hints how patch it to work around
       this problem. Despite the segfault it is often still  possible  to  run
       two  instances of hdparm consecutively and issue the two necessary com-
       mands that way.

AUTHOR
       hdparm has been written by Mark Lord  <mlord@pobox.com>,	 the  original
       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 Leppikan-
       gas(tomilepp@paju.oulu.fi).

       Security freeze command by Benjamin Benz <bbe@heise.de>, 2005.

       PIO  data  out security commands by Leonard den Ottolander <leonard den
       ottolander nl>, 2005.  Parts by Benjamin Benz <bbe@heise.de>  and  oth-
       ers.

SEE ALSO
       http://www.t13.org/ Technical Committee T13 ATA Attachment.

       http://www.serialata.org/ Serial ATA International Organization.



Version 6.6			  March 2006			     HDPARM(8)
YoLinux.com Home Page
YoLinux Tutorial Index
Privacy Policy | Advertise with us | Feedback Form |
Unauthorized copying or redistribution prohibited.
    Bookmark and Share