USB를 통해 연결된 외장 하드 드라이브가 있습니다. 하드 드라이브의 스핀다운/대기 시간을 설정하는 일반적인 방법은 hdparm을 사용하는 것 같습니다.
그래서 나는 달려가서 sudo hdparm -S 200 /dev/sdb
얻는다.
/dev/sdb: setting standby to 200 (16 minutes + 40 seconds)
SG_IO: bad/missing sense data, sb[]: f0 00 01 00 50 40 c8 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
이전에 SG_IO에서 추가 메시지를 받지 않고 이 작업을 시도했던 기억이 납니다. 이제 내가 설정한 값에 관계없이 드라이브는 유휴 상태일 때 약 1분 후에 회전 속도가 느려지는 것 같습니다. 작업하는 동안 회전이 여러 번 증가하고 감소하여 성가신 지연이 발생하며 드라이브 상태를 계속 실행하는 것이 더 좋을 것이라고 생각합니다.
값이 실제로 설정되어 있는지 확인하는 방법을 찾지 못했지만 APM(Advanced Power Management) 수준에서는 확인할 수 있습니다.
sudo hdparm -B 196 /dev/sdb
/dev/sdb:
setting Advanced Power Management level to 0xc4 (196)
SG_IO: bad/missing sense data, sb[]: f0 00 01 00 50 40 c4 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
APM_level = 196
$ sudo hdparm -B /dev/sdb
/dev/sdb:
APM_level = 196
시스템은 커널 3.17.6을 갖춘 Arch Linux입니다.
어쨌든 드라이브가 회전하는 이유는 무엇입니까? 그것을 피하기 위해 무엇을 할 수 있습니까?
업데이트
hdparm
다음 옵션이 있지만 명령 결과는 동일합니다.
--prefer-ata12 SAT(SCSI ATA 변환) 프로토콜을 사용할 때 hdparm은 일반적으로 가능할 때마다 16바이트 명령 형식을 사용하는 것을 선호합니다. 그러나 일부 USB 드라이브 인클로저는 16바이트 명령으로 올바르게 작동하지 않습니다. 이 옵션을 사용하면 해당 드라이브에 더 작은 12바이트 명령 형식을 강제로 사용할 수 있습니다. hdparm은 12바이트 형식으로 수행할 수 없는 작업(예: 28비트를 초과하는 섹터 액세스)에 대해 여전히 16바이트 명령으로 되돌아갑니다.