hdparm을 사용한 HDD 유휴 설정(APM, 일시 중지)

hdparm을 사용한 HDD 유휴 설정(APM, 일시 중지)

운영 체제: GNU/Linux 데비안 9.2

30분 동안 유휴 상태일 때 HDD가 일시 중지되도록 컴퓨터 동작을 변경하고 싶습니다.

지금까지 나는 변화가 필요하다는 것을 알았습니다.APM디스크를 일시중단할 수 있는 수준을 설정하면 다음과 같습니다.

hdparm -B 127 /dev/sdX

여기서 127은 실제로 드라이브를 일시 중지(느리게)할 수 있는 최대값입니다.

그런 다음 대기 설정으로 들어갑니다.

hdparm -S 241 /dev/sdX

그 중 241은 30분 후 대기를 의미합니다.

hdparm이를 설정할 때 오류가 보고되지 않았습니다.

이제 내 질문은 다음과 같습니다.

재부팅할 때마다 이러한 설정이 사라지나요? 그렇다면 이러한 명령을 지속성으로 만들려면 어디에 넣어야 합니까?

다음 장치에 즉시 영향을 미치고 싶습니다.

/dev/sda
/dev/sdb
/dev/sdd
/dev/sde

경고하다: 이 질문은 실험 목적으로만 사용되었습니다. HDD의 SMART에서 시작/중지 카운트 주기를 늘리면 HDD가 계속 실행될 때보다 더 빠르게 성능이 저하될 수 있습니다.

답변1

재부팅할 때마다 이러한 설정이 사라지나요?

소프트 재시작 시 드라이브에 전원이 계속 공급되고 설정이 손실되지 않습니다. 전원을 다시 시작하면 APM 매개변수가 재설정됩니다. (적어도 내 노트북에서는)

따라서 대부분의 hdparm설정자는 다음을 통해 쉽게 확인할 수 있습니다.

# hdparm -B /dev/sdb

/dev/sdb:
APM_level      = 128

그러나 대기 타이머 옵션에서는 작동하지 않습니다. 그러나 논리적으로 이러한 설정도 손실됩니다.

이러한 명령을 지속성으로 만들려면 어디에 넣어야 합니까?

다양한 옵션, 사용자 정의 udev규칙, systemd서비스, cron작업( @reboot). 귀하에게 가장 적합한 것은 무엇입니까?

아치스 위키더 많은 정보를 얻을 수 있는 훌륭한 리소스입니다.

위 위키에서 영감을 받아 systemd젠투 시스템용 서비스 파일을 만들었습니다.

[Unit]
Description=hdparm sleep
After=suspend.target

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -S 12 -B 127 /dev/sdb

[Install]
WantedBy=multi-user.target suspend.target

다음과 같이 설정을 통해 모든 장치에 동시에 영향을 미치고 싶을 수도 있습니다.

ExecStart=/sbin/hdparm -B 127 -S 241 /dev/sda /dev/sdb /dev/sdd /dev/sde

cmd /dev/sd[abde]모든 것에 절대 경로를 사용해야 한다는 점에 유의하세요 . 예를 들어 . 바이너리의 정확한 위치는 hdparm배포판에 따라 다를 수 있습니다.

일반적으로 호출되는 위치를 찾으려면 다음 명령을 사용하십시오 hdparm.

which hdparm

그런 다음 서비스를 활성화하고 선택적으로 시작할 수 있습니다. 100% 작동하는지 확인하기 위해 컴퓨터를 다시 시작하는 것이 좋습니다.

# systemctl enable hdparm.service
# systemctl start hdparm.service
# systemctl status hdparm.service

hdparmArch의 제안은 출력을 억제하지만 성공 여부를 확인하기 위해 실행된 마지막 명령을 사용하는 것을 선호합니다.

편집하다

정지 후 매개변수가 더 이상 내 하드 드라이브에 저장되지 않는 것을 발견했습니다. 이는 더 많은 랩탑 시스템에 해당될 수 있습니다. 그래서 샘플 유닛 파일을 수정했습니다. 감사의 말이것unix.SO에 답변했습니다.

관련 정보