Информация |
---|
Рекомендации по выбору размера файла (или дискового раздела) подкачки, достаточного для успешного сохранения образа памяти различаются: в Интернете встречаются значения от половины раздела оперативной памяти до двукратного размера оперативной памяти. При этом в файле /etc/power/image_size хранится значение размера, в который ядро пытается уместить сохраняемый образ памяти. По |
умолчанию это значение равно 2/5 размера оперативной памяти, но может быть изменено администратором системы даже до нуля, и, как указано в документации (https://www.kernel.org/doc/Documentation/power/interface.txt), ядро не будет отказываться уходить в спящий режим, а будет пытаться уместить образ в указанный размер. Вероятно, реальный минимальный размер области хранения, необходимый для гарантированного успешного восстановления после гибернации, зависит от конфигурации системы, но можно утверждать, что если полностью отключить подкачку в системе, то гарантированно достаточным размером будет размер оперативной памяти. Если подкачку не отключать, то достаточным размером можно считать двукратный размер оперативной памяти. См. также: Область подкачки (swap): особенности применения и обеспечения безопасности. |
Информация | ||
---|---|---|
| ||
|
По необходимости полностью отключить подкачку:
Command sudo
sysctl -w vm.swappiness=1
echo vm.swappiness=1
| sudo tee -a /etc/sysctl.d/local.conf
exit
Создать на дисковом разделе, на котором размещена корневая файловая система, файл достаточного размера, например, с именем /swap
и размером 16Гигабайт
:
Command sudo
fallocate -l 16g /swap
Ограничить права доступа к созданному файлу:
Command sudo chmod 600 /swap
Разметить в созданном файле файловую систему подкачки:
Command sudo mkswap /swap
Добавить в файл /etc/fstab запись для автоматического включения подкачки в созданный файл при перезагрузке ОС:
Command echo "/swap swap swap defaults 0 0"
| sudo tee -a /etc/fstab
Включить использование созданного файла для подкачки:
Command sudo swapon /swap
Убедиться, что подкачка включена:
Command sudo swapon пример вывода команды:
Блок кода NAME TYPE SIZE USED PRIO /dev/vda5 partition 975M 0B -2 /swap
exit
file 16G 0B -3
Отключить использование для подкачки дискового раздела (в примере выше - дисковый раздел /dev/vda5) (необязательный шаг):
Command sudo swapoff /dev/vda5 Определить идентификатор (UUID) дискового раздела, на котором размещен созданный файл:
Command sudo findmnt -no UUID -T
/swap В результате выполнения команды будет выдана строка с идентификатором вида:
Информация 880d582e-5797-4d06-9e33-71da00a7aca2 Определить смещение файла
Command sudo filefrag -v /swap | grep "^\s*0:" В результате выполнения команды будет выдана информация вида:
Информация |
---|
Filesystem type is: ef53 File size of /swap is 4294967296 (1048576 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 0: 38912.. 38912: 1: 1: 1.. 22527: 38913.. 61439: 22527: unwritten 2: 22528.. 53247: 899072.. 929791: 30720: 61440: unwritten |
Блок кода 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
Команда для сборки нужной строки параметров:
Command 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:
Command sudo update-grub
sudo update-initramfs -u -k all
Рекомендации по выбору размера файла (или дискового раздела) подкачки, достаточного для успешного сохранения образа памяти различаются: в Интернете встречаются значения от половины раздела оперативной памяти до двукратного размера оперативной памяти. При этом в файле /etc/power/image_size хранится значение размера, в который ядро пытается уместить сохраняемый образ памяти. По умолчанию это значение равно 2/5 размера оперативной памяти, но может быть изменено администратором системы даже до нуля, и, как указано в документации (https://www.kernel.org/doc/Documentation/power/interface.txt), ядро не будет отказываться уходить в спящий режим, а будет пытаться уместить образ в указанный размер.
Вероятно, реальный минимальный размер области хранения, необходимый для гарантированного успешного восстановления после гибернации, зависит от конфигурации системы, но можно утверждать, что если полностью отключить подкачку в системе, то гарантированно достаточным размером будет размер оперативной памяти. Если подкачку не отключать, то гарантированно достаточным размером будет двукратный размер оперативной памятиЕсли далее не планируется использовать дисковый раздел подкачки, то удалить из файла /etc/fstab запись о нем. Должна быть удалена строка вида:
Блок кода UUID=af75b52e-22ab-4429-9de1-8ac700187ba2 none swap sw 0 0
- Перезагрузить систему;
Убедиться, что подкачка выполняется в созданный файл /swap:
Command sudo swapon - Для проверки работоспособности сделанных настроек выполнить гибернацию и выход из гибернации.