I decided to give an Ubuntu based distro a try on my laptop and installed Linux Mint. I was surprised that hibernate doesn't just work by default in 2025. There are plenty of tutorials on how to enable it though, so I am assuming that you have already

  • Made your swap file or partition large enough to hold your RAM
  • Updated /etc/default/grub to add the resume and resume_offset options to the kernel command line
  • Tested as root or with sudo that systemctl hibernate works

I use XFCE and after doing the steps above I still couldn't choose hibernate as an option in the power settings or from the power menu, and running systemctl as my normal user gave the error Call to Hibernate failed: Access Denied. So, only root can hibernate by default.
To fix this you can create a polkit rules file:

/etc/polkit-1/rules.d/10-enable-suspend.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" ||
        action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
        action.id == "org.freedesktop.login1.hibernate" ||
        action.id == "org.freedesktop.login1.hibernate-multiple-sessions")
    {
        return polkit.Result.YES;
    }
});

Then restart the PC and you should have hibernate options available in your desktop environment power settings and on the power / log out menu.

xfcemenu

This was taken from the Arch Linux example to disable suspend but reversed to enable the actions instead.

You can also look at the options in /etc/systemd/sleep.conf to make sure your required sleep methods are enabled, and at /etc/systemd/logind.conf if you want logind to handle system sleep instead of your desktop environment.

Previous Post Next Post