Hibernação 18.04 com UEFI e inicialização segura ativada

14

"sudo systemctl start hibernate.target" funcionou bem com o 16.04 em um Acer B117 usando inicialização herdada; A atualização para o 18.04 me forçou a usar o UEFI e a inicialização segura (requisitos da Acer) ativada. Suspender ainda funciona, mas preciso de hibernação.

A partição de troca está ativa e é igual ao tamanho da RAM + 2 GB;

GRUB_CMDLINE_LINUX_DEFAULT = "resumo silencioso = UUID = myswapuuid"

journalctl -xe revelou falha ao acessar / sys / power / disk

cat / sys / power / disk: [desativado]

cat / sys / power / state: congelar mem

Alguma sugestão?

olli61
fonte

Respostas:

11

Eu tenho o mesmo problema e, infelizmente, é impossível com o kernel oficial do Ubuntu desde a versão 4.13 devido ao patchset de bloqueio do kernel (efi-lockdown). A substanciação é:

Atualmente, não há como verificar a imagem do currículo ao retornar do hibernar. Isso pode comprometer o modelo de confiança dos módulos assinados, portanto, até que possamos trabalhar com imagens de hibernação assinadas, o desabilitamos quando o kernel está bloqueado.

Confirmação biônica relacionada que você pode ver aqui .

Esta é uma decisão controversa e Linus se recusou a mesclar essas mudanças no kernel do linux.

Um pouco mais de detalhes que você pode encontrar é o artigo Bloqueio do kernel na 4.17? e seus comentários.

Portanto, enquanto esperamos algum software mágico, que funcione com imagens de hibernação assinadas, só podemos usar outro kernel ou desativar a inicialização segura .

PS Ficarei feliz em votar outra resposta se alguém resolver esse problema.

Snaker
fonte
Muito obrigado, entendendo por que está um bom passo à frente.
olli61
Qual kernel eu poderia usar? A hibernação é uma característica essencial para mim. (Espero que eu deve ter um mais recente do que 4,15, de preferência 4,18, como o meu WiFi funciona em último, mas não o primeiro.)
nsandersen
1

espero que isso ajude alguém, mas estou executando o popos / ubuntu 19.04. Na minha configuração, eu era capaz de hibernar usando s2disk ou pm-hibernate, mas o currículo estava falhando. Para corrigir isso, como meu sistema é inicializado usando UEFI em vez de grub. Eu apenas tive que reinstalar o carregador de inicialização. Para verificar se você está executando o UEFI, use o seguinte:

[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"

se estiver no modo UEFI, segui este guia para reinstalar o carregador de inicialização, varia se você estiver usando um disco nvme ou disco sata: https://support.system76.com/articles/bootloader/

A chave é executar este comando:

sudo update-initramfs -c -k all

certifique-se de que nas opções do kernalboot especifique a partição ou o UUID de onde retornar, por exemplo, algo como isto:

resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Você pode adicionar isso: 1) sudo kernel-stub -a "resume = UUID = ..." 2) edite o arquivo /etc/initramfs-tools/conf.d/resume e adicione: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88

verifique seu /var/log/syslogarquivo para algo como isto:

Aug 4 22:26:42 pop-os /usr/bin/kernelstub[19639]: kernelstub : DEBUG kopts: root=UUID=b37019a8-91f5-445f-94c1-7359a49ed5df ro quiet loglevel=0 systemd .show_status=false resume=UUID=ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Se o resumo estiver ausente ou errado, será necessário atualizar o kernal de inicialização novamente.

Lingster
fonte
Obrigado, esta é a única resposta que me permitiu retomar sem problemas.
Emmanuel M. Smith
Como usuário de criptografia, não precisei alterar o initramfs, mas tive que desativar o cryptswap e reativar a troca normal descomentando e comentando adequadamente em /etc/fstabe /etc/crypttab. O cryptswap usa uma chave aleatória a cada inicialização, para que não funcione na hibernação.
fuzzyTew
Se você deseja uma partição de troca criptografada, consulte: help.ubuntu.com/community/EnableHibernateWithEncryptedSwap
Lingster