Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

When I upgraded from 11.10 to 12.04 my Ubuntu power menu has lost the ability to hibernate. Is there a way to add that back in, or is this default for 12.04?

share|improve this question
add comment

6 Answers

up vote 13 down vote accepted

Hibernation is disabled by default in Ubuntu 12.04. A rationale of this decision can be found in this bug report.

See this question to reenable it:

share|improve this answer
    
Thank god that it's gone. –  user6658 Mar 22 '12 at 12:51
    
@Chauncellor Why? Presumably as some users see and option and expect it to work, so better to make them go through a safety rpocedure? –  YatharthROCK Oct 27 '12 at 13:19
    
I'm speaking about the option being removed. Take it all away entirely. Kill it with fire. It's badly supported, badly broken junk that has caused way way more pain to many users than it should. Just sleep the computer. –  user6658 Nov 29 '12 at 23:39
add comment

Unfortunately, hibernation has been disabled by default in Ubuntu 12.04, because it wasn't working correctly on many systems.

If you are not sure if hibernation works with your hardware, you can test it by sending the hibernate command from your Terminal

sudo pm-hibernate

Here's how to enable it anyway: (warning: only for advanced users — might not work)

In the Terminal, type:

sudo gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

Enter your password when requested.

Search for the section

[Disable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=no

and replace it with

[Re-enable hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

After the next restart, the option "Hibernate" will be back in the 'power menu' at the top right of your screen. If your hardware supports hibernation, it'll work now.

Note: In case you want to disable hibernation again, just revert the changes made above.

share|improve this answer
add comment

Jorge: there are several ways to hibernate a Linux computer. If Ubuntu's defaults fail, you can always try the other hibernation systems.

In a console:

sudo apt-get install hibernate

After that, reboot. That will install the uswsusp system, a reliable system with compression, that wasn't even installed with Precise.

The second system is TuxOnIce, but setting it up requires more technical skills.

After that, follow the Precise howto for enabling hibernation, posted before. It's sad to see that the packages needed to hibernate aren't even installed in a Precise default install. If you don't install "hibernate", if you try to run "sudo pm-hibernate", that command won't do anything (althogh on some systems it would perform a shutdown).

share|improve this answer
    
Saved my life. Spent too many hours re-sizing swap space and configuring grub/resume. This simply works (and is faster the pm-hibernate). Thanks. (asus-904hd user). –  PAntoine Sep 26 '12 at 9:09
add comment

It's not because of 12.04 but because you don't have a swap partition, or it is not marked as use for hibernate. I had a similar problem when I upgraded to 11.10.

Go to this webpage for help either adding a swap partition or making it ready to use swap. https://help.ubuntu.com/community/SwapFaq#How_do_I_add_more_swap.3F

Remember your swap must be bigger than your amount of physical memory if you want to hibernate!

share|improve this answer
add comment

Hibernate will only work if you dont have a crypted swap partition, which is the default if you choose to crypt your login directory during ubuntu 12.04 install.

share|improve this answer
    
Note: it is possible to use the advanced installer and setup something like cryptsetup on a partition, LVM on top and then e.g. root, home and swap as logical volumes. This allows for hibernate to work and everything is encrypted. –  blueyed Jun 2 '12 at 0:38
add comment

Try adding a script like


#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

case "${1}" in
        hibernate)
                if [ -e /dev/zram0 ]; then
                swapoff /dev/zram0
                fi
                ;;
        thaw)
                if [ -e /dev/zram0 ]; then
                swapon -p 100 /dev/zram0
                fi
                ;;
esac

to the /etc/pm/sleep.d diectory. This was need to get it working for me as guess what ? You can't hibernate to a ramdisk !!!

D.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.