Как включить функцию гибернации в Ubuntu 22.04 LTS
Спящий режим компьютера не работает в вашей Ubuntu? Вот пошаговое полное руководство, показывающее, как включить эту функцию.
Подобно приостановке, режим гибернации можно использовать для сохранения работы системы. Он перемещает содержимое из оперативной памяти в область подкачки на жестком диске, а затем полностью выключает компьютер. При следующей загрузке компьютера состояние системы восстанавливается точно так, как оно было.
ПРИМЕЧАНИЕ. Теперь это руководство протестировано и работает на моем ноутбуке с Ubuntu 22.04 и GNOME по умолчанию. Это может НЕ работать, если вы использовали Grub-Customizer для редактирования загрузочного меню! Для других сред рабочего стола вам необходимо заменить gedit в следующих командах на ваш любимый текстовый редактор: или воспользуйтесь универсальным редактором командной строки nano.
Проверьте, работает ли спящий режим:
Hibernate не работает на моем ноутбуке с Ubuntu 20.04 (возможно, не помню), хотя в Debian 11 он работает.
ПРИМЕЧАНИЕ. Приведенная ниже команда не работает для безопасной загрузки! Вам необходимо отключить его в BIOS/EFI для использования режима гибернации. При безопасной загрузке вы получите сообщение об ошибке:
«Не удалось перевести систему в спящий режим через вход в систему: команда сна «гибернация» не поддерживается».
Чтобы проверить, работают ли функции, откройте терминал (Ctrl+Alt+T) и выполните команду:
systemctl hibernate
Сохраните работу перед запуском команды! Затем введите пароль пользователя, когда он спросит.
Команда выключит ваш компьютер/ноутбук. Затем снова загрузите компьютер и посмотрите, восстановится ли состояние вашей системы после входа в систему.
Включить спящий режим на разделе подкачки:
То есть не получится просто зайти на пустой рабочий стол? Попробуйте включить эту функцию, выполнив следующие действия.
Проверьте область подкачки:
Область подкачки используется, когда память заполняется. Его также можно использовать для сохранения состояния вашей системы через спящий режим.
Откройте терминал (Ctrl+Alt+T) и запустите команду, указав область подкачки:
swapon --show
Если выводится «/dev/sdaxsection…» (или /dev/nvmex), продолжайте этот шаг. Или, если отображается сообщение «Нет подкачки или файла», перейдите к следующему шагу: «Включить спящий режим для файла подкачки».
Найти UUID области подкачки
В моем случае подкачкой является раздел: «/dev/sda4». Теперь найдите UUID (универсальный уникальный идентификатор) области, выполнив команду:
cat /etc/fstab |grep swap
Скопируйте UUID для /dev/sda4 в моем случае. Он будет использоваться на следующем этапе.
Возобновить своп через параметр ядра
Добавление параметра ядра в запись меню загрузки позволяет в моем случае перейти в спящий режим на ноутбуках HP и ASUS.
Для этого выполните команду в терминале, чтобы открыть файл конфигурации:
sudo gedit /etc/default/grub
Когда он откроется, добавьте resume=UUID=xxxx (замените xxxx на идентификатор, который вы скопировали на предыдущем шаге) в качестве значения «GRUB_CMDLINE_LINUX_DEFAULT».
Сохраните файл и обновите Grub с помощью команды:
sudo update-grub
Наконец, перезагрузите свой компьютер, откройте несколько окон приложений и запустите команду systemctl hibernate, чтобы проверить, работает ли она сейчас!
Включить спящий режим при файле подкачки:
Этот шаг предназначен только для тех, у кого нет раздела подкачки, поскольку файл подкачки также можно использовать для спящего режима.
Создать файл подкачки:
Чтобы создать файл подкачки, если у вас его нет, выполните одну за другой следующие команды:
а.) Предварительно выделите место на диске для файла с помощью команды:
sudo dd if=/dev/zero of=/swapfile count=8192 bs=1MiB
Замените 8192 МБ (8G) на нужный размер. Для замены рекомендуется размер оперативной памяти.
б.) Измените разрешение файла только на чтение и запись для root:
sudo chmod 600 /swapfile
в.) Установите файл в качестве области подкачки:
sudo mkswap /swapfile
г.) Наконец включите его, выполнив команду:
sudo swapon /swapfile
д.) И запишите его в /etc/fstab, чтобы Ubuntu автоматически смонтировала его при запуске.
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Найдите UUID и смещение:
Поскольку файл создан в файловой системе Ubuntu. Его можно найти как по корневому UUID, так и по физическому смещению.
Чтобы увидеть раздел Ubuntu, запустите команду и найдите тот, который смонтирован в «/»:
df -h
Затем найдите его UUID с помощью команды:
blkid
В моем случае это «/dev/sda3», а UUID отмечен подчеркиванием.
Чтобы найти физическое смещение для /swapfile, выполните команду:
sudo filefrag -v /swapfile
Скопируйте начальный номер в поле Physical_offset. В моем случае это 1134592.
Возобновить работу с файлом подкачки через параметр ядра:
Наконец, отредактируйте файл конфигурации Grub (или используйте Grub-Customizer) с помощью команды:
sudo gedit /etc/default/grub
Затем добавьте resume=UUID=xxx summary_offset=xxx в качестве значения «GRUB_CMDLINE_LINUX_DEFAULT». Также замените «xxx» на идентификатор и/или значение смещения.
И обновите grub, чтобы применить изменения с помощью команды:
sudo update-grub
Восстановить initramfs:
В моем случае Hibernate теперь работает после перезагрузки. Если у вас не работает, попробуйте восстановить initramfs с помощью нового правила.
Сначала откройте терминал (Ctrl+Alt+T) и выполните команду для создания файла конфигурации:
sudo gedit /etc/initramfs-tools/conf.d/resume
Затем вставьте строку «RESUME=UUID=xxx summary_offset=xxx» (замените xxx правильным идентификатором) и сохраните ее.
После сохранения файла перегенерируйте initramfs с помощью команды:
sudo update-initramfs -c -k all
Наконец, перезагрузитесь и снова проверьте функцию гибернации.
Включите опцию гибернации в меню выключения:
После включения этой функции вы можете добавить опцию меню в меню выключения на панели задач.
1.) Во-первых, откройте терминал (Ctrl+Alt+T) и запустите команду для создания и редактирования файла конфигурации:
sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Когда файл откроется, вставьте следующие строки и сохраните его.
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Для настольных компьютеров, отличных от Gnome, например XUbuntu и Ubuntu MATE, должна быть опция гибернации после выхода из системы и повторного входа.
2.) Включите опцию Hibernate в системном меню для рабочего стола GNOME по умолчанию.
Для рабочего стола GNOME по умолчанию перейдите к кнопке ссылки ниже и установите расширение для пункта меню:
Расширение кнопки состояния Hibernate: https://extensions.gnome.org/extension/755/hibernate-status-button/
Если вы впервые устанавливаете расширение Gnome, вам необходимо сначала запустить команду для установки пакета «chrome-gnome-shell»:
sudo apt install chrome-gnome-shell
Нажмите ссылку «нажмите здесь, чтобы установить расширение браузера» на странице расширения и обновите страницу, если вы не видите значок переключения.
Или найдите и установите «Extension Manager» из Ubuntu Software и используйте этот инструмент для поиска и установки этого расширения:
Более того:
Если после этого руководства все пойдет хорошо, вы сможете получить больше, включая режим гибернации при закрытии крышки и автоматический переход в спящий режим при простое системы.