Активация режима гибернации в openSUSE Tumbleweed |
[исправить] |
Имеется установленная openSUSE Tumbleweed с KDE, на разделах в качестве
файловой системы используется ext4. Чтобы иметь возможность использовать
гибернацию, необходимо иметь раздел подкачки или файл подкачки. Я предпочитаю
использовать файл подкачки, потому что в любое время можно легко изменить его
размер или вовсе его удалить, С разделом же придется повозится. Я буду
использовать файл подкачки. В случае с btrfs следует использовать раздел подкачки.
Итак, создаём файл подкачки. Чтобы он не мозолил глаза, я решил разместить его
в каталоге /var/lib/swap. Создаём каталог:
sudo mkdir -p /var/lib/swap
Закрываем к нему доступ всем, кроме root:
sudo chmod 700 /var/lib/swap
Чтобы выбрать оптимальный размер файла подкачки, я воспользовался таблицей.
Для себя я выбрал размер 11 Гб (11534336 байт). Создаем файл, который будет
использоваться как файл подкачки:
sudo dd if=/dev/zero of=/var/lib/swap/swapfile bs=1024 count=11534336
Закрываем к нему доступ всем, кроме root:
sudo chmod 600 /var/lib/swap/swapfile
Настраиваем файл подкачки:
sudo mkswap /var/lib/swap/swapfile
Активируем файл подкачки:
sudo swapon /var/lib/swap/swapfile
Уже после этих действий должен появится пункт перехода в режим гибернации, но
сама режим пока что работать не будет. Чтобы файл подкачки автоматически
монтировался во время загрузки, необходимо прописать его в
/etc/fstab. Не забываем делать резервные копии системных
файлов, которые планируем редактировать!:
/var/lib/swap/swapfile none swap defaults 0 0
Далее нам нужно указать в grub, откуда система должна загружать данные после
выхода из режима гибернации. Нам нужно узнать:
1. ID раздела, на котором находится файл подкачки
2. физическое смещение файла подкачки на этом разделе.
ID раздела мы можем найти в том же /etc/fstab. У меня этот ID равен f68ed3c5-da10-4288-890f-b83d8763e85e:
cat /etc/fstab
UUID=4e73657c-f1d2-4f52-9909-1226a6fe6493 / ext4 defaults 0 1
Смещение находим с помощью команды filefrag. Значением смещения
является левое верхнее число столбца physical_offset в двумя горизонтальными
точками (..) в конце. У меня это значение равно 337920:
sudo filefrag -v /var/lib/swap/swapfile
File size of /var/lib/swap/swapfile is 11811160064 (2883584 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 14335: 337920.. 352255: 14336:
1: 14336.. 20479: 378880.. 385023: 6144: 352256:
2: 20480.. 22527: 387072.. 389119: 2048: 385024:
...
Записываем полученные данные в файл /etc/default/grub. Находим
параметр GRUB_CMDLINE_LINUX_DEFAULT и добавляем к нему запись вида
resume=UUID=<UUID> resume_offset=<offset>. У меня это выглядит так:
GRUB_CMDLINE_LINUX_DEFAULT="splash=silent mitigations=auto quiet resume=UUID=4e73657c-f1d2-4f52-9909-1226a6fe6493 resume_offset=337920"
Далее необходимо обновить файл конфигурации grub:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
или для EFI:
sudo grub2-mkconfig -o /boot/efi/EFI/opensuse/grub.cfg
И последнее, что нам нужно сделать - пересобрать initramfs с поддержкой модуля
resume. Для этого создаём файл /etc/dracut.conf.d/99-resume.conf с
таким содержимым:
add_dracutmodules+=resume
И, собственно, пересобираем initramfs:
sudo dracut -fv
Перезагружаемся и проверяем работу режима гибернации.
|
|
|
|
Раздел: Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux |
1.2, RZ (??), 21:30, 13/04/2021 [ответить]
| +/– |
Спасибо огромное за статью! Все заработало!!!
| |
1.4, P (?), 16:04, 21/04/2021 [ответить]
| +/– |
Я в suse не копенгаген...
А там что, при установке нельзя создать хоть файл, хоть раздел?
| |
1.5, Аноним (5), 01:04, 26/04/2021 [ответить]
| +/– |
openSUSE расстраивает, во многих дистрибутивах это всё из коробки работает, если свопа хватает. Даже если его меньше чем размер оперативки, то гибернация всё равно будет работать если на момент ухода в неё используемой памяти меньше чем есть свопа (т.е. если своп 4, а занято 3 из 8 ГБ рамки, то всё заработает, а если будет занято больше 4, то система откажется уходить в гибернацию).
| |
|