Hibernar e continuar a partir de um arquivo de troca

16

Configurei uma nova instalação do Ubuntu em um Notebook para usar um arquivo de troca, em vez de usar uma partição de troca.

Por padrão, não é possível fazer com que o Ubuntu hibernate usando um arquivo de swap, então eu tentei este tutorial , mas é específico do grub1 , e o Ubuntu agora usa o grub2 .

Alguém sabe como fazer isso?

    
por tfmoraes 13.10.2010 / 13:58

2 respostas

6

Eu dei uma rápida leitura ao tutorial e, se entendi corretamente, você só precisa especificar as opções resume na linha de comando do Linux. Com o Grub2 é realmente simples, e suas alterações serão sempre preservadas. Você precisa editar o arquivo /etc/default/grub , especificamente esta linha:

GRUB_CMDLINE_LINUX="resume=... resume_offset=..."

Depois disso, execute sudo update-grub para que as alterações entrem em vigor.

A alteração de GRUB_CMDLINE_LINUX não afetará outras instalações do Linux que você possui (porque /etc/grub.d/30_os-prober não usa essa variável).

Sobre o problema que você está tendo: a partição do swapfile está criptografada? Se assim for, a hibernação não funcionará. Caso contrário, a saída de filefrag -v /swapfile pode ser útil.

    
por Andrea Corbellini 13.10.2010 / 17:46
6

Hibernar com arquivo de troca usando uswusp

Embora seja possível hibernar a troca de arquivos e supostamente funciona com o systemd hibernate, configurando os parâmetros do kernel. No entanto, não consegui recuperá-lo, então, ao invés disso, mudei para uswsusp (userspace software suspend) . Aqui estão os passos que usei no Ubuntu 17.04 / 17.10.

Crie o arquivo de troca

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 a partição do arquivo de troca

sudo findmnt -no SOURCE,UUID -T /mnt/4GiB.swap
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233

Instalar o software suspenso do espaço do usuário (uswsusp)

sudo apt install uswsusp

Configurar o 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 permuta reside, faça referência cruzada com detalhes de findmnt acima. ( Nota: não o próprio arquivo swap )

Observação: todas as alterações feitas manualmente em /etc/uswsusp.conf exigirão a recriação de initramfs com este comando:

sudo update-initramfs -u

Teste o uso do hibernate

sudo s2disk

Deve haver snapshot mensagens na tela em hibernação e retomada.

Use s2disk com systemd hibernate

Por padrão, o systemd usará seus próprios comandos de hibernação, então substitua-os pelos comandos uswusp, sobrescrevendo o systemd-hibernate.service :

sudo systemctl edit systemd-hibernate.service

No editor de texto que é aberto, coloque o seguinte texto (o ExecStart em branco é obrigatório). Em seguida, salve e saia:

[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk 
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep

Isso criará /etc/systemd/system/systemd-hibernate.service.d/override.conf arquivo com detalhes sobre substituição.

Testar sistema de hibernação:

systemctl hibernate 

Nota: Para verificar se o systemd override.conf foi criado, carregado e sem erros, execute:

systemctl status systemd-hibernate.service

Referências:

por Cas 12.03.2017 / 23:50