Linux 커널이 보조 하드 드라이브를 절전 모드에서 깨우는 것을 방지하는 방법

Linux 커널이 보조 하드 드라이브를 절전 모드에서 깨우는 것을 방지하는 방법

시스템 절전/깨우기 주기 후에 보조 하드 드라이브를 깨우지 않도록 (Linux) 커널에 지시하는 방법이 있습니까? 제가 이렇게 묻는 이유는 제 노트북에 시스템 루트가 포함된 기본 드라이브로 SSD가 있고 가끔 액세스하는 시스템과 파일의 백업을 보관하는 보조 HDD가 있기 때문입니다. 랩톱은 일반적으로 며칠 동안 매일 절전/깨우기 주기(최대 절전 모드가 아닌 RAM 일시 정지를 의미함)를 거치기 때문에 수동으로 보조 HDD를 절전 모드로 설정하고 시스템이 절전 모드인 동안 계속 켜져 있도록 커널에 지시하고 싶습니다. 웨이크 사이클.

답변1

백업용으로 보조 하드 드라이브만 사용하므로 드라이브를 자동으로 마운트하지 않도록 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)에 의해 마운트되는지 여부는 아무런 차이가 없습니다.

(편집자): 엄밀히 말하면,디스크를 패치하여 커널이 디스크를 무시하도록 만드는 것이 가능해 보입니다.. 하지만 이것이 드라이브가 깨어나는 것을 막지는 못합니다. 반대로, 제가 링크한 패치는 귀하가 드라이브에 접근하는 것을 막고, 가끔씩이라도 파일에 접근할 수 없게 될 것입니다. 드라이브를 잠자기 상태로 설정합니다.

관련 정보