Perpetual PC's

Web Site Design.       Networks.

Commands and references ( GNU / linux kernel 2.4.18-3 and 2.4.18-14 )   
Linux is a registered trademark of Linus Torvalds

The commands with their most common usage are in brackets like this: [ command ].
Don't type the brackets, just what is inside of them.

Back to the index page

hard drive hardware information:

[ hdparm ]
This command is EXTREMELY DANGEROUS. Do not use it unless you know exactly what you are doing. Please read the man page carefully before you use it. One mistake and you will likely loose everything. It must be run as root. To get the info as it was read from the drive at boot time, which usually includes the serial number and model number of the drive type:
[ hdparm -i /dev/hda ]

to read info directly from the drive use upper case i:
[ hdparm -I /dev/hda ]
  second ide drive would be /dev/hdb

Here is the manual page ( commands may not be in brackets ):
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).  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

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

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

	      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

       -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.	THIS FEATURE IS EXPERIMENTAL  AND  NOT

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

       -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

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

       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.7			  August 2004			     HDPARM(8)

Perpetual PC's home page

Perpetual PC's link page