Linux – Hibernation not working on Linux Mint 19

hibernatelinux-mint

I'm currently on Linux Mint 19.1 and it uses swap file by default instead of swap partition. Everything including suspend works fine. But resume after hibernation is not working. I have following configuration in my /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=38c97b08-a1d5-44b5-9e96-afca13595fe2 resume_offset=27854848"

where UUID is the root partition where swap file belongs and resume_offset is the offset of the swap file. System successfully hibernates. But on the next boot, it shows resuming from the UUID location and suddenly screen goes blank( see this ). There is no response from the system after that. I have gone through the following threads and nothing seems to work.

Complete system details can be found here

I have secure boot disabled and currently on kernel 4.18. Does anyone have success with hibernation using swap file or any idea on why hibernation not working?

Best Answer

Linux Mint 19 does not support hibernation out of the box as per a Guide article in the Mint Forums.

The standard hibernation configuration will fail if your swap file is not in /swapfile or if you do not have a swap partition. A RedHat article provides some additional guidance on swap sizing.

If there is not enough room in the swap file or partition for the contents of your RAM plus whatever else you may have swapped out already, hibernation will fail, since the kernel writes a hibernation image of a size up to 2/5 the size of your RAM. As a rule of thumb, simply set up your swap file to at least the size of your RAM, or even double your RAM on systems with very low total RAM (since you are more likely to swap).

Please run this in a terminal window: free -h then swapon to confirm the swap file is large enough. If it is not large enough, expand the swap file. If it is, please proceed with:

RESUME_PARAMS="resume=UUID=$(findmnt / -o UUID -n) resume_offset=$(sudo filefrag -v /swapfile|awk 'NR==4{gsub(/\./,"");print $4;}') "  

if grep resume /etc/default/grub>/dev/null; then echo -e "\nERROR: Hibernation already configured. Remove the existing configuration from /etc/default/grub and add these parameters instead:\n$RESUME_PARAMS";else sudo sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$RESUME_PARAMS/" /etc/default/grub;fi   

Unless there is an error message, then do sudo update-grub; if there are error messages, follow their instructions before performing sudo update-grub.

Lastly, add Hibernation to the GRUB2 menu with

sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla <<'EOB' [Enable hibernate] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions ResultActive=yes EOB

Related Question