Fedora 19에서 부팅 및 재개 후 hdparm 명령을 어떻게 실행할 수 있습니까?


10

불행히도 5-8 초마다 잠을 자려고 시도하는 새로운 HD (WD5000BPVT)를 구입했습니다. 클릭 소음은 상당히 들릴뿐만 아니라 1 초의 스핀 업 시간으로 일상적인 사용에서 매우 눈에 띄는 대기 시간이 추가됩니다.

나는 hdparm -B 254 /dev/sda매우 짧은 절전 모드를 비활성화하지만 드라이브 전원을 켤 때 마다이 설정을 적용하는 방법을 모르겠습니다. dconf-editor와 '전원 관리 기본 설정은'HD 설정에 관해서는 모두 할 일 아무것도 애플 리케이션 없습니다. 나는 어떤이없는 /etc/hdparm또는 /etc/acpi경로를. MATE는 창 관리자입니다.

Fedora 19에서 드라이브가 활성화 될 때마다 어떻게이 명령을 강제 실행할 수 있습니까?

답변:


12

나는 같은 문제가 있었는데 여기의 해결책 중 어느 것도 나의 필요에 맞지 않았다. cron을 사용하는 것은 실제로 해결 방법이 아니라 해결책입니다. udev 규칙은 전원이 연결 / 연결 끊어졌을 때 실행되지만 일시 중지 / 다시 시작한 후에는 안되며 pm-utilsFedora 19에서 더 이상 랩톱 덮개를 닫을 때 더 이상 기본적으로 사용되지 않습니다.

때문에 systemd지금 / 일시 중단 최대 절전 모드에 대한 책임, 나는이 상황을 처리 할 수있는 유일한 적절한 방법은 만드는 것입니다 생각 systemd부팅 후 정지에서 복귀 한 후 모두 실행 단위를.

노트:

  • /dev/disk/by-id/...대신을 사용 /dev/sda하면 항상 올바른 디스크를 얻을 수 있습니다 (sda, b, c는 커널에서 감지 한 순서에 따라 다름)
  • 여러 ExecStart줄을 가질 수 있으므로 여러 디스크를 구성 할 수 있습니다

내가 쓴 단위는 다음과 같습니다.

[Unit]
Description=Silence HD
After=suspend.target

[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1

[Install]
WantedBy=suspend.target basic.target

이 파일을 다른 이름으로 저장 /etc/systemd/system/hdsilence.service한 후 다음을 사용하여 활성화하십시오.

systemctl enable hdsilence.service
systemctl daemon-reload

Fedora 20에서도 잘 작동합니다. 감사합니다!
Jakob

그러면 /etc/hdparm.conf에 대한 변경 사항이 더 이상 사용되지 않습니까?
domih

@domih : hdparm.conf는 데비안 인 것으로 Fedora에서는 지원되지 않습니다.
Krzysztof Adamski

6

자체 시스템 서비스를 작성하거나 /etc/rc.d/rc.local에 명령을 추가하여 부팅 중에 시스템이 명령을 실행하도록 할 수 있습니다.

절전 / 최대 절전 모드 후 시스템 을 깨울 때마다 명령을 실행 하려면 /etc/pm/sleep.d/에 2 자리 숫자로 시작하는 스크립트를 추가하고 / usr / lib64 /의 다른 스크립트를 살펴보십시오 자세한 내용은 pm-utils / sleep.d (x86_64 가정)입니다. 기본적으로 진입하는 상태에 따라 매개 변수를 사용합니다. 배터리 전원을 연결했을 때와 다르게 작동하려면 동일한 상위 디렉토리의 power.d /에 일부 로그인을 추가해야 할 수도 있습니다.


1
creating your own systemd service더 자세하게 얘기해 주 시겠어요? /etc/rc.d/rc.local 파일이 없습니다.
Pete

1
시스템 설명서 는 시스템 서비스 유닛의 구문을 설명합니다. 이 /etc/rc.d/rc.local파일은 단지 쉘 스크립트 일 뿐이며 파일을 만들고 실행 파일을 확인하십시오.
jsbillings 2016 년

3

AC / 배터리로 실행할 때 다른 설정을 원하면 간단한 udev규칙을 통해 수행합니다
/etc/udev/rules.d/98-apmsettings.rules.

SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/usr/bin/hdparm -B 128 /dev/sda"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/usr/bin/hdparm -B 254 /dev/sda"

랩톱이 연결되어 있고 연결되어 있지 않을 때로 설정 apm됩니다 . 또한 일시 중단에서 다시 시작한 후에도 항상 작동해야합니다.254128


1
축약어 복사를 좋아하는 사람들을 위해 최신 릴리스는 hdparm/usr/sbin있으므로 경로를 조정하십시오.
로마

2

나는 같은 디스크 (그리고 같은 문제)를 가지고 있습니다. 내 멍청하지만 작동하는 해결책 : 나는 그것을 넣었다 /etc/crontab.

-*/5  * * * *   root  hdparm -B 254 /dev/sda

12 초마다 드라이브에 액세스하지 않습니까? 나는 그 선을 따라 무언가를 고려했지만 도킹이 풀릴 때 약간의 수면을 원합니다.
Pete

5 분마다. 시스템의 전원 상태를 확인하는 랩퍼 스크립트를 작성할 수 있습니다.
Hauke ​​Laging 2016 년

1

udev 규칙은 플러그 이벤트에서 잘 작동하지만 일시 중단에서 다시 시작한 후 올바른 동작을 얻으려면 다음과 같은 것이 필요합니다 /etc/pm/sleep.d.

#!/bin/sh

case "${1}" in
    resume|thaw)
    if grep -q 1 /sys/class/power_supply/ADP1/online; then
      /usr/sbin/hdparm -B 254 /dev/sda
    else
      /usr/sbin/hdparm -B 128 /dev/sda
    fi
;;
esac
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.