Как включить опцию гибернации в Ubuntu 20.04?

Вопрос или проблема

Я попробовал различные способы включить режим гибернации в Ubuntu 20.04, но ничего не работает. Как мне включить опцию гибернации в Ubuntu 20.04?

Предполагаю, что у вас есть раздел подкачки, готовый к использованию (если у вас есть файл подкачки, вы не сможете использовать этот метод для гибернации). Следуйте этим шагам:

  1. Установите pm-utils и hibernate:

    sudo apt install pm-utils hibernate
    
  2. Затем:

    cat /sys/power/state
    

    Вы должны увидеть:

    freeze mem disk
    
  3. Затем выполните одну из следующих команд:

    grep swap /etc/fstab
    blkid | grep swap
    

    И скопируйте значение UUID. Оно вам потребуется позже.

  4. Затем выполните (используйте ваш любимый текстовый редактор, если это не nano):

    sudo nano /etc/default/grub
    
  5. Измените строку, которая выглядит так:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    так, чтобы она выглядела так:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<ВАШ_СКОПИРОВАННЫЙ_UUID>"
    

    Будьте осторожны, не пропустите часть UUID=.

  6. Затем, после сохранения файла и выхода из текстового редактора, выполните:

    sudo update-grub
    
  7. Чтобы протестировать это, выполните:

    sudo systemctl hibernate
    

Это расширение, похоже, позволяет отображать пункт меню “Гибернация”, но изменяет общий вид этого подменю: https://extensions.gnome.org/extension/3070/simpler-off-menu/ .


Проверено на Ubuntu 20.04 с использованием версии ядра 5.4.0-31 на моем Lenovo ThinkPad X1 Carbon.

Если вы хотите использовать /swapfile для гибернации вместо раздела подкачки:

Топ-соответствующий ответ работает хорошо, но вам не нужно использовать раздел, вы также можете использовать файл подкачки по умолчанию /swapfile.

Прежде всего, вам следует увеличить размер /swapfile как минимум до размера вашей оперативной памяти.

  1. Установите зависимости:

    sudo apt install pm-utils hibernate uswsusp
    
  2. Найдите ваш UUID и смещение подкачки:

    findmnt -no UUID -T /swapfile && sudo swap-offset /swapfile
    

    Вы увидите что-то вроде этого:

    371b1a95-d91b-49f8-aa4a-da51cbf780b2
    resume offset = 23888916
    
  3. Отредактируйте /etc/default/grub и замените строку:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    на ваш UUID и смещение:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=371b1a95-d91b-49f8-aa4a-da51cbf780b2 resume_offset=23888916"
    
  4. Обновите GRUB:

    sudo update-grub
    
  5. Проверьте вашу гибернацию:

    sudo systemctl hibernate
    

Вероятно, вам не следует изменять размер вашего раздела подкачки после включения гибернации (по крайней мере, без изменения swap-offset в GRUB).

Смотрите вики для получения более подробной информации.

ДОПОЛНИТЕЛЬНЫЙ БОНУС: Если вы хотите гибернировать при закрытой крышке ноутбука (см. это):

  1. Отключите любые параметры в настройках, которые касаются крышки ноутбука, установите их на “ничего не делать”.

  2. Выполните:

    sudo mkdir -p /etc/acpi/events/ && sudo nano /etc/acpi/events/laptop-lid
    

    и вставьте:

    event=button/lid.*
    action=/etc/acpi/laptop-lid.sh
    
  3. Выполните:

    sudo touch /etc/acpi/laptop-lid.sh && sudo chmod +x /etc/acpi/laptop-lid.sh && sudo nano /etc/acpi/laptop-lid.sh
    

    и вставьте:

    #!/bin/bash
    
    LOG_FILE='/var/log/laptop-lid.log'
    touch $LOG_FILE && chmod 0666 $LOG_FILE
    
    grep -q closed /proc/acpi/button/lid/LID/state
    if [ $? = 0 ]
    then
        # действие закрытия
        echo "$(date '+%Y.%m.%d %H:%M:%S.%3N'): закрыта" >> $LOG_FILE
        systemctl hibernate
    else
        # действие открытия
        echo "$(date '+%Y.%m.%d %H:%M:%S.%3N'): открыта" >> $LOG_FILE
    fi
    
  4. Выполните:

    sudo /etc/init.d/acpid restart
    

И если вы хотите включить гибернацию в вашем Ubuntu 20.04*,
следуйте этим шагам:

  1. Сначала убедитесь, что вы выделили память подкачки на вашем компьютере, чтобы проверить:

    swapon --show
    
  2. Затем проверьте, является ли выделенная вами память подкачки больше или хотя бы равной физической памяти (ОП).

  3. Используйте следующую команду, чтобы найти раздел подкачки:

    grep swap /etc/fstab
    
  4. Скопируйте UUID из вывода, например (UUID=XXXXX-XXX-XXXX-XXXX-YYYYYYYYYY).

  5. Добавьте параметр загрузки с помощью следующей команды:

    sudoedit /etc/default/grub
    
  6. В строке, начинающейся с GRUB_CMDLINE_LINUX_DEFAULT, добавьте:

    resume=UUID=XXXXX-XXX-XXXX-XXXX-YYYYYYYYYY
    

    Примечание: Во всех остальных ветках они обычно просят добавить раздел подкачки, но здесь мы добавляем значение UUID.

    Последняя строка будет выглядеть так:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXX-XXX-XXXX-XXXX-YYYYYYYYYY"
    
  7. Обновите файл:

    sudo update-grub
    
  8. sudo systemctl hibernate и теперь гибернация будет работать в вашем Ubuntu 20.04.

Решение eldwist сработало для меня, за исключением…

…не сразу, потому что я получил следующую ошибку:

$ sudo systemctl hibernate
Не удалось включить гибернацию системы через logind: Глагол сна не поддерживается

Если вы получили эту ошибку, вам, вероятно, нужно отключить безопасную загрузку в меню безопасности UEFI/BIOS (см. аналогичную проблему с 16.04). Затем это сработало для меня (тестировалось на Ubuntu 20.04; ядро 5.4.0-33, настроенное для двойной загрузки с Win10).

Чтобы включить гибернацию в 20.04:

Все примеры на этой странице, похоже, пропускают resume-offset, он необходим при использовании файла подкачки вместо раздела подкачки.

Увеличьте размер swapfile, чтобы он соответствовал размеру ОП до 8ГБ.

  • Проверьте используемую память подкачки:

    sudo swapon -s
    
  • Если найдены разделы подкачки:

    sudo swapoff -a
    sudo nano -Bw /etc/fstab
    
  • Добавьте # перед UUID разделов подкачки:

    # UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX   none   swap    sw     0       0
    
  • Добавьте строку для swapfile, если таковой нет:

    /swapfile   none    swap     sw      0       0
    
  • Создайте swapfile:

    sudo fallocate -l XG /swapfile*
    

    где X – это размер swapfile в ГБ:

    sudo mkswap /swapfile
    sudo chmod 0600 /swapfile
    sudo swapon /swapfile
    
  • Перезагрузите:

    sudo reboot
    

Добавьте местоположение и смещение resume в grub.cfg:

  • Отредактируйте /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"
    
  • Используйте UUID из корневого раздела.

  • Используйте смещение из:

    sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'
    
  • Обновите GRUB:

    sudo update-grub
    
  • Проверьте гибернацию:

    sudo systemctl hibernate
    

Кнопку гибернации можно добавить с помощью расширений GNOME.

Обратите внимание, что существует небольшая вероятность появления “дыр” в swapfile при его создании с помощью fallocate. В /var/log/syslog можно поискать фразу swapon: swapfile has holes, чтобы убедиться, что не будет потери данных.

Файл подкачки можно также создать с помощью dd:

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

Ошибка при использовании dd может перезаписать ваш HDD.

Я только что добавил сочетание клавиш. Я отключил Super+H, так как он мне не нужен (по умолчанию это действие – скрыть окно) и создал новое сочетание с командой:

systemctl hibernate

Ответ SuRa вверху работает отлично, однако, если ваш ноутбук поставляется с файлом подкачки вместо раздела подкачки , вам придется выполнить несколько шагов вначале, чтобы все это работало. В общем:

  1. Загрузитесь с живого CD/USB-накопителя, уменьшите ваш основной раздел на объем памяти, который у вас есть, плюс 1-2 ГБ на запас. Например, у меня 16 ГБ, поэтому я уменьшил свой раздел на 18 ГБ для надежности. Это оставит свободное/незанятое пространство на вашем диске.
  2. Создайте новый раздел типа swap в свободном/незанятом пространстве на вашем диске.
  3. Перезагрузитесь в установленную операционную систему (т.е. без живого CD/USB).
  4. Перейдите в “разделы” или “gparted”, чтобы получить UUID вашего нового раздела подкачки.
  5. Добавьте новый раздел подкачки к /etc/fstab и удалите (или закомментируйте) старый файл подкачки .
  6. Используйте команды swapoff и swapon, чтобы перейти с файла подкачки на раздел подкачки .
  7. Не забудьте удалить файл подкачки , чтобы вернуть это пространство.
  8. Теперь вы можете следовать инструкциям SuRa.

Использование устройства раздела вместо UUID

Мне пришлось немного отклониться от “как сделать” выше, вероятно, так как я зашифровал свой жесткий диск. Мой файл /etc/fstab не содержит UUID для раздела подкачки, а содержит устройство раздела.

Если ваш /etc/fstab содержит <partition_device> вместо UUID для раздела подкачки, отредактируйте строку, начинающуюся с GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/default/grub, чтобы она содержала resume=<partition_device>

Пример:
если /etc/fstab содержит это

    # <файловая система> <точка монтирования>   <тип>  <параметры>       <дамп>  <проход>
    /dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

то /etc/default/grub должно содержать строку

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mapper/ubuntu--vg-swap_1"

Затем выполните sudo update-grub и протестируйте, выполнив sudo systemctl hibernate

Ответ или решение

Как включить опцию гибернации в Ubuntu 20.04: Подробная Инструкция

Гибернация — это функция управления питанием, которая позволяет сохранить состояние вашей операционной системы на жестком диске перед выключением компьютера, чтобы вы могли быстро вернуться к работе позже. В данном руководстве мы подробно разберем, как активировать гибернацию в Ubuntu 20.04, а также уберем возможные преграды на этом пути.

Предварительные требования

Прежде чем начать, убедитесь, что у вас:

  1. Есть swap раздел: Для успешной гибернации требуется swap пространство, размер которого должен быть не менее равен объему оперативной памяти (RAM) вашего устройства.
  2. Понимание командной строки: Данный процесс подразумевает использование терминала.

Шаги по включению гибернации

1. Установка необходимых пакетов

Для начала установим несколько утилит, которые помогут управлять гибернацией:

sudo apt update
sudo apt install pm-utils hibernate

2. Проверка состояния системы

Следующим шагом проверьте доступные состояния управления энергией:

cat /sys/power/state

В выводе вы должны увидеть следующую строку: freeze mem disk.

3. Поиск UUID swap раздела

Для поиска UUID вашего swap раздела выполните следующее:

grep swap /etc/fstab

или

blkid | grep swap

Скопируйте значение UUID, так как оно потребуется позже.

4. Редактирование конфигурационного файла GRUB

Откройте файл конфигурации GRUB:

sudo nano /etc/default/grub

Найдите строку:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Измените её на следующую:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<Ваш_UUID>"

Не забудьте заменить <Ваш_UUID> на полученное ранее значение.

5. Обновление GRUB

После внесения изменений сохраните файл и выполните команду для обновления настройки GRUB:

sudo update-grub

6. Проверка работы гибернации

Теперь вы можете протестировать вашу настройку, выполнив следующую команду:

sudo systemctl hibernate

Если всё выполнено правильно, система должна перейти в режим гибернации.

Рекомендации

Если у вас не прокладывается путь через дальнейшие действия (например, при возникновении ошибки), проверьте:

  • Режим безопасной загрузки: Убедитесь, что у вас отключен режим Secure Boot в UEFI/BIOS.
  • Размер swap: Если вы используете swap файл вместо swap раздела, вам потребуется выполнить дополнительные шаги, чтобы настроить UUID и offset.

Использование swap файла

Если вы хотите использовать swap файл вместо swap раздела, убедитесь, что его размер соответствует размеру RAM. Затем вам необходимо будет выполнить следующие действия:

  1. Найдите UUID и смещение swap файла:
findmnt -no UUID -T /swapfile && sudo swap-offset /swapfile
  1. Обновите строку в GRUB, как и в предыдущем шаге, но добавьте resume_offset:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<Ваш_UUID> resume_offset=<Ваш_сдвиг>"

Заключение

Теперь в вашей Ubuntu 20.04 должен быть доступен режим гибернации. Если вы хотите добавить кнопку для быстрого перехода в режим гибернации, вы можете воспользоваться расширениями GNOME. Если у вас возникли проблемы или дополнительные вопросы, не стесняйтесь обращаться за помощью к сообществу.

Оцените материал
Добавить комментарий

Капча загружается...