Hibernasi dengan file Swap menggunakan uswusp
Meskipun dimungkinkan untuk melakukan hibernate untuk menukar file dan itu seharusnya bekerja dengan systemd hibernate dengan mengatur parameter kernel. Namun, saya tidak dapat melanjutkannya, alih-alih beralih menggunakan uswsusp (menangguhkan perangkat lunak userspace) . Berikut adalah langkah-langkah yang saya gunakan di Ubuntu 17.04 / 17.10.
Buat File Swap
Perintah untuk membuat file swap 4GiB yang diformat, dipasang dan ditambahkan ke /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
Verifikasi Partisi File Swap
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Instal Penangguhan Perangkat Lunak Userspace (uswsusp)
sudo apt install uswsusp
Konfigurasikan uswsusp
Untuk membuat /etc/uswsusp.confdan membuat ulang initramfs:
sudo dpkg-reconfigure -pmedium uswsusp
Yesuntuk ' Lanjutkan tanpa ruang swap yang valid? ' (Wizard belum menyetel file swap.)
- Pilih partisi tempat file swap berada, referensi silang dengan detail dari
findmntatas. ( Catatan: bukan file swap itu sendiri )
Catatan: Setiap perubahan yang dilakukan secara manual /etc/uswsusp.confakan membutuhkan pembuatan ulang initramfssetelahnya dengan perintah ini:
sudo update-initramfs -u
Uji menggunakan hibernasi
sudo s2disk
Seharusnya ada snapshotpesan di layar saat hibernasi dan lanjutkan.
Gunakan s2disk dengan systemd hibernate
Secara default systemd akan menggunakan perintah hibernate miliknya sendiri, jadi gantilah dengan perintah uswusp dengan mengganti systemd-hibernate.service:
sudo systemctl edit systemd-hibernate.service
Di editor teks yang terbuka masukkan teks berikut (ExecStart kosong diperlukan). Kemudian simpan dan keluar:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Ini akan membuat /etc/systemd/system/systemd-hibernate.service.d/override.conffile dengan menimpa detail.
Test systemd hibernate:
systemctl hibernate
Catatan: Untuk memeriksa apakah systemd override.conftelah dibuat, dimuat dan tidak ada kesalahan, jalankan:
systemctl status systemd-hibernate.service
Referensi:
ExceStart=run-parts -a post /lib/systemd/system-sleepmenjadiExceStartPost=run-parts -a post /lib/systemd/system-sleep