Hibernation stops working after last upgrade

Hello everyone!
My system is not going into hibernation after the last upgrade.
Hibernation option disappeared on the gnome control panel power tab and getting these message running systemctl hibernate: “Call to Hibernate failed: Not running on EFI and resume= is not set. No available method to resume from hibernation”

Thank you for your help!

2 Likes

I assume the cause is the systemd upgrade to 255 from 2023-12-07. This seems to be a major update with quite a few new “features”.

Systemd news:

When the system hibernates, information about the device and offset
used is now written to a non-volatile EFI variable. On next boot the
system will attempt to resume from the location indicated in this EFI
variable. This should make hibernation a lot more robust, while
requiring no manual configuration of the resume location.

The ArchWiki states:

With systemd >= 255, it is no longer necessary to manually configure resume= kernel parameter when the system is running on EFI and a systemd-based initramfs is used.


Your error message clearly states you’re not running on EFI and resume= is not set. Maybe double check if your cmdline actually has a resume= entry.

As a quick workaround you could downgrade for now and wait until more dedicated people than us deliver solutions :wink:

Thank you for your reply! Yeah I figured out it was the systemd 255 update. Tried to downgrade, but it broke up everything so got to reboot into a previously saved snapshot :sweat_smile:

I assume the “resume=” parameter you’re talking about is on /etc/defaults/grub.
It’s already set and points to my swap partition.

Hibernation has stopped working on one of my three arch systems. I just can’t figure out why hibernation fails on just the one; I’ve set them up the same.

Hibernation isn’t crucial on this machine so I think I’ll just sit this one out and check the ArchWiki regularly. Please post if you happen to find a solution.

This is also broken for me. I am configured for resume to swapfile with resume= and resume_offset= in /etc/default/grub and the resume hook in dracut config.

My fellow humans, I have discovered the root cause and have a solution. The systemd changes require additional changes in dracut and those changes are not released yet. There is, however, a work around:

Be sure that your /etc/dracut.conf.d/resume.conf references systemd-hibernate-resume.service, like this. Link below.

add_dracutmodules+=" resume "
install_items+=" /usr/lib/systemd/system/systemd-hibernate-resume.service "

https://bbs.archlinux.org/viewtopic.php?id=290450

2 Likes

(Temporary) solution works for me! Thanks for sharing.

Works for me too! Thank you so much!

This solution did not work for me, not sure why. Some of the other comments mentioned grub. I’m using systemd-boot for my bootloader if that makes a difference.

When I run systemctl status systemd-hibernate-resume.service the results are:

○ systemd-hibernate-resume.service - Resume from hibernation
     Loaded: loaded (/usr/lib/systemd/system/systemd-hibernate-resume.service; static)
     Active: inactive (dead)
       Docs: man:systemd-hibernate-resume.service(8)
2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.