Hibernar com arquivo de permuta usando uswusp
Embora seja possível hibernar para trocar arquivos, ele supostamente funciona com a hibernação do systemd definindo parâmetros do kernel. No entanto, como não consegui retomar, mudei para o uswsusp (suspensão do software userspace) . Aqui estão as etapas que eu usei no Ubuntu 17.04 / 17.10.
Crie o arquivo de permuta
Os comandos para criar um arquivo de troca 4GiB formatado, montado e adicionado 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
Verificar partição de arquivo de permuta
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Instalar a suspensão do software do espaço do usuário (uswsusp)
sudo apt install uswsusp
Configurar uswsusp
Para criar /etc/uswsusp.conf
e recriar initramfs
:
sudo dpkg-reconfigure -pmedium uswsusp
Yes
para ' Continuar sem um espaço de troca válido? ' (O assistente ainda não definiu o arquivo de troca.)
- Selecione a partição em que o arquivo de troca reside, faça referência cruzada com detalhes
findmnt
acima. ( Nota: não o próprio arquivo de troca )
Nota: Qualquer alteração feita manualmente /etc/uswsusp.conf
exigirá a recriação initramfs
posterior com este comando:
sudo update-initramfs -u
Teste o hibernate do uswusp
sudo s2disk
Deve haver snapshot
mensagens na tela em hibernação e retomada.
Use s2disk com hibernação systemd
Por padrão, o systemd usará seus próprios comandos de hibernação, portanto, substitua-os pelos comandos uswusp, substituindo o systemd-hibernate.service
:
sudo systemctl edit systemd-hibernate.service
No editor de texto que é aberto, coloque o seguinte texto (o ExecStart em branco é necessário). Em seguida, salve e saia:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Isso criará um /etc/systemd/system/systemd-hibernate.service.d/override.conf
arquivo com detalhes de substituição.
Teste o sistema hibernar:
systemctl hibernate
Nota: Para verificar se o systemd override.conf
foi criado, carregado e sem erros, execute:
systemctl status systemd-hibernate.service
Referências:
ExceStart=run-parts -a post /lib/systemd/system-sleep
sejaExceStartPost=run-parts -a post /lib/systemd/system-sleep