Спящий режим с файлом подкачки с использованием uswusp
Хотя есть возможность перейти в спящий режим, чтобы заменить файл, и он предположительно работает с системным спящим режимом, устанавливая параметры ядра. Тем не менее, я не мог заставить его возобновить работу, поэтому вместо этого переключился на использование uswsusp (приостановка программного обеспечения в пользовательском пространстве) . Вот шаги, которые я использовал в Ubuntu 17.04 / 17.10.
Создать файл подкачки
Команды для создания отформатированного файла подкачки 4GiB, смонтированного и добавленного в /etc/fstab
:
sudo fallocate -l 4g /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
Проверить раздел файла подкачки
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Установить приостановку программного обеспечения для пользователей (uswsusp)
sudo apt install uswsusp
Настроить uswsusp
Для создания /etc/uswsusp.conf
и воссоздания initramfs
:
sudo dpkg-reconfigure -pmedium uswsusp
Yes
« Продолжить без действительного пространства подкачки? ' (Мастер еще не установил файл подкачки.)
- Выберите раздел , на котором находится файл подкачки, перекрестные ссылки с подробной информацией
findmnt
сверху. ( Примечание: не сам файл подкачки )
Примечание. Любые изменения, сделанные вручную /etc/uswsusp.conf
, потребуют повторного initramfs
создания этой команды:
sudo update-initramfs -u
Тест uswusp спящий
sudo s2disk
Должны быть snapshot
сообщения на экране в спящем режиме и резюме.
Используйте s2disk с системным hibernate
По умолчанию systemd будет использовать свои собственные команды гибернации, поэтому замените их командами uswusp, переопределив systemd-hibernate.service
:
sudo systemctl edit systemd-hibernate.service
В открывшемся текстовом редакторе введите следующий текст (необходим пустой ExecStart). Затем сохраните и выйдите:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Это создаст /etc/systemd/system/systemd-hibernate.service.d/override.conf
файл с деталями переопределения.
Тестирование systemd hibernate:
systemctl hibernate
Примечание. Чтобы проверить, что systemd override.conf
был создан, загружен и нет ошибок, выполните:
systemctl status systemd-hibernate.service
Ссылки:
ExceStart=run-parts -a post /lib/systemd/system-sleep
бытьExceStartPost=run-parts -a post /lib/systemd/system-sleep
enable
Вариантsystemctl
симлинок от/etc/systemd/system/
до/lib/systemd/system/
. Вы никогда не должны копировать прямо в/etc/systemd/system/
sudo s2disk
только логиSaving snapshot
, чем отключение дисплея, зависает на ~ 5 мин и затем он выключает компьютер. Однако после включения он загружается нормально, как будто не было спящего режима.sudo findmnt -no SOURCE,UUID -T /mnt/4GiB.swap
должна быть изменена наsudo findmnt -no SOURCE,UUID -T /swapfile
Вот что я сделал, чтобы он работал с Ubuntu 18.04.
Сделайте так, чтобы у вас
/swapfile
был хотя бы размер вашей оперативной памятиОбратите внимание на UUID раздела, содержащего ваш
/swapfile
:Переконфигурируйте пакет
uswsusp
, чтобы правильно использовать файл подкачки:Отредактируйте сервис SystemD hibernate с помощью
sudo systemctl edit systemd-hibernate.service
и заполните его следующим содержанием:Обратите внимание на смещение резюме вашего
/swapfile
:Настройте Grub для возобновления работы из файла подкачки, отредактировав
/etc/default/grub
и изменив следующую строку:Обновление Grub:
Создайте следующее
/etc/initramfs-tools/conf.d/resume
:Обновить initramfs:
Теперь вы можете переходить в спящий режим
sudo systemctl hibernate
.Можно также создать эти сценарии:
Таким образом, вы можете спать с
gotosleep
или в спящем режимеgotohibernation
.Вы должны быть в состоянии выполнить
sudo s2both
,sudo s2ram
иsudo systemctl hibernate
без необходимости вводить пароль для работы предыдущих сценариев.Вы можете сделать это, например, создав
powerdev
группу, добавив в нее своего текущего пользователя и сконфигурировав следующую конфигурацию sudoers (отредактируйте ее с помощьюsudo visudo -f /etc/sudoers.d/powerdev
):Используемая документация:
источник
Я быстро прочитал учебник, и, если я правильно понял, вам просто нужно указать
resume
параметры командной строки Linux. С Grub2 это действительно просто, и ваши изменения всегда будут сохранены. Вам нужно отредактировать/etc/default/grub
файл, а именно эту строку:После этого запустите
sudo update-grub
изменения, чтобы изменения вступили в силу.Изменение
GRUB_CMDLINE_LINUX
не повлияет на другие ваши установки Linux (потому/etc/grub.d/30_os-prober
что не использует эту переменную).О вашей проблеме: зашифрован ли раздел файла подкачки? Если это так, гибернация не будет работать. Если нет, то вывод
filefrag -v /swapfile
может быть полезным.источник
/etc/default/grub
нужно бежатьupdate-grub
.