Подробный гайд: Гибернация в Astra Linux — питание не отключается
Проблема
После выполнения гибернации система сохраняет состояние на диск, но не отключает питание — компьютер остаётся включённым или переходит в обычный сон вместо полного выключения.
Предварительные проверки
1. Проверка поддержки гибернации ядром
cat /sys/power/state
# Должно содержать: freeze mem disk
cat /sys/power/disk
# Должно содержать: [platform] shutdown reboot
2. Диагностика через journalctl
sudo journalctl -u systemd-hibernate.service -b -1
sudo journalctl -u systemd-hibernate.service --since "1 hour ago"
Это покажет логи последней попытки гибернации.
3. Проверка swap-раздела/файла
swapon --show
free -h
Важно:
Для гибернации размер swap должен быть не меньше объёма используемой оперативной памяти.
Основные решения
Решение 1: Настройка HibernateMode в systemd (наиболее частое решение)
Создайте или отредактируйте файл /etc/systemd/sleep.conf:
[Sleep]
HibernateMode=shutdown
# Альтернативные варианты:
# HibernateMode=platform shutdown
# HibernateMode=reboot
Параметр
HibernateMode=shutdownзаставляет systemd явно выключать питание после сохранения образа памяти.
Примените изменения:
sudo systemctl daemon-reexec
Решение 2: Проверка и настройка swap для гибернации
Вариант А: С использованием swap-раздела
1. Убедитесь, что swap-раздел указан в /etc/fstab:
UUID=xxxx-xxxx-xxxx none swap sw 0 0
2. Добавьте параметр resume в GRUB:
# /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=xxxx-xxxx-xxxx"
3. Обновите конфигурацию:
sudo update-grub
sudo update-initramfs -u -k all
Вариант Б: С использованием swap-файла (без выделенного раздела)
Подробная инструкция доступна в официальной базе знаний Astra Linux:
# 1. Создать файл подкачки
sudo fallocate -l 16G /swap
sudo chmod 600 /swap
sudo mkswap /swap
# 2. Добавить в /etc/fstab
echo "/swap swap swap defaults 0 0" | sudo tee -a /etc/fstab
# 3. Получить UUID и offset
sudo findmnt -no UUID -T /swap
sudo filefrag -v /swap | grep "^ *0:"
# 4. Создать /etc/initramfs-tools/conf.d/resume
echo "RESUME=UUID=xxxx resume_offset=yyyy" | sudo tee /etc/initramfs-tools/conf.d/resume
# 5. Обновить GRUB и initramfs
sudo update-grub
sudo update-initramfs -u -k all
Решение 3: Отключение блокировок ядра (Secure Boot / Lockdown)
Если система загружена с включённым Secure Boot, гибернация может блокироваться:
# Проверить статус
cat /sys/kernel/security/lockdown
# Временное решение: отключить Secure Boot в BIOS/UEFI
# Или добавить параметр ядра в GRUB:
GRUB_CMDLINE_LINUX_DEFAULT="... lockdown=integrity"
Решение 4: Проверка драйверов и оборудования
Некоторые драйверы (особенно NVIDIA, WiFi) могут мешать корректной гибернации:
# Проверить загруженные модули
lsmod | grep -E 'nvidia|nouveau|iwlwifi'
# Временное отключение проблемных модулей перед гибернацией
# (добавить в /etc/systemd/system/systemd-hibernate.service.d/override.conf)
Тестирование гибернации
# 1. Сохраните важные данные!
# 2. Выполните гибернацию
sudo systemctl hibernate
# 3. Проверьте, отключилось ли питание
# 4. После включения система должна восстановить сессию
# Альтернативный тест с логами в реальном времени:
sudo journalctl -f -u systemd-hibernate.service &
sudo systemctl hibernate
Дополнительные настройки электропитания в Astra Linux
Через графический интерфейс (Astra Linux Orel)
- Пуск -> Панель управления -> Электропитание
2. Во вкладке «Энергосбережение» настройте:
- Время до отключения монитора
- Время до перехода в сон/гибернацию
- Действие кнопки питания
Через конфигурационные файлы
/etc/systemd/logind.conf
[Login]
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=hibernate
/etc/laptop-mode/laptop-mode.conf
Для ноутбуков можно использовать laptop-mode-tools для тонкой настройки энергосбережения.
Частые ошибки и их устранение
| Ошибка | Причина | Решение |
|---|---|---|
Failed to write mode to /sys/power/disk: Invalid argument |
Неподдерживаемый режим гибернации | Использовать HibernateMode=shutdown |
Not enough free swap space |
Малый размер swap | Увеличить swap до >= объёма RAM |
Kernel is locked down |
Secure Boot / Lockdown | Отключить Secure Boot или добавить lockdown=integrity |
| Система «зависает» при гибернации | Конфликт драйверов | Обновить ядро/драйверы, проверить dmesg после сбоя |
Совет:
Перед массовым внедрением гибернации протестируйте настройку на одном устройстве, сохраните логи и создайте бэкап конфигурации. В корпоративной среде Astra Linux SE рекомендуется согласовать изменения с отделом информационной безопасности.
Если проблема сохраняется — предоставьте вывод команд в техническую поддержку разработчика:
sudo journalctl -u systemd-hibernate.service -b -1 --no-pager
cat /proc/cmdline
swapon --show
Это поможет точнее диагностировать причину.