
Ubuntu 18.04에서 "일시 중단" 기능이 올바르게 작동하지 않습니다. 그러나 최대 절전 모드 기능은 예상대로 작동합니다.
문제 설명: 전원 메뉴 또는 "sudo systemctl suspend"에서 일시 중지를 사용할 때 동작은 다음과 같습니다.
- 기기가 절전 모드로 전환되고 전원 버튼 LED가 천천히 깜박입니다(숨소리).
- 노트북을 다시 시작하면 OS가 시작되고 평소 로그인 화면이 보이지만 실행 중이던 애플리케이션이 하나도 복원되지 않습니다.
지금까지 내가 한 일:
$ sudo apt-get install uswsusp
$ sudo update-initramfs -u
$ sudo systemctl edit systemd-suspend.service
systemd-suspens.service에 다음 줄을 붙여넣었습니다.
[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2ram
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep
- 파일을 저장했습니다. /etc/systemd/system/에 저장됩니다.
달리다:
$ sudo systemctl 데몬-다시 로드
테스트해보세요:
$ sudo systemctl 일시 중지
결과는 위에 설명된 대로 노트북이 절전 모드로 전환되지만 다시 시작해도 저장된 세션이 복원되지 않습니다.
systemd-suspens.service 스크립트가 호출되고 있다는 것을 알고 있습니다. ExecStart=/usr/sbin/s2ram 행을 ExecStart=/usr/sbin/s2disk로 변경하면 랩탑은 최대 절전 모드로 전환되어 세션을 복원합니다.
추가 정보:
Hibernate를 작동시키기 위해 나는 grub을 변경했습니다:
sudoedit /etc/default/grub
이 줄을 변경했습니다 :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
to:
GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=UUID=<string of hex> resume_offset=34816"
그런 다음 실행했습니다.
$ sudo 업데이트-그럽
커널 정보:
lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
uname -a
Linux <machinename> 4.18.0-21-generic #22~18.04.1-Ubuntu SMP Thu May 16 15:07:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
sudo s2ram -K
This kernel has KMS support.
누락된 단계나 구성 항목이 있습니까?
답변1
답을 많이 검색하고 테이블에 머리를 부딪힌 후 다양한 소스에서 얻은 정보의 조각과 조각을 함께 엮어 스스로 해결책에 도달했습니다. 이 솔루션은 Ubuntu 18.04를 실행하는 Sony Vaio 모델 VPCEB15FM에서 작동하며 마일리지가 다를 수 있습니다.
최대 절전 모드/일시 중지가 올바르게 작동하도록 하는 데 따른 문제 중 하나는 Ubuntu가 /dev/sda2, /dev/sdb2 등을 로드하고 할당하는 방식이었습니다. 드라이브 할당 순서가 부팅마다 변경되는 경우가 있기 때문입니다. 따라서 첫 번째 단계는 스왑 파티션의 UUID를 식별하는 것입니다. UUID는 일정하기 때문에 훨씬 더 안정적인 마운트 지점이 됩니다.
UUID는 다음에서 얻을 수 있습니다.
sudo blkid
"swap"이라는 항목을 찾으세요.
/dev/sda2: UUID="5c555600-2e37-477d-62df-6013d61dc36" TYPE="swap" PARTUUID="2f501554-02"
귀하의 UUID는 내 UUID와 다를 것입니다. 내 것을 사용하지 말고 당신의 것을 사용하십시오.
스왑 파티션 대신 스왑 파일을 사용하는 경우 기본 Linux 파티션의 UUID를 사용하고 스왑 파일에 대한 오프셋도 알아야 합니다.
스왑 파일에 대한 오프셋을 얻으려면:
sudo filefrag -v /swapfile
출력은 다음과 유사합니다.
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
찾고 있는 오프셋은 첫 번째 "physical_offset"이며, 이 경우 34816입니다.
이제 시작하는 데 필요한 정보를 얻었습니다.
/etc/default/grub 수정
sudoedit /etc/default/grub
줄을 변경하십시오 :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
스왑 파티션을 사용하여 다음을 수행하는 경우:
GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=UUID=5c555600-2e37-477d-62df-6013d61dc36"
스왑 파일을 사용하여 다음을 수행하는 경우:
GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=UUID=5c555600-2e37-477d-62df-6013d61dc36 resume_offset=34816"
uswsusp를 설치합니다.
그러면 s2disk, s2ram 및 s2두 가지 방법이 모두 설치됩니다.
sudo apt-get install uswsusp
systemd-hibernate.service 및 systemd-suspens.service를 설정합니다.
이러한 파일은 /etc/systemd/system/에 있거나 아직 존재하지 않는 경우 해당 파일에 생성됩니다.
sudo systemctl edit systemd-hibernate.service
다음 줄을 붙여넣으세요.
[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /lib/systemd/system-sleep
참고: 내 시스템에는 /lib/systemd/system-sleep 경로가 있고 다른 시스템에는 /usr/lib/systemd/system-sleep과 같은 다른 위치가 있을 수 있습니다.
sudo systemctl edit systemd-suspend.service
다음 줄을 붙여넣으세요.
[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /lib/systemd/system-sleep
ExecStart=/usr/sbin/s2both
ExecStartPost=-/bin/run-parts -v --reverse -a post /lib/systemd/system-sleep
"일시 중지" 구성에서는 s2ram 대신 s2both를 사용하십시오. s2ram은 내 시스템에서 작동하지 않았지만 s2both는 항상 작동합니다.
우분투 18.04 및 20.04:
/etc/uswsusp.conf를 편집합니다.
UUID를 사용하고 스왑 파일을 사용하는 경우 오프셋:
sudo nano /etc/uswsusp.conf
UUID 등을 사용하도록 수정하세요.
# /etc/uswsusp.conf(5) -- Configuration file for s2disk/s2both
resume device = UUID=5c555600-2e37-477d-62df-6013d61dc36
compress = y
# early writeout = y
# image size = 1741570539
# RSA key file = /etc/uswsusp.key
shutdown method = platform
# only needed if using a swapfile
# resume offset = 34816
참고: 모든 매개변수를 완벽하게 설명하는 uswsusp.conf 매뉴얼 페이지가 있습니다. 다른 설정도 많이 있는데 이것이 최소한으로 필요한 설정입니다. 다른 옵션 중 일부를 볼 수 있도록 주석 처리된 줄이 남아 있습니다.
우분투 22.04:
/etc/suspens.conf를 편집합니다.
2022년 9월 16일 /etc/uswsusp.conf 파일이 /etc/susp.conf로 대체되었습니다.
보다:https://wiki.archlinux.org/title/Uswsusp
sudo nano /etc/suspend.conf
오직 "재개 장치" 줄이 위 지침에서 변경되었으나 다른 모든 내용은 동일하게 유지될 수 있습니다.
대신 다음 줄을 사용하세요.
resume device = /dev/disk/by-label/swap
/etc/initramfs-tools/conf.d/resume 편집
sudo nano /etc/initramfs-tools/conf.d/resume
다음 줄을 추가하세요: RESUME=UUID=5c555600-2e37-477d-62df-6013d61dc3
참고: 스왑 파일을 사용하는 경우 오프셋을 추가해야 합니다. 추가: 재개 오프셋 = UUID 뒤의 34816
좋아, 다양한 구성 항목을 처리해야 합니다.
grub 및 initramfs를 업데이트합니다.
sudo update-grub
sudo update-initramfs -u or update-initramfs -u -k all to do all kernels
우분투를 다시 시작하십시오.
재부팅 후 최대 절전 모드 및 일시 중지 기능을 테스트합니다. Hibernate는 이력서 파일을 스왑에 쓰고 머신을 종료하는 데 몇 분이 걸릴 수 있습니다. 당황하지 말 것. 일시 중지가 조금 더 빠릅니다.
모두 테스트해 보세요!
sudo systemctl hibernate
sudo systemctl suspend
당신이 봐야 할 것:
- 최대 절전 모드 - 시스템을 완전히 종료하며 몇 분 정도 걸립니다. 컴퓨터를 다시 시작한 후 응용 프로그램에 다시 로그인해야 합니다. 참고: 재개 프로세스는 몇 분 정도 걸릴 수 있으며 재개가 진행되는 동안 시스템이 정지된 것처럼 보일 수 있습니다. 인내심을 가지십시오.
- 일시 중지 - 시스템이 "절전" 모드로 전환되고 전원 표시등이 천천히 깜박입니다(숨소리). 주 전원 버튼을 누르면 기기의 절전 모드가 해제됩니다. 로그인 화면이 표시되고 애플리케이션이 재개되어야 합니다.
추가 단계:
전원 메뉴 드롭다운에서 절전/일시 중지 모드로 들어갈 수 있어야 합니다. 드롭다운을 열 때 Alt 키를 누릅니다. 전원 아이콘이 절전 아이콘으로 변경되어야 합니다.
최대 절전 모드 메뉴 옵션도 추가할 수 있습니다. "ubuntu add hibernate power menu"를 검색하면 이에 대한 좋은 튜토리얼이 이미 있습니다.