최대 절전 모드 후 우분투 18.04를 다시 시작할 수 없습니다


17

우분투 17.04를 사용할 때 최대 절전 모드가 올바르게 작동했습니다. 17.10으로 업그레이드 한 후 다시 시작한 후 검은 화면으로 인해 다시 시작할 수 없습니다 ( 이 버그 ).

최대 절전 모드 후 컴퓨터를 시작하려고하면 18.04로 업그레이드 한 후 최대 절전 모드가 완료되지 않은 것처럼 부팅됩니다.


나는 18.04와 같은 문제가 있는데, 해결책은 이력서를 위해 올바른 파티션을 지정해야하지만 여전히이 작업을 수행 할 수있는 방법을 찾지 못했습니다. 내가 Google에서 작동하지 않는다는 것을 알았습니다.
user2819650

파티션이 /etc/initramfs-tools/conf.d/resume에서 올바르게 교체되었습니다. 최대 절전 모드가 올바르게 수행되지 않았거나 부팅 중에 재개가 작동하지 않는 것 같습니다. 그러나 나는 그것을 더 디버깅하는 방법을 모른다. Syslog와 dmesg는 문제가 무엇인지 전혀 알지 못합니다.
Kamil

답변:


29

이전 LTS (16.04)와 비교할 때 기본 설정이 변경되었습니다. 필자의 경우 최대 절전 모드는 몇 단계를 거쳐야 스왑 파일의 크기를 늘리고 켜고 정책이 허용하는지 확인하는 등의 작업을 수행 할 때까지 작동하지 않았습니다.

이것은 전체 StackExchange에서 가장 긴 대답 일 수 있으므로 헤더를 설명하려고했습니다 .

최대 절전 모드가 없었던 부츠

로그를 살펴보고 ( dmesg도움이 될 수 있음) 무엇이 있는지 확인 하는 것이 현명합니다 . 시스템에 최대 절전 모드를 설정하도록 지시했지만 실제로는 그렇지 않거나 대신 RAM으로 일시 중단 (sleep)하는 이유가 있습니다.

한 번 봐 복용 kern.log하고 syslog있는 최대 절전 모드 관련 메시지를 찾는 것이 아니라 해치지 않을 것입니다. "문제"로 시작하는 섹션은 특정 문제를 해결하는 데 도움이 될 수 있습니다.

스왑 파일 또는 스왑 파티션

중요한 변경 사항 중 하나는 이제 스왑 파티션이 없지만 스왑 파일이 있다는 것입니다.

하드웨어 / 드라이버 / OS 및 최대 절전 모드 혼합에서 스왑 파일이 작동하지 않을 수 있습니다.

최대 절전 모드가 해제되었습니다

정책은 최대 절전 모드를 해제하거나 허용하지 않을 수도 있습니다.

특수 용어

RAM 일시 중단-RAM은 데이터를 유지하고 컴퓨터는 더 빨리 잠자기 상태가되고 일시 중단시 더 많은 에너지를 사용하며 더 빨리 깨어납니다. 어떤 사람들은 이것을 수면이라고 부릅니다.

디스크 일시 중단-일명 최대 절전 모드. RAM이 스왑 (파티션 또는 파일)으로 저장되고 컴퓨터가 느리게 절전 모드로 전환되고 최대 절전 모드에서 에너지 소비가 줄어들고 깨어납니다.

Rafael J. Wysocki와 A. Leonard Brown이 리눅스에서 RAM에 일시 중단

전제 조건-충분한 공간이 있습니까?

최대 절전 모드로 전환하려면 전체 RAM을 하드 드라이브에 저장해야합니다 (여기에서는 단순화). 따라서 충분한 공간을 확보해야합니다. 그렇지 않으면 이것이 실패하고 최대 절전 모드가되지 않습니다.

  1. free -m 스왑의 메모리 용량, 사용량 및 용량을 알려줍니다.
  2. df -h 각 마운트 지점에있는 디스크 공간과 사용 된 공간, 사용 가능한 공간 등을 알려줍니다. 나중에 스왑 파일을 배치 할 위치 또는 "트림"할 파티션을 지정하려는 경우 중요합니다. 스왑을위한 충분한 공간.
  3. cat fstab스왑 파티션 또는 파일이있는 경우 정보를 제공해야합니다. Ubuntu Hibernation FAQ에 따르면 swapfile일부 하드웨어 / 드라이버 조합에서 항상 작동하지 않을 수도 있습니다.

공간이 충분하지 않으면 Ubuntu swap FAQ를 따르십시오 . 스왑 파일을 늘리고, 다른 파일을 추가하고, 사용되는지 확인하는 방법을 명령과 설명으로 알려줍니다. 정말 좋은 자원.

RAM에 맞는 공간이 부족합니다!

커널 문서는 말합니다 :

/ 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. disabledBIOS에 보안 부팅을 찾고 있다면 이것이 내가 제공 할 수있는 유일한 아이디어이며 내가 아는 것만으로 최대 절전 모드를 방해하고 끌 수 있습니다. SecureBoot에 대해서만 알고 있지만 다른 간섭이있을 수 있으므로 "보안 부팅"이없는 경우에도 BIOS를 살펴 보는 것이 좋습니다.

여기를 읽으십시오 :

  1. 커널 문서
  2. 최대 절전 모드의 데비안 위키

TBH는 커널이 최대 절전 모드를 지원하지 않더라도 다른 방법으로 시도하여 섹션 아래로 스크롤 할 수 있습니다Interfaces .

이것을 읽으십시오-경고 및 문제-BTRFS 없음

특별한 순서는 없습니다 :

  1. 모든 칩셋이 작동하는 것은 아닙니다.
  2. VAIO에는 문제가 있습니다.
  3. SecureBoot는 최대 절전 모드를 방해하거나 끄는 것으로 종종 인용됩니다.
  4. Wake-on-LAN은 최대 절전 모드에서도 전력 소비
  5. 시스템 최대 절전 모드에서 올바르게 재개되기 전에 모듈 수 (특히 그래픽)가 초기화 될 수 있습니다. 이는 일반적으로 다시 시작할 때 검은 화면의 원인입니다 . 문제를 디버깅하는 방법에 대한 팁은 ArchLinux Wiki를 참조하십시오. 또한 최대 절전 모드 문제에 대한 Ubuntu FAQ를 제안합니다. 런치 패드 버그를 탐색하면 결과가 발생할 수 있습니다. IIRC에는 재개 전 지연을 초 단위로 지정 하는 커널 매개 변수가 있습니다.
  6. 최대 절전 모드 허용은 Polkit 버전마다 다릅니다.

BTRFS 및 최대 절전 모드를 사용하지 마십시오. 데이터가 손상 될 수 있습니다.

최대 절전 모드-파티션 교체

사람들이 스왑 파일을 포기하고 스왑 파티션으로 돌아가는 경우가 있습니다. 결국 이전 LTS에서 작동했습니다. 시도하지 않았으므로 포인터를 제공하지 않습니다.

스왑 파일로 최대 절전 모드를 사용하고 싶습니다.

  1. 충분한 공간이 있는지 확인하십시오. 우분투 스왑 FAQ 는 필요한 양을 알려주며, 위의 명령도 필요합니다. 여기에 더 많은 정보가 필요하면 긴 주제이므로 다른 질문을하십시오.
  2. 스왑 파일을 늘리거나 충분한 크기의 새 파일을 만들고 (바람직하게는 @muru에 동의 ) /etc/fstab새 파일로 변경하십시오 . 변경 사항이 제대로 표시되는지 다시 부팅하십시오 (저장소의 백업 백업을 수행하는 fstab경우를 대비하여 쉽게 되돌릴 수 있습니다).
  3. 적절한 매개 변수를 사용하여 커널을 가리켜 다시 시작할 위치를 알 수 있습니다.
  4. 부트 로더를 업데이트 / 재구성하고 재부팅하십시오.

커널 매개 변수? 무서운!

신중하게 읽고 원하는지 결정하지만 커널을 구성하는 방법 일뿐입니다. 을 통해 최대 절전 모드로 쉽게 할 수 systemduswsusp(참조 인터페이스 아래). 나처럼-당신은 궁극적으로 RAM 일시 중단이 충분하고 스왑 파일에 32GB를 갖고 싶지 않다고 결정할 수 있습니다 (예 : 랩톱에 하나의 SSD가있는 사람들에게는 그렇게 좋지 않습니다). 그러나!

  1. 스왑 파일을 최대 절전 모드로 전환하려면 스왑 파일이 resume=있는 파티션과 resume_offset=스왑 파일에서 재개를 시작할 위치를 알아야합니다.
  2. 최대 절전 모드는 파티션 resume=교체를 가리켜 야합니다.
  3. 검은 화면 문제를 해결하는 데 필요할 수 있습니다 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. 파일을 최대 절전 모드로 전환하려면 파일을 찾을 수있는 파티션을 제공하십시오.

독서:

  1. https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
  2. https://wiki.archlinux.org/index.php/Kernel_parameters

문제-스왑 헤더를 찾을 수 없습니다

스왑 파일을 올바르게 포맷해야합니다. 로그에서이를 알려면 파일을 최대 절전 모드로 전환하려고하거나 이력서 매개 변수가 올바르지 않습니다.

파티션으로 전환하거나 파일을 수정하거나 최대 절전 모드에 사용되는 인터페이스를 변경하십시오.

참조 : /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를 참조하십시오.

문제! BIOS에서 무언가에 의해 최대 절전 모드가 비활성화되었습니다!

테스트 : cat /sys/power/disk있습니다 disabled. 로그에 "로그인을 통한 시스템 최대 절전 모드 실패 : 절전 동사가 지원되지 않음"이 표시됩니다.

해결 방법 : BIOS를 검색하여 문제가있는 것을 찾으십시오. 전원을 끄십시오.

해결 방법 2 : 다른 최대 절전 인터페이스를 사용해보십시오.

16.04.1에서 최대 절전 모드를 활성화하는 방법을 참조하십시오. (시스템) .

인터페이스

  1. swsusp-저수준 커널 인터페이스. 전제 조건-파일의 커널을 참조하십시오. 파일에 직접 쓰면 일시 중단 (RAM, 디스크 및 하이브리드)이 발생할 수 있습니다. 파일로 동면하는 데 문제가있는 SwapFAQ에 따르면
  2. uswsusp- ArchWikiDebian Wiki멋진 AskUbuntu 질문을 작성하는 방법에 대한 질문이 있습니다 .
  3. systemd - 거기에 ArchWiki
  4. pm-utils-AFAIK는 원래 데비안 에서 만든 스크립트 모음입니다 . 더 많은 정보를 기꺼이 환영합니다.

맺음말

나에게 그것을 컴파일하는 것은 거의 이틀의 일이었다. 잘하면 이것이 당신과 다른 사람들이 당신의 문제를 더 빨리 해결하는 데 도움이되기를 바랍니다. 아직 놓친 포인트가 있지만 오전 2시이며 더 이상 글을 쓰고 싶지 않습니다. 나는 물론 이것을 개선하기 위해 다른 사람의 조언에 개방적이므로 의견을 말하십시오. 잠 자면 답장을 보내겠습니다. :-)

디스크에 동면하는 것이 그다지 확신하지는 않습니다. 나는 결국 자고 갔다. 그러나 문제는 일반적으로 스왑을 피하기 때문에 최대 절전 모드를 수행 할 수 있도록 32GB 파일을 갖는 것입니다. 초기 스왑 파일은 2GB였으며 대부분 비어있었습니다. YMMV. 그럼에도 불구하고 행운을 빕니다! 그리고 로그부터 시작하십시오!


좋은 답변입니다! 그러나 결국 내 사건을 해결 한 것은 연결된 스왑 FAQ 였고 grub 구성 파일의 변수 및 / 또는 initramfs-tools와 비슷한 sth에 "resume = UUID"를 추가하라는 메시지가 표시되었습니다. 어떤 이유로 나는 잘못된 UUID를 가지고 있었을 것입니다. 따라서 비슷한 문제가있는 사람이 먼저 "스왑 파티션을 추가 또는 수정하는 방법"아래의 스왑 FAQ에 기록 된 내용과 최대 절전 모드에 대한 세 번째 사항을 확인하는 것이 좋습니다.
RimaNari

1
"디스크-디스크 일시 중단 (STD), 최대 절전 모드. 원하는-" 내가 이것에서 쫓겨 난 유일한 사람입니까? 감사합니다.
spakmad

좋은 답변입니다! 하나의 작은 설명 : 내 컴퓨터 중 하나에서 두 번째 부팅 시도 후에 만 ​​최대 절전 모드가 작동 한 후 다시 시작합니다 (첫 번째 시도에서 모니터에 아무것도 표시되지 않음). HWE-stack 설치를 고칠 수 있습니다 : $ sudo apt install linux-generic-hwe-18.04(일부 하드웨어의 경우 linux-generic-hwe-18.04-edge총 가치가있을 수 있습니다).
히로 주인공

1
아 나는 동면하지 않을 것이다! 512Gb의 RAM이 있습니다. 잘 ... (10Tb HDD에 충분한 공간이 있지만 재부팅하는 데 몇 시간이 걸립니다!)
Alexis Wilke

9

재시작 매개 변수에 대신의 설치 점의 스왑 파티션의 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없이) 사용 하여 작동하는지 확인하십시오


잘 작동합니다! 고마워
Yossarian42

고마워요, 당신은 저를 구했습니다!
Vahe Shadunts

1

나에게 그것은 항상 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

여러 번의 시도 끝에 이것이 효과가 있었던 것은 아마도 커널을 망친 커널 업데이트 때문일 것입니다.


0

이것이 누군가를 도울 수 있기를 바랍니다. 그러나 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

이력서가 없거나 잘못된 경우 부팅 커널을 다시 업데이트해야합니다.


0

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작동하지 않는 것입니다. 그렇지 않으면 정상적으로 작동한다는 의미입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.