Povolení hibernace na Linuxu
Povolení hibernace pro Ubuntu 22.04 se swap souborem:
- Make your /swapfile have at least the size of your RAM
sudo swapoff /swapfile sudo dd if=/dev/zero of=/swapfile bs=$(cat /proc/meminfo | grep MemTotal | grep -oh '[0-9]*') count=1024 conv=notrunc sudo mkswap /swapfile sudo swapon /swapfile
Note the UUID of the partition containing your /swapfile:
$ sudo findmnt -no SOURCE,UUID -T /swapfile /dev/nvme0n1p5 20562a02-cfa6-42e0-bb9f-5e936ea763d0
- Edit the SystemD hibernate service using sudo systemctl edit systemd-hibernate.service and fill it with the following content:
[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
- Note the resume offset of your /swapfile:
- Run sudo filefrag -v /swapfile
- In the "physical_offset" column, copy the first row number (without dots). Value example: 34816.
- Configure Grub to resume from the swapfile by editing /etc/default/grub and modify the following line:
GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=20562a02-cfa6-42e0-bb9f-5e936ea763d0 resume_offset=34818 quiet splash"
- Update Grub:
sudo update-grub
- Create the following /etc/initramfs-tools/conf.d/resume:
RESUME=UUID=20562a02-cfa6-42e0-bb9e-5e936ea763d0 resume_offset=34816 # Resume from /swapfile
- Update initramfs:
sudo update-initramfs -u -k all
- K povolení volby hibernace v menu upravte soubor:
sudo mcedit /var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Přidat následující obsah:
[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 ResultActive=yes
Now you can hibernate with:
sudo systemctl hibernate.