Спящий режим с файлом подкачки с использованием 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