How do I hibernate in Ubuntu 20.04?
Solution 1:
To enable Hibernation in 20.04 using Swapfile:
Increase swapfile
size to match RAM size up to 8GB.
-
Check the swap that is in use:
sudo swapon -s
-
If swap partition(s) are found:
sudo swapoff -a sudo nano -Bw /etc/fstab
-
Add
#
before theUUID
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
swapfile
:sudo fallocate -l XG /swapfile*
where
X
isswapfile
's 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.
Note that 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 swap file 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.