Povolení hibernace na Linuxu
Ubuntu 24.04
Jako u #Ubuntu 22.04 a dále:
- Pro zobrazení menu hibernace vložit text do souboru:
sudo mcedit /etc/polkit-1/rules.d/10-enable-hibernate.rules
polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.login1.hibernate" || action.id == "org.freedesktop.login1.hibernate-multiple-sessions" || action.id == "org.freedesktop.upower.hibernate" || action.id == "org.freedesktop.login1.handle-hibernate-key" || action.id == "org.freedesktop.login1.hibernate-ignore-inhibit") { return polkit.Result.YES; } });
Ubuntu 22.04
Povolení hibernace 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
- Get 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=34816 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:
- From power off menu
- From command line:
sudo systemctl hibernate
- From command line:
sudo pm-hibernate
Troubleshooting
Check why systemctl hibernate doesn't work:
systemctl status systemd-hibernate.service