Ruhezustand mit Swap-Datei mit uswusp
Obwohl es möglich ist, in den Ruhezustand zu wechseln, um die Datei auszutauschen, funktioniert es angeblich mit dem Ruhezustand von systemd, indem Kernelparameter festgelegt werden. Ich konnte es jedoch nicht wieder aufnehmen und wechselte stattdessen zu uswsusp (Userspace-Software suspend) . Hier sind die Schritte, die ich unter Ubuntu 17.04 / 17.10 ausgeführt habe.
Erstellen Sie die Auslagerungsdatei
Die Befehle zum Erstellen einer formatierten 4GiB-Auslagerungsdatei, eingehängt und hinzugefügt zu /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
Überprüfen Sie die Swap-Dateipartition
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Userspace Software Suspend installieren (uswsusp)
sudo apt install uswsusp
Konfigurieren Sie uswsusp
So erstellen /etc/uswsusp.conf
und neu erstellen Sie initramfs
:
sudo dpkg-reconfigure -pmedium uswsusp
Yes
zu " ohne gültigen Swap - Bereich weiter? ' (Der Assistent hat die Auslagerungsdatei noch nicht festgelegt.)
- Wählen Sie die Partition aus , auf der sich die Auslagerungsdatei befindet, und verweisen Sie auf die Details von
findmnt
oben. ( Hinweis: nicht die Swap-Datei selbst )
Hinweis: Alle Änderungen, die manuell vorgenommen /etc/uswsusp.conf
werden, müssen initramfs
anschließend mit dem folgenden Befehl neu erstellt werden:
sudo update-initramfs -u
Testen Sie den Ruhezustand von uswusp
sudo s2disk
Im snapshot
Ruhezustand und im Wiederaufnahmemodus sollten Meldungen auf dem Bildschirm angezeigt werden.
Verwenden Sie s2disk mit dem Ruhezustand systemd
Standardmäßig verwendet systemd seine eigenen Ruhezustandsbefehle. Ersetzen Sie diese also durch die uswusp-Befehle, indem Sie Folgendes überschreiben systemd-hibernate.service
:
sudo systemctl edit systemd-hibernate.service
Geben Sie im sich öffnenden Texteditor den folgenden Text ein (das Leerzeichen ExecStart ist erforderlich). Dann speichern und beenden:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Dadurch wird eine /etc/systemd/system/systemd-hibernate.service.d/override.conf
Datei mit Überschreibungsdetails erstellt.
Test systemd Ruhezustand:
systemctl hibernate
Hinweis: Um zu überprüfen, ob das System override.conf
erstellt, geladen und fehlerfrei ist, führen Sie Folgendes aus:
systemctl status systemd-hibernate.service
Verweise:
ExceStart=run-parts -a post /lib/systemd/system-sleep
seinExceStartPost=run-parts -a post /lib/systemd/system-sleep