Подробный гайд: Гибернация в Astra Linux — питание не отключается

Решение проблемы гибернации в Astra Linux когда не отключается питание. Настройка systemd, swap, GRUB, диагностика и устранение ошибок гибернации.

2026.04.30                  


Подробный гайд: Гибернация в Astra Linux — питание не отключаетсяПодробный гайд: Гибернация в 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)

  1. Пуск -> Панель управления -> Электропитание
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

Это поможет точнее диагностировать причину.