Iberna con il file di scambio usando uswusp
Sebbene sia possibile ibernare per scambiare file e presumibilmente funziona con ibernazione systemd impostando i parametri del kernel. Tuttavia, non sono riuscito a riprenderlo, quindi sono passato all'utilizzo di uswsusp (sospensione del software userspace) . Ecco i passaggi che ho usato su Ubuntu 17.04 / 17.10.
Crea il file di scambio
I comandi per creare un file di scambio formattato 4GiB, montato e aggiunto a /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
Verifica la partizione del file di scambio
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Installa sospensione software Userspace (uswsusp)
sudo apt install uswsusp
Configura uswsusp
Per creare /etc/uswsusp.conf
e ricreare initramfs
:
sudo dpkg-reconfigure -pmedium uswsusp
Yes
a ' Continuare senza uno spazio di scambio valido? ' (La procedura guidata non ha ancora impostato il file di scambio.)
- Selezionare la partizione in cui risiede il file di scambio, fare un riferimento incrociato con i dettagli
findmnt
dall'alto. ( Nota: non il file di scambio stesso )
Nota: qualsiasi modifica effettuata manualmente /etc/uswsusp.conf
richiederà di essere ricreata in initramfs
seguito con questo comando:
sudo update-initramfs -u
Prova ibernazione uswusp
sudo s2disk
Dovrebbero essere presenti snapshot
messaggi sullo schermo in modalità sospensione e ripresa.
Utilizzare s2disk con ibernazione systemd
Di default systemd utilizzerà i propri comandi di ibernazione, quindi sostituiscili con i comandi uswusp sovrascrivendo systemd-hibernate.service
:
sudo systemctl edit systemd-hibernate.service
Nell'editor di testo che si apre, inserisci il testo seguente (è necessario ExecStart vuoto). Quindi salva ed esci:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Questo creerà il /etc/systemd/system/systemd-hibernate.service.d/override.conf
file con i dettagli di override.
Test di ibernazione del sistema:
systemctl hibernate
Nota: per verificare che il systemd override.conf
sia stato creato, caricato e privo di errori, eseguire:
systemctl status systemd-hibernate.service
Riferimenti:
ExceStart=run-parts -a post /lib/systemd/system-sleep
essereExceStartPost=run-parts -a post /lib/systemd/system-sleep