우분투 17.04를 사용할 때 최대 절전 모드가 올바르게 작동했습니다. 17.10으로 업그레이드 한 후 다시 시작한 후 검은 화면으로 인해 다시 시작할 수 없습니다 ( 이 버그 ).
최대 절전 모드 후 컴퓨터를 시작하려고하면 18.04로 업그레이드 한 후 최대 절전 모드가 완료되지 않은 것처럼 부팅됩니다.
우분투 17.04를 사용할 때 최대 절전 모드가 올바르게 작동했습니다. 17.10으로 업그레이드 한 후 다시 시작한 후 검은 화면으로 인해 다시 시작할 수 없습니다 ( 이 버그 ).
최대 절전 모드 후 컴퓨터를 시작하려고하면 18.04로 업그레이드 한 후 최대 절전 모드가 완료되지 않은 것처럼 부팅됩니다.
답변:
이전 LTS (16.04)와 비교할 때 기본 설정이 변경되었습니다. 필자의 경우 최대 절전 모드는 몇 단계를 거쳐야 스왑 파일의 크기를 늘리고 켜고 정책이 허용하는지 확인하는 등의 작업을 수행 할 때까지 작동하지 않았습니다.
이것은 전체 StackExchange에서 가장 긴 대답 일 수 있으므로 헤더를 설명하려고했습니다 .
로그를 살펴보고 ( dmesg
도움이 될 수 있음) 무엇이 있는지 확인 하는 것이 현명합니다 . 시스템에 최대 절전 모드를 설정하도록 지시했지만 실제로는 그렇지 않거나 대신 RAM으로 일시 중단 (sleep)하는 이유가 있습니다.
한 번 봐 복용 kern.log
하고 syslog
있는 최대 절전 모드 관련 메시지를 찾는 것이 아니라 해치지 않을 것입니다. "문제"로 시작하는 섹션은 특정 문제를 해결하는 데 도움이 될 수 있습니다.
중요한 변경 사항 중 하나는 이제 스왑 파티션이 없지만 스왑 파일이 있다는 것입니다.
하드웨어 / 드라이버 / OS 및 최대 절전 모드 혼합에서 스왑 파일이 작동하지 않을 수 있습니다.
정책은 최대 절전 모드를 해제하거나 허용하지 않을 수도 있습니다.
RAM 일시 중단-RAM은 데이터를 유지하고 컴퓨터는 더 빨리 잠자기 상태가되고 일시 중단시 더 많은 에너지를 사용하며 더 빨리 깨어납니다. 어떤 사람들은 이것을 수면이라고 부릅니다.
디스크 일시 중단-일명 최대 절전 모드. RAM이 스왑 (파티션 또는 파일)으로 저장되고 컴퓨터가 느리게 절전 모드로 전환되고 최대 절전 모드에서 에너지 소비가 줄어들고 깨어납니다.
최대 절전 모드로 전환하려면 전체 RAM을 하드 드라이브에 저장해야합니다 (여기에서는 단순화). 따라서 충분한 공간을 확보해야합니다. 그렇지 않으면 이것이 실패하고 최대 절전 모드가되지 않습니다.
free -m
스왑의 메모리 용량, 사용량 및 용량을 알려줍니다. df -h
각 마운트 지점에있는 디스크 공간과 사용 된 공간, 사용 가능한 공간 등을 알려줍니다. 나중에 스왑 파일을 배치 할 위치 또는 "트림"할 파티션을 지정하려는 경우 중요합니다. 스왑을위한 충분한 공간.cat fstab
스왑 파티션 또는 파일이있는 경우 정보를 제공해야합니다. Ubuntu Hibernation FAQ에 따르면 swapfile
일부 하드웨어 / 드라이버 조합에서 항상 작동하지 않을 수도 있습니다.공간이 충분하지 않으면 Ubuntu swap FAQ를 따르십시오 . 스왑 파일을 늘리고, 다른 파일을 추가하고, 사용되는지 확인하는 방법을 명령과 설명으로 알려줍니다. 정말 좋은 자원.
커널 문서는 말합니다 :
/ sys / power / image_size는 디스크 일시 중지 메커니즘에 의해 생성 된 이미지의 크기를 제어합니다. 이미지 크기의 상한으로 사용되는 음이 아닌 정수를 나타내는 문자열을 바이트 단위로 작성할 수 있습니다. 디스크 일시 중단 메커니즘은 이미지 크기가 해당 숫자를 초과하지 않도록 최선을 다할 것입니다. 그러나 이것이 불가능한 것으로 밝혀지면 가능한 가장 작은 이미지를 사용하여 일시 중단하려고 시도합니다. 특히, "0"이이 파일에 기록되면 일시 중단 이미지는 가능한 작습니다. 이 파일을 읽으면 현재 이미지 크기 제한이 표시되며 기본적으로 사용 가능한 RAM의 2/5로 설정됩니다.
따라서 이미지 크기를 조정하십시오. 어떻게-다른 질문을 부탁드립니다.
커널은에 나열된 내용을 지원 /sys/power/state
하므로
cat /sys/power/state
(내 지식) 허용이 포함 엔트리 : mem
, standby
, freeze
, disk
. 설명:
mem
-몇 가지 의미가 있습니다. 시스템에서 정확히 하나를 통해 찾을 수 cat /sys/power/mem_sleep
있습니다. 나는 가지고있다:s2idle [deep]
standby
-전원 공급 중단 (지원되는 경우)freeze
-유휴 상태로 일시 중단 (STI)disk
-디스크 일시 중단 (STD), 최대 절전 모드 . 이것은-당신이 원합니다.그런 다음 확인해야합니다 cat /sys/power/disk
. disabled
BIOS에 보안 부팅을 찾고 있다면 이것이 내가 제공 할 수있는 유일한 아이디어이며 내가 아는 것만으로 최대 절전 모드를 방해하고 끌 수 있습니다. SecureBoot에 대해서만 알고 있지만 다른 간섭이있을 수 있으므로 "보안 부팅"이없는 경우에도 BIOS를 살펴 보는 것이 좋습니다.
여기를 읽으십시오 :
TBH는 커널이 최대 절전 모드를 지원하지 않더라도 다른 방법으로 시도하여 섹션 아래로 스크롤 할 수 있습니다Interfaces
.
특별한 순서는 없습니다 :
BTRFS 및 최대 절전 모드를 사용하지 마십시오. 데이터가 손상 될 수 있습니다.
사람들이 스왑 파일을 포기하고 스왑 파티션으로 돌아가는 경우가 있습니다. 결국 이전 LTS에서 작동했습니다. 시도하지 않았으므로 포인터를 제공하지 않습니다.
/etc/fstab
새 파일로 변경하십시오 . 변경 사항이 제대로 표시되는지 다시 부팅하십시오 (저장소의 백업 백업을 수행하는 fstab
경우를 대비하여 쉽게 되돌릴 수 있습니다).신중하게 읽고 원하는지 결정하지만 커널을 구성하는 방법 일뿐입니다. 을 통해 최대 절전 모드로 쉽게 할 수 systemd
와 uswsusp
(참조 인터페이스 아래). 나처럼-당신은 궁극적으로 RAM 일시 중단이 충분하고 스왑 파일에 32GB를 갖고 싶지 않다고 결정할 수 있습니다 (예 : 랩톱에 하나의 SSD가있는 사람들에게는 그렇게 좋지 않습니다). 그러나!
resume=
있는 파티션과 resume_offset=
스왑 파일에서 재개를 시작할 위치를 알아야합니다.resume=
교체를 가리켜 야합니다.resumedelay=
.최대 절전 모드에서 재개 지연에 대한 커널 문서 :
resumedelay = [중지] 이력서 파일을 읽기 전에 일시 정지되는 지연 (초)
스왑 파일 및 최대 절전 모드에 필요한 매개 변수 :
이력서 = [SWSUSP]
Specify the partition device for software suspend Format: {/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>}
resume_offset = [SWSUSP]
Specify the offset from the beginning of the partition given by "resume=" at which the swap header is located, in <PAGE_SIZE> units (needed only for swap files). See Documentation/power/swsusp-and-swap-files.txt
(가)의 경우 resume=
같은 스타일을 선택 같은 root
요소에있다 fstab
. 그래서, 하나 /dev/sdaX
또는 UUID
또는 LVM. 파일을 최대 절전 모드로 전환하려면 파일을 찾을 수있는 파티션을 제공하십시오.
독서:
스왑 파일을 올바르게 포맷해야합니다. 로그에서이를 알려면 파일을 최대 절전 모드로 전환하려고하거나 이력서 매개 변수가 올바르지 않습니다.
파티션으로 전환하거나 파일을 수정하거나 최대 절전 모드에 사용되는 인터페이스를 변경하십시오.
참조 : /unix/43508/debian-hibernate-problem-pm-swap-header-not-found
mkswap
파일 형식을 지정하는 데 사용되며 여기에서 더 자세히 읽으 십시오
테스트 : pm-hibernate
(pm-utils 패키지가 설치된 경우) systemctl hibernate
허용되지 않는다고 알려줍니다. IIRC 12.04 이후 Ubuntu의 기본 설정입니다.
솔루션 : Polkit 버전, Ubuntu 버전 및 맛에 따라 다릅니다 ... 이 질문을 참조하십시오 . 또한 Polkit의 ArchWiki 가 도움이 될 수 있습니다.
민트의 경우 https://forums.linuxmint.com/viewtopic.php?t=259912를 참조하십시오.
테스트 : cat /sys/power/disk
있습니다 disabled
. 로그에 "로그인을 통한 시스템 최대 절전 모드 실패 : 절전 동사가 지원되지 않음"이 표시됩니다.
해결 방법 : BIOS를 검색하여 문제가있는 것을 찾으십시오. 전원을 끄십시오.
해결 방법 2 : 다른 최대 절전 인터페이스를 사용해보십시오.
16.04.1에서 최대 절전 모드를 활성화하는 방법을 참조하십시오. (시스템) .
나에게 그것을 컴파일하는 것은 거의 이틀의 일이었다. 잘하면 이것이 당신과 다른 사람들이 당신의 문제를 더 빨리 해결하는 데 도움이되기를 바랍니다. 아직 놓친 포인트가 있지만 오전 2시이며 더 이상 글을 쓰고 싶지 않습니다. 나는 물론 이것을 개선하기 위해 다른 사람의 조언에 개방적이므로 의견을 말하십시오. 잠 자면 답장을 보내겠습니다. :-)
디스크에 동면하는 것이 그다지 확신하지는 않습니다. 나는 결국 자고 갔다. 그러나 문제는 일반적으로 스왑을 피하기 때문에 최대 절전 모드를 수행 할 수 있도록 32GB 파일을 갖는 것입니다. 초기 스왑 파일은 2GB였으며 대부분 비어있었습니다. YMMV. 그럼에도 불구하고 행운을 빕니다! 그리고 로그부터 시작하십시오!
$ sudo apt install linux-generic-hwe-18.04
(일부 하드웨어의 경우 linux-generic-hwe-18.04-edge
총 가치가있을 수 있습니다).
재시작 매개 변수에 대신의 설치 점의 스왑 파티션의 UUID를 사용하여 resume=UUID=<#>
모두 /etc/default/grub
와/etc/initramfs-tools/conf.d/resume
다음과 같이 /etc/fstab
마운트 지점없이 스왑 파티션에 대한 항목을 만듭니다.
# Entry for Swap :
UUID=# none swap sw 0 0
에서 /etc/default/grub
나는 최대 절전 모드를 재개 별도의 항목을 사용했습니다
# FOR HIBERNATION
GRUB_CMDLINE_LINUX="resume=UUID=..."
로컬 권한 (pkla)에서 정책 키트 생성
sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
그리고 거기에 삽입
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
[Enable hibernate to be run via cron]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=yes
그 업데이트 후 initramfs와 GRUB
sudo update-initramfs -u -k all
sudo update-grub
재부팅하고 일부 앱을 열고 systemctl hibernate
(do없이) 사용 하여 작동하는지 확인하십시오
나에게 그것은 항상 18.04까지 작동했으며 18.04 이후에는 많은 기사에서와 같이 활성화했지만 어제 (4-5 개월 동안 정상적으로 작동) 갑자기 중단되었습니다.
그리고 여기 다시 일하게 된 ... 한 가지가 있습니다 ...
스왑 파티션이 어디에 있는지 grub2에 알려주세요 :
먼저 아래 명령을 사용하여 어느 파티션에 있는지 확인하십시오.
cat /etc/fstab
다음 출력과 같이 광산은 sda7에 있습니다.
스왑은 설치 중에 / dev / sda7에있었습니다
그런 다음 다음 명령을 사용하여 Grub2에 다음 줄을 추가하십시오.
sudo gedit / etc / default / grub
GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = 이력서 비활성화 = / dev / sda7"
중요한 부분은 resume=/dev/sda7
내 경우에는 / dev / sda7
그런 다음 다음 명령으로 Grub을 업데이트 한 후 완벽하게 다시 작동하기 시작했습니다.
sudo update-grub
여러 번의 시도 끝에 이것이 효과가 있었던 것은 아마도 커널을 망친 커널 업데이트 때문일 것입니다.
이것이 누군가를 도울 수 있기를 바랍니다. 그러나 popos / ubuntu 19.04를 실행 중입니다. 내 설정에서 s2disk 또는 pm-hibernate를 사용하여 최대 절전 모드를 사용할 수 있었지만 재개는 실패했습니다. 이 문제를 해결하려면 grub 대신 UEFI를 사용하여 시스템을 부팅합니다. 부트 로더를 다시 설치해야했습니다. UEFI를 실행 중인지 확인하려면 다음을 사용하십시오.
[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"
UEFI 모드에있는 경우이 안내서에 따라 부트 로더를 다시 설치하면 nvme 디스크 또는 sata 디스크를 사용하는 경우 다릅니다 ( https://support.system76.com/articles/bootloader/).
kernalboot 옵션에서 다음과 같이 다시 시작할 위치의 파티션 또는 UUID를 지정하십시오.
이력서 = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
1) sudo kernel-stub -a "resume = UUID = ..."2) /etc/initramfs-tools/conf.d/resume 파일을 편집하고 다음을 추가하십시오. resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88
다음과 같이 / var / log / syslog 파일을 확인하십시오. Aug 4 22:26:42 pop-os / usr / bin / kernelstub [19639] : kernelstub : DEBUG kopts : root = UUID = b37019a8-91f5-445f-94c1 -7359a49ed5df ro quiet loglevel = 0 systemd .show_status = false resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
이력서가 없거나 잘못된 경우 부팅 커널을 다시 업데이트해야합니다.
Sam73의 답변에 언급 된 grub에서 스왑 이력서 지점을 설정하는 것 외에도 Ubuntu 18.04도 설치해야한다는 것을 알았습니다 laptop-mode-tools
.
$sudo apt install laptop-mode-tools
그런 다음 ENABLE_LAPTOP_MODE_ON_AC=1
구성 파일 을 변경 하십시오.
$sudo vim /etc/laptop-mode/laptop-mode.conf
다음과 같이 노트북 모드를 시작하십시오.
$sudo laptop_mode start
추신 당신은 노트북이 시작 여부를 확인할 수 있습니다
$cat /proc/sys/vm/laptop_mode
이 인쇄 0
되면 laptop_mode
작동하지 않는 것입니다. 그렇지 않으면 정상적으로 작동한다는 의미입니다.