Имеется установленная openSUSE Tumbleweed с KDE, на разделах в качестве файловой системы используется ext4. Чтобы иметь возможность использовать гибернацию, необходимо иметь раздел подкачки или файл подкачки. Я предпочитаю использовать файл подкачки, потому что в любое время можно легко изменить его размер или вовсе его удалить, С разделом же придется повозится. Я буду использовать файл подкачки. В случае с btrfs следует использовать раздел подкачки.Итак, создаём файл подкачки. Чтобы он не мозолил глаза, я решил разместить его в каталоге []/var/lib/swap[]. Создаём каталог:
sudo mkdir -p /var/lib/swap
Закрываем к нему доступ всем, кроме root:
sudo chmod 700 /var/lib/swap
Чтобы выбрать оптимальный размер файла подкачки, я воспользовался [[https://help.ubuntu.com/community/SwapFaq#How_much_swap_do_I... таблицей]]. Для себя я выбрал размер 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
Перезагружаемся и проверяем работу режима гибернации.
URL:
Обсуждается: http://www.opennet.me/tips/info/3178.shtml
А вот это познавательно. Спасибо.
Спасибо огромное за статью! Все заработало!!!
Спасибо!
Я в suse не копенгаген...
А там что, при установке нельзя создать хоть файл, хоть раздел?
openSUSE расстраивает, во многих дистрибутивах это всё из коробки работает, если свопа хватает. Даже если его меньше чем размер оперативки, то гибернация всё равно будет работать если на момент ухода в неё используемой памяти меньше чем есть свопа (т.е. если своп 4, а занято 3 из 8 ГБ рамки, то всё заработает, а если будет занято больше 4, то система откажется уходить в гибернацию).
Это в каких, например?