How do you hibernate on Ubuntu 20.04?
I searched this online but all articles found are outdated. What should I do to enable hibernation in GNOME?
To enable Hibernation in 20.04:
Increase swapfile size to match RAM size up to 8GB.
-
Check the swap that is in use:
sudo swapon -s
-
If swap partition(s) found:
sudo swapoff -a
sudo nano -Bw /etc/fstab
-
Add "# " before the UUID of the swap partition(s):
# UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap sw 0 0
-
Add a line for the swapfile, if one does not exist:
swapfile none swap sw 0 0
-
Create the swap file:
sudo fallocate -l XG /swapfile
*
Where X is the swapfile size in GB
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile
-
Reboot:
sudo reboot
Add resume location and offset to grub.cfg:
- Edit /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"
-
Use UUID from root.
-
Use offset from
sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'
-
Update GRUB
sudo update-grub
-
Test hibernation
sudo systemctl hibernate
A hibernate button can be added using gnome extensions. https://extensions.gnome.org/extension/755/hibernate-status-button/
*There is a slight possibility of getting holes in a swapfile when creating it with fallocate. /var/log/syslog can be searched for the phrase swapon: swapfile has holes
to ensure there will be no data loss.
A swapfile can alternatively be created using dd: sudo dd if=/dev/zero of=/swapfile bs=1G count=8
An error when using dd may overwrite your HDD