hdparm
hdparm은 Linux에서 SATA/PATA 장치의 정보를 조회하고 ATA drive parameter를 확인하거나 변경하는 명령이다.
Summary
- 장치 식별 정보, 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 절차를 검증하지 않았다면 실행하지 않는다.
Installation
Debian / Ubuntu
sudo apt update sudo apt install hdparm
RHEL / Fedora
Fedora 및 hdparm package를 제공하는 RHEL 계열 repository에서 설치한다.
sudo dnf install hdparm
구형 환경에서는 dnf 대신 yum을 사용할 수 있다.
macOS / Windows
hdparm upstream은 Linux kernel interface를 대상으로 한다. 공식 Homebrew formula 또는 Windows winget package는 제공되지 않으므로 이 페이지에서는 설치 명령을 제시하지 않는다.
Version 확인
hdparm -V
Usage
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를 지정해야 하는 경우가 많다.
Options
조회 중심 옵션
-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을 먼저 확인한다.
Examples
장치 확인 후 읽기 전용 조회
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
일시적으로 standby 전환
sudo hdparm -y /dev/sdX sudo hdparm -C /dev/sdX
다음 access에서 drive가 다시 spin up할 수 있으며, mounted filesystem과 service I/O가 있으면 즉시 깨어날 수 있다.
Configuration
hdparm자체에 모든 Linux 배포판이 공유하는 단일 영구 설정 형식은 없다.- Debian/Ubuntu의
/etc/hdparm.conf작성과 udev 적용 방식은 config를 참고한다. - 설정을 영구화하기 전에 command line에서 읽기 전용 조회와 일시 적용으로 drive 지원 여부를 검증한다.
Troubleshooting
Permission denied
대부분의 device ioctl에는 root 권한이 필요하다. 장치 경로를 다시 확인한 뒤 조회 명령에 sudo를 사용한다.
Inappropriate ioctl 또는 SG_IO 오류
- NVMe, virtual disk, RAID controller, USB bridge가 ATA command를 전달하지 않을 수 있다.
- USB enclosure는 SAT 지원 여부와 bridge firmware에 따라 결과가 다르다.
- controller 뒤의 physical drive는 controller vendor 도구가 필요할 수 있다.
설정이 reboot 후 사라짐
많은 설정은 volatile하다. 배포판의 udev 또는 service 적용 방식을 사용하되, 잘못된 영구 설정은 boot와 storage 안정성에 영향을 줄 수 있다. Debian/Ubuntu는 config를 참고한다.
timing 값이 비정상적으로 높음
-T는 drive media가 아니라 page cache를 측정한다. -t도 kernel, controller, cache, filesystem activity의 영향을 받으므로 반복 측정하고 전용 benchmark와 함께 해석한다.
Compatibility
- Linux SATA/PATA/SAS
libata및 legacy IDE driver interface를 사용한다. - NVMe에는 적용하지 않는다.
- 일부 최신 USB enclosure는 SAT를 통해 제한적으로 동작한다.
- option 지원 여부와 동작은 kernel, controller, bridge, drive firmware에 따라 달라진다.
- 이 페이지의 help 원문은 작업 환경의
hdparm v9.54에서 직접 확인했다.
Help
See Also
History
- codex:: 2026-08-10 Added installation, safe inspection, timing, power management, troubleshooting, compatibility, and live help guidance.