hdparm(8) - get/set SATA/IDE device parameters



  • HDPARM(8)			   System Manager's Manual			    HDPARM(8)
    
    NAME
           hdparm - get/set SATA/IDE device parameters
    
    SYNOPSIS
           hdparm [options] [device ...]
    
    DESCRIPTION
           hdparm provides a command line interface to various kernel interfaces supported by the
           Linux SATA/PATA/SAS "libata" subsystem and the older IDE driver subsystem.  Many newer
           (2008  and later) USB drive enclosures now also support "SAT" (SCSI-ATA Command Trans‐
           lation) and therefore may also work with hdparm.  E.g. recent WD "Passport" models and
           recent  NexStar-3  enclosures.	Some  options may work correctly only with the latest
           kernels.
    
    OPTIONS
           When no options are given, -acdgkmur is assumed.  For "Get/set" options, a query with‐
           out  the  optional  parameter  (e.g. -d) will query (get) the device state, and with a
           parameter (e.g., -d0) will set the device state.
    
           -a     Get/set sector count for filesystem (software) read-ahead.   This  is  used  to
    	      improve  performance  in	sequential reads of large files, by prefetching addi‐
    	      tional blocks in anticipation of them being needed by the running  task.	 Many
    	      IDE  drives  also  have a separate built-in read-ahead function, which augments
    	      this filesystem (software) read-ahead function.
    
           -A     Get/set the IDE drive´s read-lookahead feature (usually ON by default).  Usage:
    	      -A0 (disable) or -A1 (enable).
    
           -b     Get/set bus state.
    
           -B     Get/set  Advanced  Power	Management  feature,  if the drive supports it. A low
    	      value means aggressive power management and a high value means  better  perfor‐
    	      mance.   Possible  settings range from values 1 through 127 (which permit spin-
    	      down), and values 128 through 254 (which do not permit spin-down).  The highest
    	      degree of power management is attained with a setting of 1, and the highest I/O
    	      performance with a setting of 254.  A value of  255  tells  hdparm  to  disable
    	      Advanced	Power Management altogether on the drive (not all drives support dis‐
    	      abling it, but most do).
    
           -c     Get/set (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  connec‐
    	      tion 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 shut down).  The -S, -y, -Y, and -Z options can be used  to  manipu‐
    	      late the IDE power modes.
    
           -d     Get/set  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 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.
    
           --dco-freeze
    	      DCO  stands  for Device Configuration Overlay, a way for vendors to selectively
    	      disable certain features of a drive.  The --dco-freeze option will  freeze/lock
    	      the  current drive configuration, thereby preventing software (or malware) from
    	      changing any DCO settings until after the next power-on reset.
    
           --dco-identify
    	      Query and dump information regarding drive configuration settings which can  be
    	      disabled	by  the vendor or OEM installer.  These settings show capabilities of
    	      the drive which might be disabled by the vendor for  "enhanced  compatibility".
    	      When  disabled,  they are otherwise hidden and will not show in the -I identify
    	      output.  For example, system vendors sometimes  disable  48_bit  addressing  on
    	      large  drives,  for  compatibility (and loss of capacity) with a specific BIOS.
    	      In such cases, --dco-identify will show that the drive is 48_bit	capable,  but
    	      -I will not show it, and nor will the drive accept 48_bit commands.
    
           --dco-restore
    	      Reset  all  drive settings, features, and accessible capacities back to factory
    	      defaults	and  full  capabilities.   This  command  will	 fail	if   DCO   is
    	      frozen/locked, or if a -Np maximum size restriction has also been set.  This is
    	      EXTREMELY DANGEROUS and will very likely cause massive loss of  data.   DO  NOT
    	      USE THIS COMMAND.
    
           --direct
    	      Use  the	kernel´s  "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 bet‐
    	      ter indication of raw device and driver performance.
    
           --drq-hsm-error
    	      VERY  DANGEROUS, DON'T EVEN THINK ABOUT USING IT.  This option causes hdparm to
    	      issue an IDENTIFY command to the kernel, but incorrectly marked as a "non-data"
    	      command.	 This  results	in the drive being left with its DataReQust(DRQ) line
    	      "stuck" high.  This confuses the kernel drivers, and may crash the system imme‐
    	      diately  with massive data loss.	The option exists to help in testing and for‐
    	      tifying the kernel against similar real-world drive malfunctions.  VERY DANGER‐
    	      OUS, DO NOT USE!!
    
           -D     Enable/disable  the  on-drive  defect  management  feature,  whereby  the drive
    	      firmware tries to automatically manage defective sectors by relocating them  to
    	      "spare"  sectors reserved by the factory for such.  Control of this feature via
    	      the -D option is not supported for most modern drives since  ATA-4;  thus  this
    	      command may fail.
    
           -E     Set  cd/dvd  drive  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.  This can be useful in some cases, though, to smooth out DVD video	play‐
    	      back.
    
           -f     Sync and flush the buffer cache for the device on exit.  This operation is also
    	      performed internally as part of the -t and -T timings and other options.
    
           --fallocate
    	      This option currently works only on ext4 and xfs filesystem types.  When	used,
    	      this  must  be  the only option given.  It requires two parameters: the desired
    	      file size in kilo-bytes (byte count divided by 1024), followed by the  pathname
    	      for the new file.  It will create a new file of the specified size, but without
    	      actually having to write any data to the file.   This  will  normally  complete
    	      very quickly, and without thrashing the storage device.
    
    	      E.g. Create a 10KByte file: hdparm --fallocate 10 temp_file
    
           --fibmap
    	      When  used,  this  must be the only option given.  It requires a file path as a
    	      parameter, and will print out a list of the block extents (sector ranges) occu‐
    	      pied  by	that file on disk.  Sector numbers are given as absolute LBA numbers,
    	      referenced from sector 0 of the physical device rather than from the  partition
    	      or  filesystem.	This  information can then be used for a variety of purposes,
    	      such as examining the degree of fragmenation of larger  files,  or  determining
    	      appropriate sectors to deliberately corrupt during fault-injection testing pro‐
    	      cedures.
    
    	      This option uses the new FIEMAP (file extent map) ioctl() when  available,  and
    	      falls  back  to the older FIBMAP (file block map) ioctl() otherwise.  Note that
    	      FIBMAP suffers from a 32-bit block-number interface, and thus not  work  beyond
    	      8TB  or  16TB.   FIBMAP is also very slow, and does not deal well with preallo‐
    	      cated uncommitted extents in ext4/xfs filesystems,  unless  a  sync()  is  done
    	      before using this option.
    
           --fwdownload
    	      When used, this should be the only option given.	It requires a file path imme‐
    	      diately after the option, indicating where the new  drive  firmware  should  be
    	      read  from.   The  contents  of  this  file will be sent to the drive using the
    	      (S)ATA DOWNLOAD MICROCODE command, using either  transfer  protocol  7  (entire
    	      file  at	once),	or,  if the drive supports it, transfer protocol 3 (segmented
    	      download).  This command is EXTREMELY DANGEROUS  and  could  destroy  both  the
    	      drive  and  all data on it.  DO NOT USE THIS COMMAND.  The --fwdownload-mode3 ,
    	      --fwdownload-mode3-max , and --fwdownload-mode7 variations on  basic  --fwdown‐
    	      load  allow overriding automatic protocol detection in favour of forcing hdparm
    	      to use a specific transfer protocol, for testing purposes only.
    
           -F     Flush the on-drive write cache buffer (older drives may not implement this).
    
           -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).
    
           -H     Read the temperature from some (mostly Hitachi) drives.  Also  reports  if  the
    	      temperature  is  within  operating  condition range (this may not be reliable).
    	      Does not cause the drive to spin up if idle.
    
           -i     Display the identification info which the kernel	drivers  (IDE,	libata)  have
    	      stored from boot/configuration time.  This may differ from the current informa‐
    	      tion obtainable directly from the drive itself with the -I  option.   The  data
    	      returned	may  or  may  not be current, depending on activity since booting the
    	      system.  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, and later editions.
    
           --idle-immediate
    	      Issue an ATA IDLE_IMMEDIATE command, to put the drive into a lower power state.
    	      Usually the device remains spun-up.
    
           --idle-unload
    	      Issue  an  ATA  IDLE_IMMEDIATE_WITH_UNLOAD command, to unload or park the heads
    	      and put the drive into a lower power state.  Usually the device  remains	spun-
    	      up.
    
           -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
    	      option.
    
           --Istdin
    	      This is a special variation on the -I option, which accepts a drive identifica‐
    	      tion 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.  When --Istdin is used, it
    	      must be the *only* parameter given.
    
           --Istdout
    	      This option dumps the drive's identify data in hex to stdout, in a format simi‐
    	      lar  to  that  from  /proc/ide/*/identify,  and suitable for later use with the
    	      --Istdin option.
    
           -J     Get/set the Western Digital (WD) Green Drive's  "idle3"  timeout	value.	 This
    	      timeout  controls  how  often  the drive parks its heads and enters a low power
    	      consumption state.  The factory default is eight (8) seconds, which is  a  very
    	      poor  choice for use with Linux.	Leaving it at the default will result in hun‐
    	      dreds of thousands of head load/unload cycles in a very short period  of	time.
    	      The  drive  mechanism is only rated for 300,000 to 1,000,000 cycles, so leaving
    	      it at the default could result in premature failure, not to mention the perfor‐
    	      mance impact of the drive often having to wake-up before doing routine I/O.
    
    	      WD  supply  a WDIDLE3.EXE DOS utility for tweaking this setting, and you should
    	      use that program instead of hdparm if at all possible.  The  reverse-engineered
    	      implementation  in  hdparm is not as complete as the original official program,
    	      even though it does seem to work on at a least a	few  drives.   A  full	power
    	      cycle is required for any change in setting to take effect, regardless of which
    	      program is used to tweak things.
    
    	      A setting of 30 seconds is recommended for Linux	use.   Permitted  values  are
    	      from  8  to  12  seconds,  and  from 30 to 300 seconds in 30-second increments.
    	      Specify a value of zero (0) to disable the WD idle3 timer completely (NOT  REC‐
    	      OMMENDED!).
    
           -k     Get/set  the  "keep_settings_over_reset" flag for the drive.  When this flag is
    	      set, the drive will preserve the -dmu settings over a soft reset, (as done dur‐
    	      ing  the	error  recovery  sequence).   This option defaults to off, to prevent
    	      drive reset loops which could be caused by combinations of -dmu settings.   The
    	      -k  option  should  therefore  only be set after one has achieved confidence in
    	      correct system operation with a chosen set of configuration settings.  In prac‐
    	      tice,  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/log/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 (e.g. Syquest, ZIP, Jazz..), and setting it to 0
    	      will unlock the door mechanism.  Normally, Linux	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 parti‐
    	      tion  is	on  a removable 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 dis‐
    	      ables 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 any‐
    	      where 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 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 option 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.
    
           --make-bad-sector
    	      Deliberately  create a bad sector (aka. "media error") on the disk.  EXCEPTION‐
    	      ALLY DANGEROUS. DO NOT USE THIS OPTION!!	This can be  useful  for  testing  of
    	      device/RAID  error  recovery  mechanisms.   The  sector  number  is  given as a
    	      (base10) parameter after the option.  Depending  on  the	device,  hdparm  will
    	      choose  one  of  two  possible  ATA  commands  for  corrupting the sector.  The
    	      WRITE_LONG works on most drives, but only up to  the  28-bit  sector  boundary.
    	      Some very recent drives (2008) may support the new WRITE_UNCORRECTABLE_EXT com‐
    	      mand, which works for any LBA48 sector.  If available, hdparm will use that  in
    	      preference  to WRITE_LONG.  The WRITE_UNCORRECTABLE_EXT command itself presents
    	      a choice of how the new bad sector should behave.  By  default,  it  will  look
    	      like  any  other bad sector, and the drive may take some time to retry and fail
    	      on subsequent READs of the sector.  However, if a single letter f is  prepended
    	      immediately  in  front  of the first digit of the sector number parameter, then
    	      hdparm will issue a "flagged" WRITE_UNCORRECTABLE_EXT, which causes  the	drive
    	      to merely flag the sector as bad (rather than genuinely corrupt it), and subse‐
    	      quent READs of the sector will fail  immediately	(rather  than  after  several
    	      retries).   Note	also  that  the --repair-sector option can be used to restore
    	      (any) bad sectors when they are no longer needed, including sectors  that  were
    	      genuinely bad (the drive will likely remap those to a fresh area on the media).
    
           -M     Get/set  Automatic  Acoustic  Management	(AAM)  setting.  Most modern 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 different levels between
    	      128 and 254.  At the moment, most drives only support 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.
    
           -N     Get/set max visible number of sectors, also known as the	Host  Protected  Area
    	      setting.	 Without  a  parameter,  -N  displays  the  current setting, which is
    	      reported as two values: the first gives the current max  sectors	setting,  and
    	      the second shows the native (real) hardware limit for the disk.  The difference
    	      between these two values indicates how many sectors of the disk  are  currently
    	      hidden  from  the operating system, in the form of a Host Protected Area (HPA).
    	      This area is often used by computer makers to hold diagnostic software,  and/or
    	      a  copy  of  the	originally  provided  operating system for recovery purposes.
    	      Another possible use is to hide the true capacity of a very large disk  from  a
    	      BIOS/system  that  cannot normally cope with drives of that size (eg. most cur‐
    	      rent {2010} BIOSs cannot deal with drives larger than 2TB, so an HPA  could  be
    	      used to cause a 3TB drive to report itself as a 2TB drive).  To change the cur‐
    	      rent max (VERY DANGEROUS, DATA LOSS IS EXTREMELY LIKELY), a new value should be
    	      provided (in base10) immediately following the -N option.  This value is speci‐
    	      fied as a count of sectors, rather than the "max sector address" of the  drive.
    	      Drives  have the concept of a temporary (volatile) setting which is lost on the
    	      next hardware reset, as well as a more  permanent  (non-volatile)  value	which
    	      survives	resets	and  power cycles.  By default, -N affects only the temporary
    	      (volatile) setting.  To change the permanent (non-volatile)  value,  prepend  a
    	      leading  p  character  immediately before the first digit of the value.  Drives
    	      are supposed to allow only a single permanent change per session.   A  hardware
    	      reset  (or  power  cycle) is required before another permanent -N operation can
    	      succeed.	Note that any attempt to set this value may fail if the disk is being
    	      accessed by other software at the same time.  This is because setting the value
    	      requires a pair of back-to-back drive commands, but there is no way to  prevent
    	      some  other  command  from being inserted between them by the kernel.  So if it
    	      fails initially, just try again.	Kernel support	for  -N  is  buggy  for  many
    	      adapter types across many kernel versions, in that an incorrect (too small) max
    	      size value is sometimes reported.  As of the 2.6.27 kernel, this	does  finally
    	      seem to be working on most hardware.
    
           --offset
    	      Offsets  to  given number of GiB (1024*1024*1024) when performing -t timings of
    	      device reads.  Speed changes (about twice) along many mechanical drives.	 Usu‐
    	      ally  the  maximum  is  at  the  beginning, but not always.  Solid-state drives
    	      (SSDs) should show similar timings regardless of offset.
    
           -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 fea‐
    	      ture 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 option 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  unsuccess‐
    	      ful 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, and it was dropped from the official  spec  as
    	      of ATA-4.
    
           --prefer-ata12
    	      When  using the SAT (SCSI ATA Translation) protocol, hdparm normally prefers to
    	      use the 16-byte command format whenever possible.  But some  USB	drive  enclo‐
    	      sures  don't  work correctly with 16-byte commands.  This option can be used to
    	      force use of the smaller 12-byte command format with such drives.  hdparm  will
    	      still  revert  to  16-byte  commands  for  things  that cannot be done with the
    	      12-byte format (e.g. sector accesses beyond 28-bits).
    
           -q     Handle the next option quietly, suppressing normal output (but not  error  mes‐
    	      sages).	This  is  useful for reducing screen clutter when running from system
    	      startup scripts.	Not applicable to the -i or -v or -t or -T options.
    
           -Q     Get or set the device's command queue_depth,  if	supported  by  the  hardware.
    	      This only works with 2.6.xx (or later) kernels, and only with device and driver
    	      combinations which support changing the queue_depth.  For SATA disks,  this  is
    	      the Native Command Queuing (NCQ) queue depth.
    
           -r     Get/set  read-only flag for the device.  When set, Linux disallows write opera‐
    	      tions on the device.
    
           -R     Get/set Write-Read-Verify feature, if the drive supports it.  Usage: -R0	(dis‐
    	      able)  or  -R1  (enable).   This feature is intended to have the drive firmware
    	      automatically read-back any data that is written by software,  to  verify  that
    	      the  data  was  successfully written.  This is generally overkill, and can slow
    	      down disk writes by as much as a factor of two (or more).
    
           --read-sector
    	      Reads from the specified sector number, and dumps the contents in hex to	stan‐
    	      dard  output.   The  sector  number  must  be given (base10) after this option.
    	      hdparm will issue a low-level read (completely bypassing the usual block	layer
    	      read/write  mechanisms)  for the specified sector.  This can be used to defini‐
    	      tively check whether a given sector is bad  (media  error)  or  not  (doing  so
    	      through the usual mechanisms can sometimes give false positives).
    
           --repair-sector
    	      This is an alias for the --write-sector option.  VERY DANGEROUS.
    
           -s     Enable/disable  the  power-on  in  standby  feature, if supported by the drive.
    	      VERY DANGEROUS.  Do not use unless you are absolutely  certain  that  both  the
    	      system  BIOS  (or  firmware)  and the operating system kernel (Linux >= 2.6.22)
    	      support probing for drives that use this feature.  When enabled, the  drive  is
    	      powered-up  in the standby mode to allow the controller to sequence the spin-up
    	      of devices, reducing the instantaneous current draw  burden  when  many  drives
    	      share a power supply.  Primarily for use in large RAID setups.  This feature is
    	      usually disabled and the drive is powered-up in the active mode (see -C above).
    	      Note  that a drive may also allow enabling this feature by a jumper.  Some SATA
    	      drives support the control of this feature by pin 11 of the SATA power  connec‐
    	      tor. In these cases, this command may be unsupported or may have no effect.
    
           -S     Put  the	drive into idle (low-power) mode, and also set the standby (spindown)
    	      timeout for the drive.  This timeout 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 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 measurement 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.
    
           -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 indica‐
    	      tion of the throughput of the processor, cache, and memory of the system	under
    	      test.
    
           --trim-sector-ranges
    	      For  Solid  State  Drives  (SSDs).   EXCEPTIONALLY  DANGEROUS.  DO NOT USE THIS
    	      OPTION!!	Tells the drive firmware to discard unneeded data sectors, destroying
    	      any  data  that  may  have  been present within them.  This makes those sectors
    	      available for immediate use by the firmware's garbage collection mechanism,  to
    	      improve  scheduling  for wear-leveling of the flash media.  This option expects
    	      one or more sector range pairs immediately after the option:  an	LBA  starting
    	      address,	a  colon, and a sector count (max 65535), with no intervening spaces.
    	      EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!!
    
    	      E.g.  hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz
    
           --trim-sector-ranges-stdin
    	      Identical to --trim-sector-ranges above, except the list of lba:count pairs  is
    	      read  from  stdin rather than being specified on the command line.  This can be
    	      used to avoid problems with excessively long command lines.   It	also  permits
    	      batching	of  many  more sector ranges into single commands to the drive, up to
    	      the currently configured transfer limit (max_sectors_kb).
    
           -u     Get/set the 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 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 unreliable (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 setting) provides a  safe  fix
    	      for the problem for use with earlier kernels.
    
           -v     Display  some  basic  settings, similar to -acdgkmur for IDE.  This is also the
    	      default behaviour when no options are specified.
    
           -V     Display program version and exit immediately.
    
           --verbose
    	      Display extra diagnostics from some commands.
    
           -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 con‐
    	      fused drive back into a useable state.
    
           --write-sector
    	      Writes zeros to the specified sector number.  VERY DANGEROUS.  The sector  num‐
    	      ber  must  be  given (base10) after this option.	hdparm will issue a low-level
    	      write (completely bypassing the usual block layer read/write mechanisms) to the
    	      specified  sector.   This  can  be used to force a drive to repair a bad sector
    	      (media error).
    
           -W     Get/set the IDE/SATA drive´s write-caching feature.
    
           -X     Set the IDE transfer mode for (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 sup‐
    	      port UltraDMA burst timings, -X udma2 is used to select UltraDMA	mode2  trans‐
    	      fers  (you´ll need to prepare the chipset for UltraDMA beforehand).  Apart from
    	      that, use of this option 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 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
    	      option)  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 consumption standby mode,
    	      usually causing it to spin down.	The current power mode status can be  checked
    	      using the -C option.
    
           -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 status  can  be
    	      checked using the -C option.
    
           -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 some kernels.
           USE AT YOUR OWN RISK.
    
           --security-help
    	      Display terse usage info for all of the --security-* options.
    
           --security-freeze
    	      Freeze  the  drive´s security settings.  The drive does not accept any security
    	      commands until next power-on reset.  Use	this  function	in  combination  with
    	      --security-unlock  to protect drive from any attempt to set a new password. Can
    	      be used standalone, too.	No other options are permitted on  the	command  line
    	      with this one.
    
           --security-prompt-for-password
    	      Prompt  for  the --security PWD rather than getting from the command line args.
    	      This avoids having passwords show up in shell history or in  /proc/self/cmdline
    	      during execution.
    
           --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 (default is "user" password).  No other
    	      options are permitted on the command line with this one.
    
           --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.  Use the
    	      special password NULL to set an empty password.  The applicable drive  password
    	      is  selected with the --user-master switch (default is "user" password) and the
    	      applicable security mode with the --security-mode switch.  No other options are
    	      permitted on the command line with this one.
    
           --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	pass‐
    	      word  is	selected  with the --user-master switch (default is "user" password).
    	      No other options are permitted on the command line with this one.
    
           --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.	Use the special pass‐
    	      word NULL to represent an empty password.  The  applicable  drive  password  is
    	      selected	with the --user-master switch (default is "user" password).  No other
    	      options are permitted on the command line with this one.
    
           --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 appli‐
    	      cable drive password is selected with  the  --user-master  switch  (default  is
    	      "user" password).  No other options are permitted on the command line with this
    	      one.
    
           --user-master USER
    	      Specifies which password (user/master) to select.  Defaults to  user  password.
    	      Only useful in combination with --security-unlock, --security-set-pass, --secu‐
    	      rity-disable, --security-erase or --security-erase-enhanced.
    		      u       user password
    		      m       master password
    
           --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.
    
    FILES
           /etc/hdparm.conf
    
    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  fea‐
           tures,  but  a  few drive/controller combinations are not 100% compatible.  Filesystem
           corruption may result.  Backup everything before experimenting!
    
           Some options (e.g. -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 SATA/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.
    
           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 succeed 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 commands that
           way.
    
    AUTHOR
           hdparm has been written by Mark Lord <[email protected]>, the original primary developer
           and maintainer of the (E)IDE driver for Linux, and current contributor to  the  libata
           subsystem, along with suggestions and patches from many netfolk.
    
           The   disable   Seagate	 auto-powersaving   code   is	courtesy  of  Tomi  Leppikan‐
           gas([email protected]).
    
           Security freeze command by Benjamin Benz, 2005.
    
           PIO data out security commands by Leonard den Ottolander, 2005.	Some other  parts  by
           Benjamin Benz and others.
    
    SEE ALSO
           http://www.t13.org/ Technical Committee T13 AT Attachment (ATA/ATAPI) Interface.
    
           http://www.serialata.org/ Serial ATA International Organization.
    
           http://www.compactflash.org/ CompactFlash Association.
    
    Version 9.54				February 2018				    HDPARM(8)
    

Log in to reply
 

© Lightnetics 2024