Информация |
---|
Рекомендации по выбору размера файла (или дискового раздела) подкачки, достаточного для успешного сохранения образа памяти различаются: в Интернете встречаются значения от половины раздела оперативной памяти до двукратного размера оперативной памяти. При этом в файле /etc/power/image_size хранится значение размера, в который ядро пытается уместить сохраняемый образ памяти. По умолчанию это значение равно 2/5 размера оперативной памяти, но может быть изменено администратором системы даже до нуля, и, как указано в документации (https://www.kernel.org/doc/Documentation/power/interface.txt), ядро не будет отказываться уходить в спящий режим, а будет пытаться уместить образ в указанный размер. Вероятно, реальный минимальный размер области хранения, необходимый для гарантированного успешного восстановления после гибернации, зависит от конфигурации системы, но можно утверждать, что если полностью отключить подкачку в системе, то гарантированно достаточным размером будет размер оперативной памяти. Если подкачку не отключать, то гарантированно достаточным размером будет можно считать двукратный размер оперативной памяти. |
Информация | ||
---|---|---|
| ||
|
По необходимости полностью отключить подкачку:
Command sudo sysctl -w vm.swappiness=1
echo vm.swappiness=1 | sudo tee -a /etc/sysctl.d/local.confСоздать на дисковом разделе, на котором размещена корневая файловая система, файл достаточного размера, например, с именем /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 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:" В результате выполнения команды будет выдана информация вида:
Блок кода 0: 0.. 0: 7176192.. 7176192: 1:
Информация 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где нужное смещение находится в первой строке с числами (выделено жирным шрифтом).четвертом числе (в данном случае - 7176192);
В файл /etc/initramfs-tools/conf.d/resume внести запись с параметрами восстановления (ранее полученные UUID как значение параметра RESUME и смещение как значение параметра resume_offset). Если такого файла нет - то создать его:
Информацияcode RESUME=UUID=880d582e-5797-4d06-9e33-71da00a7aca2 resume_offset=
389127176192
Команда для сборки нужной строки параметров:
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, например:
…
38912Блок кода GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 resume=UUID=880d582e-5797-4d06-9e33-71da00a7aca2 resume_offset=
7176192"
...Обновить ramfs и grubпараметры загрузчика grub и файловую систему ramfs:
Command sudo update-grub
sudo update-initramfs -u -k allЕсли далее не планируется использовать дисковый раздел подкачки, то удалить из файла /etc/fstab запись о нем. Должна быть удалена строка вида:
Блок кода UUID=af75b52e-22ab-4429-9de1-8ac700187ba2 none swap sw 0 0
- Перезагрузить систему;
Убедиться, что подкачка выполняется в файл:
Command sudo swapon - Для проверки работоспособности сделанных настроек выполнить гибернацию и выход из гибернации.