Вопрос или проблема
Когда я пытаюсь перейти в режим гибернации, мой ноутбук зависает. Сначала он показывает обои экрана, затем черный экран (как будто собирается перейти в режим гибернации), затем снова обои экрана. После этого он, кажется, зависает; я не могу получить никакой реакции от него в этот момент. Что я упускаю? Спасибо.
Я использую Fedora 40 Linux с ядром 6.11.10-200.fc40.x86_64.
Вот что я попытался сделать до сих пор:
- Создал swapfile больше, чем zram0 swap + 64 ГБ системной оперативной памяти.
btrfs filesystem mkswapfile --size 80G /swapfile
- Отредактировал /etc/fstab и добавил:
/swapfile none swap sw 0 0
- Перезагрузил, выполнил:
swapon -s
Filename Type Size Used Priority
/swapfile file 83886076 0 -2
/dev/zram0 partition 8388604 0 100
- Посмотрел UUID luks и UUID файловой системы btrfs:
blkid | grep luks
/dev/mapper/luks-319127be-114d-4dd2-884b-0a04642c538a: LABEL="fedora" UUID="7a4b5350-4d8a-44ee-83b7-f612701eca51" UUID_SUB="f98c2850-16e0-4144-a4df-da5f1302e0a9" BLOCK_SIZE="4096" TYPE="btrfs"
- Посмотрел смещение btrfs:
btrfs inspect-internal map-swapfile -r /swapfile
134685952
vim /etc/default/grub
и изменилGRUB_CMDLINE_LINUX
(показано здесь с переносом строки):
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-319127be-114d-4dd2-884b-0a04642c538a rhgb quiet
mem_sleep_default=deep resume=UUID=7a4b5350-4d8a-44ee-83b7-f612701eca51
resume_offset=134685952"
- Отредактировал resume.conf:
vim /etc/dracut.conf.d/resume.conf
- Вставил следующее. Обратите внимание на пробелы в первых двух записях:
add_device+=" /dev/mapper/luks-319127be-114d-4dd2-884b-0a04642c538a "
add_dracutmodules+=" resume "
resume="UUID=7a4b5350-4d8a-44ee-83b7-f612701eca51"
resume_offset="134685952"
- Пересоздал конфигурацию grub. Пересоздал образ initramfs:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
dracut -f
vim /etc/systemd/sleep.conf
и вставил в него:
[Sleep]
AllowHibernation=yes
HibernateMode=platform shutdown
HibernateState=disk
- Теперь выполните:
systemctl daemon-reload
- Перезагрузите
- В командной строке:
systemctl hibernate
- Машина зависает.
Ответ или решение
Чтобы правильно настроить режим гибернации на вашем ноутбуке с Fedora 40 и зашифрованной файловой системой Btrfs с использованием swap-файла, необходимо учитывать несколько ключевых аспектов. Ваша проблема с зависанием при попытке гибернации может быть связана с некорректными настройками, отсутствующими компонентами или несоответствием размерности swap.
Пошаговая инструкция по настройке гибернации
-
Размер swap-файла: Убедитесь, что ваш swap-файл достаточного размера для хранения содержимого оперативной памяти. В вашем случае вы указали размер 80 ГБ, что приемлемо для 64 ГБ ОЗУ, но убедитесь, что выделенная память не используется другими процессами.
-
Форматирование и настройка swap-файла: Вы использовали команду
btrfs filesystem mkswapfile --size 80G /swapfile
, и это верно. Поэтому убедитесь, что swap-файл правильно настроен в/etc/fstab
, как вы уже сделали:/swapfile none swap sw 0 0
-
Проверка UUID и смещения:
- Убедитесь, что UUID и смещение (offset) правильные. Вы указали корректные параметры в
GRUB_CMDLINE_LINUX
иresume.conf
, но стоит проверить, что ваше смещение (134685952
) действительно совпадает с тем, что возвращаетbtrfs inspect-internal map-swapfile -r /swapfile
.
- Убедитесь, что UUID и смещение (offset) правильные. Вы указали корректные параметры в
-
Настройка GRUB: Убедитесь, что вы правильно отредактировали файл
/etc/default/grub
. Строка должна выглядеть так:GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-319127be-114d-4dd2-884b-0a04642c538a rhgb quiet mem_sleep_default=deep resume=UUID=7a4b5350-4d8a-44ee-83b7-f612701eca51 resume_offset=134685952"
Не забудьте обновить конфигурацию GRUB и initramfs после изменений.
-
Настройка Dracut: Элементы в
resume.conf
выглядят корректно. Убедитесь, что все изменения сохранены, а затем пересоздайте initramfs командой:dracut -f
-
Конфигурация systemd: Настройки в
/etc/systemd/sleep.conf
также должны быть корректными. Убедитесь, что вы добавили указанные строки:[Sleep] AllowHibernation=yes HibernateMode=platform shutdown HibernateState=disk
Затем выполните команду:
systemctl daemon-reload
-
Проверка статуса после перезагрузки: После всех настроек перезагрузите систему и выполните команду для проверки статус:
systemctl status
Убедитесь, что службы работают корректно.
-
Тестирование гибернации: Запустите команду для тестирования:
systemctl hibernate
Если система снова зависает, возможно, проблема в использовании zram. Попробуйте временно отключить zram, чтобы проверить, улучшит ли это ситуацию.
-
Логи и диагностика: Если проблема сохраняется, посмотрите логи системы для выявления причин зависания. Это можно сделать с помощью команд:
journalctl -b -1
или
dmesg
Заключение
Следуя этому пошаговому руководству, вы сможете настроить корректную гибернацию на вашем ноутбуке с Fedora 40 на зашифрованной Btrfs с использованием swap-файла. Если проблема не устраняется, рекомендуется проверить наличие обновлений для ядра и других компонентов системы, а также обратиться за поддержкой в сообщество Fedora, где вы сможете получить дополнительные рекомендации.