Режим гибернации на Ubuntu 24 со swap-файлом
У тебя Linux и постоянно отвлекают от работы? 😤
Вечный выбор - выключить систему или оставить? 😅
А если сядет батарея? 😳
grep disk /sys/power/state
Файл содержит значение disk, значит ваш система поддерживает режим гибернацию.
Для правильной работы гибернации необходим достаточный объем пространства в файле подкачки (swap). Рекомендуется иметь размер подкачки равный объему оперативной памяти + 2 Гб или больше.
swapon --show
Если раздел подкачки отсутствует или недостаточно велик, удалите его и создайте новый swap-файл нужного размера
sudo fallocate -l 10G /.swap.img
sudo chmod 600 /.swap.img
sudo mkswap /.swap.img
sudo swapon /.swap.img
echo '/.swap.img none swap sw 0 0' >> /etc/fstab
lsblk -f | grep '/$' | awk '{print $4}'; sudo filefrag -v /.swap.img | grep ' 0:' | awk '{print $5}' | sed 's/.$//'
bd574196-996a-4c31-8044-e83262cc7c40 # UUID
2199552 # resume_offset
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=bd574196-996a-4c31-8044-e83262cc7c40 resume_offset=2199552"
Значения UUID и resume_offset подставить свои
nano /etc/initramfs-tools/conf.d/resume
RESUME=UUID=bd574196-996a-4c31-8044-e83262cc7c40 resume_offset=2199552
Значения UUID и resume_offset подставить свои
update-grub && update-grub2 && update-initramfs -u -k all
reboot
Обязательно проверь и отключи secure boot ⚠️
sudo systemctl hibernate
nano /etc/polkit-1/rules.d/10-enable-hibernate.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.upower.hibernate" ||
action.id == "org.freedesktop.login1.handle-hibernate-key" ||
action.id == "org.freedesktop.login1.hibernate-ignore-inhibit")
{
return polkit.Result.YES;
}
});
nano /etc/systemd/logind.conf
HandleLidSwitch=hibernate
HandleLidSwitchExternalPower=suspend
nano /etc/UPower/UPower.conf
CriticalPowerAction=Hibernate