Update for 16.04 (September, 2016)
Hibernate might not work not even it is successfully enabled if you have btrfs
partitions. As revealed in a question here
It was also revealed that enabling UEFI can cause problem with hibernation too.
Enable the Hibernate option
To enable Hibernate, I followed this answer from Dima.
After enabling hibernate you will have an option to hibernate in the indicator session menu at top panel. But, though you can hibernate you may not resume from hibernate. You will just be given a new session. The fixes are below.
The fixes to be able to resume from hibernate (12.04)
Several readers confirmed this working on 14.04 too
There is two way to fix this.
1. Editing the /etc/initramfs-tools/conf.d/resume
file
First get the UUID of the swap partition.
sudo blkid | grep swap
This will output a line similar to this:
/dev/sda12: UUID="a14f3380-810e-49a7-b42e-72169e66c432" TYPE="swap"
The actually line will not match with this. Copy the value of UUID in between "..."
double quote.
Open the resume file
gksudo gedit /etc/initramfs-tools/conf.d/resume
And in that file, add a line like this
RESUME=UUID=a14f3380-810e-49a7-b42e-72169e66c432
Don't forget to replace the actual UUID value you get from step 1. Save the file and exit gedit
Then in terminal, execute this command
sudo update-initramfs -u
You will now be able to resume from hibernation
2. Editing the /etc/default/grub
file.
Open a terminal and execute the below command to open it
gksudo gedit /etc/default/grub
There will be a line like GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
. Edit the line to insert RESUME=UUID=<your-uuid-value-here>
after the word splash
.
For example in my case, the line looks like this after editing
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a14f3380-810e-49a7-b42e-72169e66c432"
Make sure, you used your UUID value you get from sudo blkid | grep swap
command.
Then do this command
sudo update-grub
This also enable you to successfully get resumed from hibernate.
Tested on two Ubuntu installation, both worked