hdparm

hdparm은 Linux에서 SATA/PATA 장치의 정보를 조회하고 ATA drive parameter를 확인하거나 변경하는 명령이다.

  • 장치 식별 정보, power state, read/write cache, APM, standby timeout 등을 조회한다.
  • 일부 설정은 drive firmware와 kernel driver에 직접 영향을 주며 root 권한이 필요하다.
  • USB enclosure는 SAT(SCSI-ATA Translation)를 지원할 때만 일부 명령이 동작할 수 있다.
  • NVMe 장치는 대상이 아니다. NVMe 정보와 설정은 nvme-cli를 사용한다.
조회 옵션과 설정 옵션을 구분해야 한다. -N, –dco-restore, –fwdownload*, –security-*, –sanitize-*, –write-sector 같은 명령은 용량 변경, firmware 손상 또는 데이터의 영구 삭제를 일으킬 수 있다. 대상 장치와 vendor 절차를 검증하지 않았다면 실행하지 않는다.
sudo apt update
sudo apt install hdparm

Fedora 및 hdparm package를 제공하는 RHEL 계열 repository에서 설치한다.

sudo dnf install hdparm

구형 환경에서는 dnf 대신 yum을 사용할 수 있다.

hdparm upstream은 Linux kernel interface를 대상으로 한다. 공식 Homebrew formula 또는 Windows winget package는 제공되지 않으므로 이 페이지에서는 설치 명령을 제시하지 않는다.

hdparm -V
sudo hdparm [options] /dev/DEVICE...
  • hdparm [OPTIONS] DEVICE…
  • hdparm -I DEVICE: drive에서 상세 ATA identify 정보 조회
  • hdparm -C DEVICE: 현재 power mode 조회
  • hdparm -Tt DEVICE: cache 및 buffered device read timing 측정
장치 경로는 예제의 /dev/sdX를 그대로 복사하지 말고 먼저 lsblk -o NAME,MODEL,SERIAL,SIZE,TYPE,MOUNTPOINTS로 확인한다. partition인 /dev/sdX1이 아니라 명령 목적에 맞는 whole-disk device를 지정해야 하는 경우가 많다.
  • -i: kernel이 보관한 identification 정보 출력
  • -I: drive에서 현재 상세 identification 정보 조회
  • -C: active/idle, standby, sleeping 등의 power mode 조회
  • -g: geometry, sector 수, 시작 offset 출력
  • -T: Linux page cache read timing 측정
  • -t: buffered device read timing 측정
  • –direct: -t와 함께 O_DIRECT를 사용해 page cache 우회
  • -V: version 출력
  • -h: 간략 help 출력. 이 버전은 –help를 지원하지 않을 수 있다.
  • -aN: filesystem read-ahead sector 수 설정
  • -A0|1: drive read-lookahead 비활성화 또는 활성화
  • -BVALUE: APM 설정. 지원 범위와 의미는 drive별로 검증한다.
  • -SVALUE: standby timeout encoding 값 설정
  • -W0|1: drive write cache 비활성화 또는 활성화
  • -y: drive를 즉시 standby로 전환
  • -Y: drive를 즉시 sleep으로 전환
-B-S 값은 단순한 분 또는 초 값이 아니며, drive가 해당 ATA feature를 지원하지 않을 수도 있다. 빈번한 head parking이나 spin cycle은 수명과 응답 시간에 영향을 줄 수 있으므로 drive manual과 man hdparm의 encoding을 먼저 확인한다.
lsblk -o NAME,MODEL,SERIAL,SIZE,TYPE,MOUNTPOINTS
 
sudo hdparm -I /dev/sdX
sudo hdparm -C /dev/sdX
# 여러 번 실행하고 다른 I/O가 적은 결과를 비교한다.
sudo hdparm -Tt /dev/sdX
 
# page cache를 우회한 device read timing
sudo hdparm --direct -t /dev/sdX

-T는 cache read timing이고 -t는 buffered disk read timing이다. 둘 모두 간단한 진단값일 뿐 application workload benchmark를 대체하지 않는다.

값을 붙이지 않은 get/set option은 대체로 현재 값을 조회한다.

sudo hdparm -a /dev/sdX
sudo hdparm -B /dev/sdX
sudo hdparm -W /dev/sdX
sudo hdparm -y /dev/sdX
sudo hdparm -C /dev/sdX

다음 access에서 drive가 다시 spin up할 수 있으며, mounted filesystem과 service I/O가 있으면 즉시 깨어날 수 있다.

  • hdparm 자체에 모든 Linux 배포판이 공유하는 단일 영구 설정 형식은 없다.
  • Debian/Ubuntu의 /etc/hdparm.conf 작성과 udev 적용 방식은 config를 참고한다.
  • 설정을 영구화하기 전에 command line에서 읽기 전용 조회와 일시 적용으로 drive 지원 여부를 검증한다.

대부분의 device ioctl에는 root 권한이 필요하다. 장치 경로를 다시 확인한 뒤 조회 명령에 sudo를 사용한다.

  • NVMe, virtual disk, RAID controller, USB bridge가 ATA command를 전달하지 않을 수 있다.
  • USB enclosure는 SAT 지원 여부와 bridge firmware에 따라 결과가 다르다.
  • controller 뒤의 physical drive는 controller vendor 도구가 필요할 수 있다.

많은 설정은 volatile하다. 배포판의 udev 또는 service 적용 방식을 사용하되, 잘못된 영구 설정은 boot와 storage 안정성에 영향을 줄 수 있다. Debian/Ubuntu는 config를 참고한다.

-T는 drive media가 아니라 page cache를 측정한다. -t도 kernel, controller, cache, filesystem activity의 영향을 받으므로 반복 측정하고 전용 benchmark와 함께 해석한다.

  • Linux SATA/PATA/SAS libata 및 legacy IDE driver interface를 사용한다.
  • NVMe에는 적용하지 않는다.
  • 일부 최신 USB enclosure는 SAT를 통해 제한적으로 동작한다.
  • option 지원 여부와 동작은 kernel, controller, bridge, drive firmware에 따라 달라진다.
  • 이 페이지의 help 원문은 작업 환경의 hdparm v9.54에서 직접 확인했다.

hdparm -h

  • codex:: 2026-08-10 Added installation, safe inspection, timing, power management, troubleshooting, compatibility, and live help guidance.
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/pages/hdparm/ko.txt
  • 마지막으로 수정됨: 2026/08/09 23:50
  • (바깥 편집)