Linux 커널이 보조 HDD를 절전 모드에서 깨우지 못하게 하는 방법

Linux 커널이 보조 HDD를 절전 모드에서 깨우지 못하게 하는 방법

시스템 절전/깨우기 주기 후에 보조 HDD를 깨우지 않도록 (Linux) 커널에 지시하는 방법이 있습니까? 제 노트북에는 시스템 루트가 포함된 기본 드라이브로 SSD가 있고, 백업 시스템과 산발적으로 액세스하는 파일을 보관하는 보조 HDD가 있기 때문에 질문드립니다. 랩톱은 일반적으로 며칠 동안 매일 많은 절전/깨우기 주기(최대 절전 모드가 아닌 RAM 일시 중단을 의미함)를 거치기 때문에 보조 HDD를 수동으로 절전 모드로 설정하고 시스템 절전 중에도 절전 모드를 유지하도록 커널에 지시하고 싶습니다. /깨어나기 주기.

답변1

백업용으로 보조 HDD만 사용하므로 fstab에게 드라이브를 자동으로 마운트하지 말고 드라이브를 마운트하는 백업 스크립트를 만들고 백업을 만든 다음 드라이브를 다시 마운트 해제하도록 지시하는 것이 좋습니다.

noauto 옵션이 포함된 fstab 줄의 예:

/dev/sdb1 /media/backup ext4 user,noauto 0 0

백업을 위한 bash 스크립트는 다음으로 시작 mount /media/backup하고 끝납니다.umount /media/backup

답변2

디스크를 회전시키지 마십시오.

디스크 회전은 커널에 하드 코딩된 것 같습니다.(덕분에베온이것을 파헤쳐 보기 위해.)
하지만 물론 패치가 가능합니다:이전 버전의 커널에 대한 패치.
모든 것이 이상합니다. 한때 이에 대한 커널 매개변수/스위치가 있었던 것을 기억했기 때문입니다.

이것은 해킹이므로 권장하지 않습니다. 업데이트할 때마다 커널을 패치하고 빌드해야 하며 때로는 변경된 코드에 패치를 적용해야 하기 때문입니다. 더 좋은 방법은 커널 개발자에게 패치(실제 스위치를 제공하고 모든 시스템에서 작동하는)를 제출하는 것입니다. 나는 그것이 이 답변의 범위를 벗어난다고 생각합니다. :)


디스크 다시 중지(SystemD/Linux)

Marc.2377의 솔루션을 기반으로 구축된 이 솔루션은 SystemD/Linux Mint에서 HDD를 종료하는 데 효과적이었습니다.

[Unit]
Description="Put woken HDD back to sleep and tell it to go to sleep after 2 min of not being used."
After=systemd-suspend.service systemd-hybrid-sleep.service systemd-hibernate.service systemd-suspend-then-hibernate.service

[Service]
Type=simple
ExecStart=/usr/sbin/hdparm -q -S 24 -q -Y /dev/disk/by-id/MYDISK

[Install]
WantedBy=sleep.target

MYDISK에서 실제 장치 파일 이름으로 대체 /dev/disk/by-id하고 /etc/systemd/system/wake_hdd-stop.service.

그런 다음 실행 systemctl daemon-reload하여 활성화하십시오.


디스크 다시 중지(GNU/Linux)

일반 GNU/Linux 시스템에서는 pm-utils다음을 사용하면 됩니다 /etc/pm/sleep.d/99_hdd-stop.

#! /bin/sh
case "$1" in
  resume|thaw)
    /usr/sbin/hdparm -q -S 24 -q -Y /dev/disk/by-id/MYDISK
    ;;
esac

MYDISK물론 교체합니다 .
그런 다음 파일을 실행 가능하게 만드십시오.chmod +x /etc/pm/sleep.d/99_hdd-stop


메모

어떤 경우든 명령을 가능한 한 늦게 실행해야 합니다. 그렇지 않으면 디스크에 액세스하는 일부 초기화 프로세스로 인해 디스크가 다시 회전할 수 있습니다.

또한 내 디스크는 -S명령을 완전히 무시하는 것 같습니다. 그래서 YMMV. (위 스크립트를 실행할 파일을 생성 .desktop하고 데스크탑 환경의 전역 키보드 단축키 설정을 사용하여 이에 대한 단축키를 매핑했습니다. 그래서 언제든지 원할 때 즉시 중지할 수 있습니다.)


답변3

나는 그것이 가능하다고 생각하지 않습니다. 드라이브는 부팅 시 커널뿐만 아니라 BIOS/UEFI에 의해 검색됩니다.

하지만 내가 하는 일은 시스템이 부팅된 직후에 드라이브를 절전 모드로 전환하도록 시스템에 지시하는 것입니다. 확인하다https://wiki.archlinux.org/index.php/Hdparm#Putting_a_drive_to_sleep_directly_after_boot.

내 경우에는 다음이 있습니다.

/usr/local/lib/systemd/system/rsleephdd.service

[Unit]
Description="Ranolfi's script to sleep hard drives on boot"

[Service]
Type=oneshot
ExecStart=/usr/bin/hdparm -q -S 120 -Y /dev/sdc

[Install]
WantedBy=multi-user.target

드라이브나 해당 파티션이 fstab(또는 crypttab)에 의해 마운트되었는지 여부는 차이가 없습니다.

(편집): 엄밀히 말하면,패치를 적용하여 커널이 디스크를 무시하도록 하는 것이 가능한 것으로 보입니다.. 그래도 드라이브가 깨어나는 것을 막지는 못합니다. 정반대입니다. 제가 연결한 패치는 드라이브에 액세스하는 것을 방지하고, 산발적으로라도 파일에 액세스할 수 없으며, 드라이브를 드라이브에 넣을 수도 없습니다. 잠.

관련 정보