Перезимує з файлом Swap за допомогою uswusp
Хоча можна перейти в сплячку для заміни файлу, і він нібито працює із системним сплячим режимом, встановлюючи параметри ядра. Однак я не міг змусити його відновитись, тому замість цього перейшов на використання uswsusp (призупинення програмного забезпечення користувачів) . Ось етапи, які я використав на Ubuntu 17.04 / 17.10.
Створіть файл swap
Команди для створення форматованого файлу swap 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
Перевірте розділ файлів Swap
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
до ' Продовжити без дійсного місця заміни? ' (Майстер ще не встановив файл swap.)
- Виберіть розділ , на якому знаходиться файл swap, перехресне посилання з деталями
findmnt
зверху. ( Примітка: не сам файл swap )
Примітка. Будь-які зміни, внесені вручну /etc/uswsusp.conf
, потребують відтворення initramfs
після цього за допомогою цієї команди:
sudo update-initramfs -u
Тест uswusp взимку
sudo s2disk
На snapshot
екрані повинні бути повідомлення про сплячий режим та відновити його.
Використовуйте s2disk із системним сплячим режимом
За замовчуванням 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
файл із деталями переосмислення.
Тест системного сплячого:
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