HDparm Command Guide for Enhanced Disk Performance
This HDparm cheatsheet is your go-to resource for optimizing hard drive performance. It includes commands for adjusting readahead, power management settings, drive speeds, and more, helping you fine-tune your disk operations for optimal efficiency and reliability.
Get/set fs readahead
hdparm -a /dev/sdb
Get/set the drive look-ahead flag (0/1)
hdparm -A /dev/sdb
Get/set bus state (0 == off, 1 == on, 2 == tristate)
hdparm -b /dev/sdb
Set Advanced Power Management setting (1-255)
hdparm -B /dev/sdb
Get/set IDE 32-bit IO setting
hdparm -c /dev/sdb
Check drive power mode status
hdparm -C /dev/sdb
Get/set using_dma flag
hdparm -d /dev/sdb
Enable/disable drive defect management
hdparm -D /dev/sdb
Set cd/dvd drive speed
hdparm -E /dev/sdb
Flush buffer cache for device on exit
hdparm -f /dev/sdb
Flush drive write cache
hdparm -F /dev/sdb
Display drive geometry
hdparm -g /dev/sdb
Display terse usage information
hdparm -h /dev/sdb
Read temperature from drive (Hitachi only)
hdparm -H /dev/sdb
Display drive identification
hdparm -i /dev/sdb
Detailed/current information directly from drive
hdparm -I /dev/sdb
Get/set Western DIgital "Idle3" timeout for a WDC "Green" drive (DANGEROUS)
hdparm -J /dev/sdb
Get/set keep_settings_over_reset flag (0/1)
hdparm -k /dev/sdb
Set drive keep_features_over_reset flag (0/1)
hdparm -K /dev/sdb
Set drive doorlock (0/1) (removable harddisks only)
hdparm -L /dev/sdb
Get/set multiple sector count
hdparm -m /dev/sdb
Get/set acoustic management (0-254, 128: quiet, 254: fast)
hdparm -M /dev/sdb
Get/set ignore-write-errors flag (0/1)
hdparm -n /dev/sdb
Get/set max visible number of sectors (HPA) (VERY DANGEROUS)
hdparm -N /dev/sdb
Set PIO mode on IDE interface chipset (0,1,2,3,4,…)
hdparm -p /dev/sdb
Set drive prefetch count
hdparm -P /dev/sdb
Change next setting quietly
hdparm -q /dev/sdb
Get/set DMA queue_depth (if supported)
hdparm -Q /dev/sdb
Get/set device readonly flag (DANGEROUS to set)
hdparm -r /dev/sdb
Get/set device write-read-verify flag
hdparm -R /dev/sdb
Set power-up in standby flag (0/1) (DANGEROUS)
hdparm -s /dev/sdb
Set standby (spindown) timeout
hdparm -S /dev/sdb
Perform device read timings
hdparm -t /dev/sdb
Perform cache read timings
hdparm -T /dev/sdb
Get/set unmaskirq flag (0/1)
hdparm -u /dev/sdb
Obsolete
hdparm -U /dev/sdb
Use defaults; same as -acdgkmur for IDE drives
hdparm -v /dev/sdb
Display program version and exit immediately
hdparm -V /dev/sdb
Perform device reset (DANGEROUS)
hdparm -w /dev/sdb
Get/set drive write-caching flag (0/1)
hdparm -W /dev/sdb
Obsolote
hdparm -x /dev/sdb
Set IDE xfer mode (DANGEROUS)
hdparm -X /dev/sdb
Put drive in standby mode
hdparm -y /dev/sdb
Put drive to sleep
hdparm -Y /dev/sdb
Re-read partition table
hdparm -z /dev/sdb
Disable Seagate auto-powersaving mode
hdparm -Z /dev/sdb
Perform device read timings
hdparm -t /dev/sda
Perform cache read timings
hdparm -T /dev/sda
Check read speeds
hdparm -tT /dev/sda
Check drive power mode status
hdparm -C /dev/sda 2> /dev/null|grep state
Freeze/lock current device configuration until next power cycle
hdparm --dco-freeze /dev/sdb
Read/dump device configuration identify data
hdparm --dco-identify /dev/sdb
Reset device configuration back to factory defaults
hdparm --dco-restore /dev/sdb
Use DCO to set maximum addressable sectors
hdparm --dco-setmax /dev/sdb
Use O_DIRECT to bypass page cache for timings
hdparm --direct /dev/sdb
Crash system with a "stuck DRQ" error (VERY DANGEROUS)
hdparm --drq-hsm-error /dev/sdb
Create a file without writing data to disk
hdparm --fallocate /dev/sdb
Show device extents (and fragmentation) for a file
hdparm --fibmap /dev/sdb
Download firmware file to drive (EXTREMELY DANGEROUS)
hdparm --fwdownload /dev/sdb
Download firmware using min-size segments (EXTREMELY DANGEROUS)
hdparm --fwdownload-mode3 /dev/sdb
Download firmware using max-size segments (EXTREMELY DANGEROUS)
hdparm --fwdownload-mode3-max /dev/sdb
Download firmware using a single segment (EXTREMELY DANGEROUS)
hdparm --fwdownload-mode7 /dev/sdb
Download firmware using mode E (min-size segments) (EXTREMELY DANGEROUS)
hdparm --fwdownload-modee /dev/sdb
Download firmware using mode E (max-size segments) (EXTREMELY DANGEROUS)
hdparm --fwdownload-modee-max /dev/sdb
Idle drive immediately
hdparm --idle-immediate /dev/sdb
Idle immediately and unload heads
hdparm --idle-unload /dev/sdb
Write raw binary identify data to the specfied file
hdparm --Iraw filename /dev/sdb
Read identify data from stdin as ASCII hex
hdparm --Istdin /dev/sdb
Write identify data to stdout as ASCII hex
hdparm --Istdout /dev/sdb
Deliberately corrupt a sector directly on the media (VERY DANGEROUS)
hdparm --make-bad-sector /dev/sdb
use with -t, to begin timings at given offset (in GiB) from start of drive
hdparm --offset /dev/sdb
Use 12-byte (instead of 16-byte) SAT commands when possible
hdparm --prefer-ata12 /dev/sdb
Read and dump (in hex) a sector directly from the media
hdparm --read-sector /dev/sdb
Alias for the –write-sector option (VERY DANGEROUS)
hdparm --repair-sector /dev/sdb
Block sanitize-freeze-lock command until next power cycle
hdparm --sanitize-antifreeze-lock /dev/sdb
Start block erase operation
hdparm --sanitize-block-erase /dev/sdb
Change the internal encryption keys that used for used
hdparm --sanitize-crypto-scramble /dev/sdb
Lock drive's sanitize features until next power cycle
hdparm --sanitize-freeze-lock /dev/sdb
Overwrite the internal media with constant PATTERN
hdparm --sanitize-overwrite PATTERN /dev/sdb
Number of overwrite passes from 0 to 7, default 0 means 16 passes
hdparm --sanitize-overwrite-passes COUNT /dev/sdb
Show sanitize status information
hdparm --sanitize-status /dev/sdb
Display help for ATA security commands
hdparm --security-help /dev/sdb
Change logical sector size of drive
hdparm --set-sector-size /dev/sdb
Tell SSD firmware to discard unneeded data sectors:
hdparm --trim-sector-ranges /dev/sdb
Same as above, but reads lba:count pairs from stdin
hdparm --trim-sector-ranges-stdin /dev/sdb
Display extra diagnostics from some commands
hdparm --verbose /dev/sdb
Repair/overwrite a (possibly bad) sector directly on the media (VERY DANGEROUS)
hdparm --write-sector /dev/sdb