Рекомендации по выбору размера файла (или дискового раздела) подкачки, достаточного для успешного сохранения образа памяти различаются: в Интернете встречаются значения от половины раздела оперативной памяти до двукратного размера оперативной памяти. При этом в файле /etc/power/image_size хранится значение размера, в который ядро пытается уместить сохраняемый образ памяти. По умолчанию это значение равно 2/5 размера оперативной памяти, но может быть изменено администратором системы даже до нуля, и, как указано в документации (https://www.kernel.org/doc/Documentation/power/interface.txt), ядро не будет отказываться уходить в спящий режим, а будет пытаться уместить образ в указанный размер.
Вероятно, реальный минимальный размер области хранения, необходимый для гарантированного успешного восстановления после гибернации, зависит от конфигурации системы, но можно утверждать, что если полностью отключить подкачку в системе, то гарантированно достаточным размером будет размер оперативной памяти. Если подкачку не отключать, то достаточным размером можно считать двукратный размер оперативной памяти.
См. также: Область подкачки (swap): особенности применения и обеспечения безопасности.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
- Astra Linux Special Edition РУСБ.10015-17
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1
- Astra Linux Common Edition 2.12
По необходимости полностью отключить подкачку:
sudo sysctl -w vm.swappiness=1
echo vm.swappiness=1 | sudo tee -a /etc/sysctl.d/local.confСоздать на дисковом разделе, на котором размещена корневая файловая система, файл достаточного размера, например, с именем /swap и размером 16Гигабайт:
sudo fallocate -l 16g /swapОграничить права доступа к созданному файлу:
sudo chmod 600 /swapРазметить в созданном файле файловую систему подкачки:
sudo mkswap /swapДобавить в файл /etc/fstab запись для автоматического включения подкачки в созданный файл при перезагрузке ОС:
echo "/swap swap swap defaults 0 0" | sudo tee -a /etc/fstabВключить использование созданного файла для подкачки:
sudo swapon /swapУбедиться, что подкачка включена:
sudo swaponпример вывода команды:NAME TYPE SIZE USED PRIO /dev/vda5 partition 975M 0B -2 /swap file 16G 0B -3
Отключить использование для подкачки дискового раздела (в примере выше - дисковый раздел /dev/vda5) (необязательный шаг):
sudo swapoff /dev/vda5Определить идентификатор (UUID) дискового раздела, на котором размещен созданный файл:
sudo findmnt -no UUID -T /swapВ результате выполнения команды будет выдана строка с идентификатором вида:
880d582e-5797-4d06-9e33-71da00a7aca2Определить смещение файла
sudo filefrag -v /swap | grep "^\s*0:"В результате выполнения команды будет выдана информация вида:0: 0.. 0: 7176192.. 7176192: 1:
где нужное смещение находится в четвертом числе (в данном случае - 7176192);
В файл /etc/initramfs-tools/conf.d/resume внести запись с параметрами восстановления (ранее полученные UUID как значение параметра RESUME и смещение как значение параметра resume_offset). Если такого файла нет - то создать его:
RESUME=UUID=880d582e-5797-4d06-9e33-71da00a7aca2 resume_offset=7176192
Команда для сборки нужной строки параметров:
echo "UUID=`sudo findmnt -no UUID -T /swap` resume_offset=`sudo filefrag -v /swap | grep "^\s*0:" | xargs | cut -d " " -f 4 | cut -d . -f 1`"В файл /etc/default/grub добавить аналогичные параметры восстановления в параметр GRUB_CMDLINE_LINUX_DEFAULT, например:
GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 resume=UUID=880d582e-5797-4d06-9e33-71da00a7aca2 resume_offset=7176192"
Обновить параметры загрузчика grub и файловую систему ramfs:
sudo update-grub
sudo update-initramfs -u -k allЕсли далее не планируется использовать дисковый раздел подкачки, то удалить из файла /etc/fstab запись о нем. Должна быть удалена строка вида:
UUID=af75b52e-22ab-4429-9de1-8ac700187ba2 none swap sw 0 0
- Перезагрузить систему;
Убедиться, что подкачка выполняется в созданный файл /swap:
sudo swapon- Для проверки работоспособности сделанных настроек выполнить гибернацию и выход из гибернации.
4 Comments
Александр Левдонский
Дмитрий Анохов
Дмитрий, предлагаю проверить и опубликовать эту статью, чтобы не заставлять клиентов менять размер дисковых разделов на живых системах.
SIRIUS-21926 - Getting issue details... STATUS
Дмитрий Анохов
Владислав Кунакбаев Прошу проверить
Александр Левдонский
Владислав Кунакбаев Дмитрий Анохов
Коллеги, проверили?
Владислав Кунакбаев
Александр Левдонский потерял уведомление среди писем. Поставил задачу со сроком исполнения 19.08.
SUP-10007 - Getting issue details... STATUS