Povolení hibernace na Linuxu

Z ZděchovNET
Skočit na navigaci Skočit na vyhledávání

Povolení hibernace pro Ubuntu 18.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
  • Reconfigure the package uswsusp in order to correctly use the swapfile:
   sudo apt install uswsusp
   sudo dpkg-reconfigure -pmedium uswsusp
   # Answer "Yes" to continue without swap space
   # Select "/dev/disk/by-uuid/20562a02-cfa6-42e0-bb9f-5e936ea763d0" replace the UUID with the result from the previous findmnt command
   # Encrypt: "No"
  • Edit the SystemD hibernate service using sudo systemctl edit systemd-hibernate.service and fill it with the following content:
   ExecStartPre=-/bin/run-parts -v -a pre /lib/systemd/system-sleep
   ExecStartPost=-/bin/run-parts -v --reverse -a post /lib/systemd/system-sleep
  • Note the resume offset of your /swapfile:
   $ sudo swap-offset /swapfile
   resume offset = 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]
[Re-enable hibernate by default in logind]

Now you can hibernate with:

sudo systemctl hibernate.

Původní návod na stackoverflow