Scroll to navigation

HDPARM(8) System Manager's Manual HDPARM(8)

명칭

hdparm - 하드 디스크의 설정을 보여주거나 설정을 조정합니다.

개요

hdparm [ -a [sectcount] ] [ -A [0|1] ] [ -c [chipset_mode] ] [ -C ] [ -d [0|1] ] [ -f ] [ -g ] [ -i ] [ -k [0|1] ] [ -K [0|1] ] [ -L [0|1] ] [ -m [sectcount] ] [ -p [0|1|2|3|4|5] ] [ -p [sectcount] ] [ -q ] [ -r [0|1] ] [ -S [timeout] ] [ -T ] [ -t ] [ -u [0|1] ] [ -v ] [ -W [0|1] ] [ -X [xfermode] ] [ -y ] [ -Y ] [ -Z ] [device] ..

설명

hdparm 으로 Linux IDE/ST-506 장치의 여러가지 하드 디스크 ioctls 옵션을 정할수 있습니다. hdparm 는 Linux 커널 1.2.13 버젼 이상에서 사용할수 있습니다. 커널 1.2.13 이전 버젼에서는 동작하지 않는 옵션이 있을수 있습니다. 그리고 여러가지 옵션들이 커널 2.0.10 버젼 이상에서 포함된 새로운 (E)IDE 장치에서만 동작합니다. 이 옵션들은 커널 2.0.10 이전 버젼의 헤더화일로 컴파일된 hdparm 으로는 쓸 수 없습니다.

옵션

아무런 옵션이 주어지지 않는다면, -acdgkmnru 으로 실행됩니다. (단, 주어진 장치가 SCSI방식이나 오래된 XT방식의 MFM/RLL, 일 경우 각각 -gr-adgr 이 기본 옵션으로 실행됩니다).

파일 시스템의 미리 읽기(read-ahead) 섹터 수의 정보를 보여주거나 정할수 있습니다. 이 옵션으로 큰 화일이 연속되는 경우의 성능이 증대될수 있으며, 그것은 실행중인 작업이 필요하게 되는 예상의 추가적인 블럭을 미리 가져 옴으로써 성능을 증대시킵니다. 지금의 커널 버젼 (2.0.10) 에서는 기본적으로 8 섹터 (4KB) 입니다. 이 수치는 여러가지 용도로 적합해 보입니다만, 대부분의 화일을 비 순차적(random) 으로 찾는 경우에는 작은 수치가 더 좋은 성능을 낼수 있습니다. 또한 많은 IDE 장치에서 이미 내장된 미리 읽기(read-ahead) 기능을 가지고 있어 여러가지 상황에서 파일 시스템 미리 읽기(read-ahead) 필요를 덜어 줍니다.
IDE 장치의 미리 읽기(read-lookahead) 기능을 끄거나 켤수 있습니다. (대개 기본적으로 기능이 켜져(ON) 있습니다).
(E)IDE 장치의 32-bit 입출력(I/O) 기능을 켜거나 알아볼수 있습니다. 이 옵션에서 숫자로 32-bit 입출력(I/O)을 조정할수 있습니다: 32-bit 입출력(I/O)를 끄려면 0 ,32-bit 입출력(I/O)를 켜려면 1 ,마지막으로 여러 칩셋에서 요구되는 특별한 동기 배열(sync sequence)을 포함한 32-bit 입출력(I/O)를 켜려면 3. 이 값(3) 은 거의 모든 32-bit IDE 칩셋에서 동작하지만, 좀 더 부담(overhead)를 줄수 있습니다. "32-bit" 데이터 전송이 PCI나 VLB 버스에서 인터페이스 카드 사이라는 것을 명심합시다; 모든 (E)IDE 장치는 아직도 인터페이스 카드에서 장치까지 16-bit 의 리본 케이블로 연결되어 있습니다.
IDE 장치의 전원 모드 상태를 검사합니다. 이것은 항상 이 중 하나의 상태가 될 것 입니다. unknown (장치가 이 명령어를 지원하지 않습니다.), active/idle (보통 상태입니다.), standby (저 전력 상태입니다. 장치의 모터 회전이 멈춥니다.), sleeping (장치가 완전히 정지합니다.). -S,-y,-Y,-Z 옵션으로 IDE 장치의 전원 모드를 조정 할 수 있습니다.
장치의 직접 메모리 접근(DMA) 옵션을 켜거나 끌수 있습니다. 이 옵션은 DMA 를 지원하고 IDE 구동기로 알려진 소수의 드라이브와 인터페이스의 조합에서 동작합니다.( 그리고 XT 인터페이스 ) 특별히, Intel Triton 칩셋은 많은 드라이브와 bus-mastered DMA의 동작이 지원됩니다. (실험적) 장치가 확실히 multiword DMA mode2 로 제작되었다면 -X34 옵션을 -d1 옵션과 같이 설정하는 것도 좋을 것 이다. DMA 옵션을 사용하는 것은 처리량이나 시스템 성능 증가에 어떠한 증진에도 필요한 장치는 아니지만, 많은 사람들은 성능이 증가한다고 분명히 알고있습니다.. 당신이 생각하는 유용성은 아마 여러가지 일 것입니다.
CD-ROM의 속도를 설정합니다. 이것은 CD-ROM이 자동적으로 속도를 바꾸기 때문에 일반적으로 필요한 옵션은 아닙니다. 하지만 만약 당신이 속도를 바꾸기를 원한다면, 적당한 속도를 숫자로 주시길 바랍니다. 대개 속도는 2또는 4 입니다.
장치가 나갈때 버퍼 캐쉬(buffer cache)를 동기화 시키고 비웁니다. 이 동작은 또한 -t-T 옵션이 동작할때 같이 실행됩니다.
장치의 구조 (실린더, 헤드, 섹터), 장치의 크기 (섹터), 그리고 장치의 시작 변위(offset) (섹터)를 장치의 시작부분에서 표시합니다.
사용 방법을 간결하게 표시합니다. (help)
가능하다면 부트 시간에 얻을수 있는 확인 정보를 표시합니다. 이것은 지금의 IDE 장치의 특징이고, 오래된 장치에서는 아마 지원하지 않을 것 입니다. 이 옵션으로 얻을수 있는 정보가 옳던, 옳지 않던 , 그것은 시스템의 부팅에서 얻어지는 것 입니다. 하지만 현재의 다중 섹터 모드 수는 항상 보여 질 것 입니다. 확인 정보의 해석에 관해 좀 더 알고 싶다면 AT Attachment Interface for Disk Drives (ANSI ASC X3T9.2 working draft, revision 4a, April 19/93)을 참고 하시길 바랍니다.
장치로 부터 직접 어떠한 변화나 수정이 없는 본래의 확인 정보를 요청합니다. 딴 방법으로는 유사한 -i 옵션이 있습니다.
장치의 리셋에도 셋팅을 유지하는 옵션(keep_settings_over_rest)을 설정하거나 보여줍니다. 이 옵션을 설정 되었을때, 장치는 소프트 리셋을 넘어 -dmu 옵션을 보존합니다, (에러 복구 순서동안 끝남으로). 이 옵션은 기본적으로 -dmu 옵션의 조합으로 일으킬 수 있는 리셋의 순환을 막기위해 꺼져(off) 있습니다. -k 옵션은 그런 까닭에 선택된 설정이 올바른 시스템 동작과 그에 따른 자신이 있을때 설정되어야 합니다. ( -k 옵션 ) 실행에 앞서, 기본적으로 설정을 시험해 보는 것이 필요하며, 그것은 장치가 읽기/쓰기에 문제가 없고, 어떠한 에러 기록(커널 메세지)도 나오지 않아야 한다.(대부분의 시스템에서는 /var/adm/messages 를 보자)
리셋에도 특징을 유지하는 옵션(keep_features_over_reset)을 설정합니다. 이 옵션은 장치를 소프트 리셋에도 -APSWXZ 옵션으로 유지시킵니다, (에러 복구 순서동안 끝남으로). 모든 장치가 이것을 지원하는 것은 아닙니다.
장치의 도어락을 설정합니다. 이 옵션을 으로 설정함으로써 이동성 장치(예. Syquest, ZIP, Jazz..)의 도어를 잠급니다. 그리고 이 옵션을 으로 설정하므로써 도어락을 풀 수 있습니다. 일반적으로 리눅스는 디스크 사용에 따라 도어락을 자동적으로 유지합니다.(마운트 되어 있다면 언제든지 도어락이 작동됩니다.) 하지만 시스템의 셧다운시, 만약 루트 파티션이 이동성 장치에 있다면 루트파티션이 셧다운후에도 (read-only상태의)마운트된채로 남아있어 성가실수 있습니다. 그렇기 때문에 셧다운후에 카트리지를 제거할수 있도록 루트 파일시스템이 read-only 상태로 재 마운트 된후 도어락을 풀수 있도록 이 옵션을 사용합니다.
장치의 다중 섹터 입출력(I/O)을 위해 섹터 수를 설정하거나 정보를 알아냅니다. 이 옵션을 끄기 위해서는 0 을 사용합니다. IDE 블럭 모드로 알려진 다중 섹터 모드는 지금의 IDE 하드 장치의 특징이며, 이것은 한 인터럽트당 하나의 섹터를 전송하는 것에 비해 한 인터럽트당 여러개의 섹터를 전송을 가능하게 합니다. 이 기능이 켜졌을 때 일반적으로 OS의 디스크 입출력(I/O)의 부담이 30-50% 감소하게 됩니다. 많은 시스템에서, 이 옵션은 또한 어디에라도 5-50% 의 전송량을 증가하게 합니다. 하지만 어떤 장치는 (대부분의 유명한 WD Caviar 시리즈)는 다중 모드가 켜졌을때 실행이 더 느려지는 것 처럼 보입니다. 당신에게의 유용성은 여러가지 일 것 입니다. 대부분의 장치는 2, 4, 8 또는 16섹터 가운데 적은 셋팅을 지원할 것 입니다. 더 큰 셋팅도 가능하지만, 그것은 어디까지나 장치에 달려있습니다. 16 또는 32로 설정하는게 많은 시스템에서 최적인것 같습니다. Western Digital 은 많은 그 회사의 장치에게 4 또는 8 정도의 적은 셋팅을 하기를 권하고 있습니다. 그것은 적은 (32kB) 장치 버퍼와 최적화 되지 못한 버퍼 알고리즘 때문입니다. -i 옵션은 인스톨된 장치의 최대로 가능한 설정 값을 알려 줄 것 입니다. (출력물의 MaxMultSect 부분을 보시길 바랍니다.) 어떤 장치들은 다중 모드를 가능하게 해달라고 주장하는것 같지만, 어떠한 셋팅에서 데이터를 잃어버리게 됩니다. 이런 드문 상황에서 , 그런 실패는 크게 파일시스템을 손상시키는 결과가 됩니다.
IDE 인터페이스 칩셋을 구체적 PIO 모드로 다시 프로그램하는 것을 시도하거나 장치에 맞는 "최상의" PIO 모드로 자동적으로 설정하는 것을 시도합니다. 이 기능은 커널에서 지원되는 잘 알려진 몇몇의 칩셋에서 지원되며 그 경우라도 기껏해야 불확실합니다. 어떤 IDE 칩셋은 단일 드라이브에 대해 PIO 모드를 변경하는것이 불가능 합니다. 이 경우에 이 옵션은 아마도 양쪽의 드라이브의 PIO 모드를 바꾸게 될 것 입니다. 많은 IDE 칩셋은 기본 6가지 (0에서 5) PIO 모드보다 적거나 많을 것 입니다. 그래서 정확한 속도 셋팅은 실제로 수행함에 있어 칩셋/드라이버에 의해 여러가지로 복잡합니다. 사용할때 매우 조심하십시오! 이 기능은 부주의함 때문에 zero protection 을 포함하고 있고 비성공적인 결과물은 아마도 심한 파일시스템의 손상 이 있을 것 입니다.
장치의 내부적인 선전달(prefetch) 구조를 위한 최대 섹터 수를 설정합니다. 모든 장치가 이 기능을 지원하는 것은 아닙니다.
이어지는 옵션을 화면에는 출력하지 않습니다. 이것은 /etc/rc.d/rc.local 에서 실행될 때 화면의 출력을 줄여서 유용합니다. 이것은 -i 옵션 -v 옵션 -t 옵션 -T 옵션에는 적용되지 않습니다.
장치의 읽기 전용(read-only)을 설정하거나 정보를 얻습니다. 설정할때, 이 장치의 쓰기는 허가되지 않습니다.
IDE 인터페이스를 등록합니다. 위험합니다. 더 많은 정보를 위해서 -U 옵션을 보시길 바랍니다.
드라이브의 standby (spindown) 시간을 설정합니다. 이 수치는 드라이브에게 전원 절약을 위해 스핀들 모터를 멈출때 까지 얼마나 기다릴 것인가(어떠한 디스크 활동없이)를 결정하게 됩니다. 이런 상황에서 드라이브는 연속되는 디스크 접근에 반응하기 위해 30초정도 걸릴 것 이지만 대부분의 드라이브는 더 빠릅니다. timeout 수치는 좀 특이합니다. 이 수치가 0 일때는 이 옵션을 끕니다. 수치가 1 에서 240 일때 수치당 5초의 시간을 가집니다. 따라서 이 때는 5초에서 20분 사이가 됩니다. 수치가 241 에서 251 일때는 수치 1 당 30분의 시간을 가집니다. 따라서 이 때는 30분에서 5.5 시간이 됩니다. 252는 21분의 timeout 을 의미하고 253은 제작사에서 정의된 timeout 입니다. 그리고 255는 21분 15초가 됩니다.
비교를 목적으로 벤치마크를 위해 캐쉬를 읽는 시간을 잽니다. 정확한 결과를 위해 이것을 적어도 수 메가 바이트의 메모리 자원이 남은 상태의 사용하지 않는 시스템(실행중인 다른 프로세스가 없는)에서 2-3번 정도 반복해서 수행합니다. 이 옵션은 디스크 접근(access)없이 리눅스 버퍼 캐쉬로 부터 직접적으로 읽어오는 속도를 표시해줍니다. 이 측정법은 본래 테스트 상태의 시스템의 프로세서, 캐쉬, 메모리의 결과물의 표시입니다. -t 옵션과 같이 사용한다면, 수정된 요인에 기초한 -T 의 결과에 -t 의 결과를 함께 보고할 것 입니다.
비교를 목적으로 벤치마크를 위해 장치를 읽는 시간을 잽니다. 정확한 결과를 위해 이것을 적어도 수 메가 바이트의 메모리 자원이 남은 상태의 사용하지 않는 시스템(실행중인 다른 프로세스가 없는)에서 2-3번 정도 반복해서 수행합니다. 이 옵션은 어떠한 사전의 캐쉬가 되지 않은 데이터를 디스크에서 버퍼 캐쉬를 통해 읽는 속도를 표시합니다. 이 측정법은 리눅스에서 파일시스템의 어떠한 부담을 주지않고 얼마나 빠르게 드라이브가 연속되는 데이터를 지속적으로 읽을수 있는지의 표시입니다. 정확한 측정법을 확실히 하기 위해서는, BLKFLSBUF ioctl 를 사용하여 -t 가 수행되는 동안 버퍼 캐쉬가 비워져야 합니다. -T 옵션과 같이 사용한다면, 수정된 요인에 기초한 -T 의 결과에 -t 의 결과를 함께 보고할 것 입니다.
장치의 interrupt-unmask 를 설정하거나 정보를 얻습니다. 이 옵션을 1 로 설정할 경우 장치에게 디스크의 인터럽트가 진행되는 동안 다른 인터럽트를 unmask 하도록 허락합니다. 이것은 리눅스의 반응성을 크게 증가시키고 "serial port overrun" 에러를 제거합니다. 이 기능을 사용할때는 주의하십시오: 어떤 드라이브/콘트롤러 조합은 이 기능이 켜졌을때(enable) 입출력(I/O) 대기시간이 증가하는 것에 관대하지 않을수 있습니다. 결과적으로 파일시스템을 크게 손상시킵니다. 특별히 CMD-640BRZ1000 (E)IDE 인터페이스는 커널 2.0.13 이전 버젼에서는 이 옵션이 사용될 때 신뢰할수 없습니다. (하드웨어 결함 때문) 이전 버젼의 커널을 사용 할때 이런 문제를 고치기 위해서는 IDE prefetch 기능을 이런 인터페이스 에서 꺼 주시길 바랍니다.(대개 BIOS/CMOS 셋팅) (대개 BIOS/CMOS 셋팅)
IDE 인터페이스 등록을 제거합니다. 위험합니다. -R 옵션과 같이합니다. 특별히 hot-swapping 하드웨어를 쓰려고 예정되었습니다.(매우 드뭅니다!). 이 옵션이 당신의 시스템에 망치거나 데미지를 줄수있으므로 충분한 지식과 신중한 주의 를 가지고 사용하시기 바랍니다. hdparm 소스 배포는 'contrib' 디렉토리를 포함하고 있습니다. 여기에는 사용자들이 보내온 ThinkPad 600E 의 UltraBay hot-swapping 스크립트가 들어있습니다. 사용은 여러분에게 맡기겠습니다.
-i 옵션을 제외하고 모든 셋팅을 표시합니다.( IDE 에서는 -acdgkmnru , SCSI 에서는 -gr , XT 에서는 -adgr 과 같습니다.) 또한 이것은 특별히 어떠한 옵션도 주지 않았을때 기본 동작입니다.
IDE 드라이브의 쓰기-캐쉬(write-caching) 기능을 끄거나 켭니다.( 대개 기본적으로 꺼져(OFF) 있습니다.)
새로운 (E)IDE/ATA2 드라이브를 위해 IDE 전송 모드를 설정합니다. 이 옵션은 기본적으로 d1 옵션과 같이 쓰이며 이것은 지원되는 인터페이스 칩셋 ( Intel 430FX Triton 같은 ) 에서 드라이브 에게/에서 DMA 를 켜며, 이러한 칩셋은 -X34 옵션이 multiword DMA mode2 전송을 사용하기 위해 쓰입니다. Ultra DMA 을 지원하는 시스템에서는, -X66 옵션이 UltraDMA mode2 전송을 사용하기 위해 쓰입니다.( 당신은 UltraDMA 칩셋을 사용하기 위해 준비가 필요합니다.) 위에 것은 그렇다 하고, 거의 모든 지금의 IDE 드라이브가 전원을 킬 때 부터 가장 빠른 PIO 전송모드를 기본으로 하기 때문에 이 옵션의 사용은 좀처럼 필요하지 않습니다. 무의미한 이것은 필요하지 않을수도 위험할수도 있습니다. 양쪽 모두의 전송 모드를 지원하는 드라이브에서는 -X단지 전송 모드를 바꾸는데 사용됩니다. 데이터의 손실이나 손상을 막기위해 전송모드를 바꾸기 전에 IDE 인터페이스는 점퍼가 설정되거나 프로그램 되어있어야 합니다.( -p 옵션을 보자). 이 옵션을 사용할때는 극히 주의하길 바랍니다! PIO(Programmed Input/Output) 전송 모드는 리눅스에서 사용되고, 이 수치는 간단하게 원하는 PIO 모드 번호에서 8 을 더한 값입니다. 그래서 09 값은 PIO 모드1로 설정되고 10은 PIO 모드2로 설정되며 11 은 PIO 모드3 입니다. 00 값으로 설정하면 드라이브의 "기본" PIO 모드로 설정됩니다. 그리고 01은 IORDY 를 끕니다. multiword DMA 에서는 원하는 DMA 모드에 32를 더한 값이 사용됩니다. 그리고 UltraDMA 에서는 원하는 UltraDMA 모드에 64 를 더한 값이 사용됩니다.
강제로 IDE 드라이브를 신속히 저 전력 소모의 standby 모드로 들어가게 합니다. 대개는 스핀들 모터를 멈추게 합니다. 현재 전원 모드 상태는 -C 옵션에서 체크할 수 있습니다.
강제로 IDE 드라이브를 신속히 가장 적은 전력을 소모하는 sleep 모드로 들어갑니다. 완전히 shut down을 합니다. 드라이브가 다시 접근(access)할수 있으려면 하드 혹은 소프트 리셋이 필요합니다.( 리눅스 IDE 드라이버는 필요할 때 자동적으로 리셋을 조절합니다.) 현재 전원 모드 상태는 -C 옵션에서 체크할 수 있습니다.
불편한 시간에 idle/spin-down 을 막기위해 Seagate 드라이브의
자동 전력-보호 기능을 끕니다. (ST3xxx 모델?)

버그

위에서 말한 것과 같이 -B -m sectcount 와 -B -u 1 옵션은 처음에 경고와 함께 사용되야 하는 것이 틀림없습니다. 되도록이면 read-only 파일 시스템에서 사용되어야 합니다. 대부분의 드라이브는 이 기능 들과 잘 동작하지만, 몇몇의 드라이브/콘트롤러 조합은 100% 호환되는 것이 아닙니다. 파일시스템을 손상시킬 수 있습니다. 실험해 보기 전에 모든 것을 백업하십시오!

어떤 옵션 (예를 들어 SCSI 에서 -r) 은 필요한 ioctl() 가 오래된 커널에는 없기 때문에 오래된 커널에서 동작하지 않을수도 있습니다.

이 유틸리티가 기본적으로 (E)IDE 하드 디스크 장치에서 사용하고 했지만, 여러가지 옵션이 SCSI 하드 디스크 장치와 XT 인터페이스의 MFM/RLL 하드 디스크에서도 유효하며 동작합니다.

저자

hdparm 은 많은 netfolk 로 부터 제안과 함께 리눅스에서 (E)IDE 드라이버의 주요한 개발자이고, 유지자인 Mark Lord <mlord@pobox.com>가 썼습니다.

Seagate 자동 전력 보호 제거 코드는 Tomi Leppikangas(tomilepp@paju.oulu.fi) 로 부터 제공을 받았습니다.

참고

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 working draft, revision 2f, July 26, 1994.

Western Digital Enhanced IDE Implementation Guide, by Western Digital Corportation, revision 5.0, November 10, 1993.

Enhanced Disk Drive Specification, by Phoenix Technologies Ltd., version 1.0, January 25, 1994.

February 2000 Version 3.9