O Hibernate funcionou corretamente quando eu estava usando o Ubuntu 17.04. Após a atualização para 17.10, não consegui retomar por causa da tela preta após o resumo ( esse bug ).
Após a atualização para o 18.04, se eu tentar iniciar o computador após a hibernação, ele será inicializado como se não houvesse hibernação.
Respostas:
Há alterações feitas nas configurações padrão quando comparadas com o LTS anterior (16.04). No meu caso, a hibernação não funcionou até que eu fiz várias etapas, entre elas aumentar o tamanho do arquivo de troca, ativá-lo, garantir que as políticas permitissem etc.
Essa pode ser facilmente a minha resposta mais longa em todo o StackExchange, então tentei tornar os cabeçalhos descritivos .
Botas como não havia hibernação
Seria prudente dar uma olhada nos seus logs (
dmesg
pode ajudar) e ver se há algo lá. Existem razões pelas quais, apesar de você dizer ao sistema para hibernar, ele na verdade não funciona, ou suspende para a RAM (suspensão).Examinar
kern.log
esyslog
procurar mensagens relacionadas ao hibernate também não faria mal. Seções que começam com "problema" podem ajudá-lo com problemas específicos.Trocar arquivo ou partição de troca
Uma das mudanças cruciais é que agora você NÃO TEM uma partição de troca, mas possui um arquivo de troca.
O arquivo de troca pode não funcionar com sua combinação de hardware / drivers / SO e hibernação.
Hibernação desativada
As políticas também podem desativar ou proibir a hibernação.
Jargão
Suspender na RAM - a RAM mantém os dados, o computador dorme mais rápido, usa mais energia quando suspensa, acorda mais rápido. Alguns chamam isso de sono.
Suspender no disco - também conhecido como hibernação. A RAM é salva para troca (partição ou arquivo), o computador dorme mais devagar, consome menos energia enquanto hiberna, acorda mais devagar.
Pré-requisitos - você tem espaço suficiente?
Para hibernar, você precisa (simplificação aqui) salvar toda a sua RAM no disco rígido. Portanto, você precisa reservar espaço suficiente para isso. Caso contrário, isso falhará e você não hibernará.
free -m
lhe dirá quanta memória você tem, usa e quanto está em sua troca.df -h
lhe dirá quanto espaço em disco você tem em cada ponto de montagem e quanto é usado, livre, etc. Isso é importante, pois você poderá especificar mais tarde onde seu arquivo de troca estará localizado ou qual partição "aparar" terá espaço suficiente para sua troca.cat fstab
deve fornecer informações se você tiver uma partição ou arquivo de troca. De acordo com o Ubuntu Hibernation, as perguntas frequentesswapfile
nem sempre funcionam com algumas combinações de hardware / drivers.Se você não tiver espaço suficiente, siga as perguntas frequentes sobre a troca do Ubuntu . Ele mostra como aumentar o arquivo de troca, adicionar outro, verificar se ele está sendo usado etc. Com comandos e explicações. Recurso realmente agradável.
Não tenho espaço suficiente para caber na minha RAM!
Os documentos do kernel dizem:
Portanto, tente ajustar o tamanho da imagem. Como - faça outra pergunta, por favor.
Pré-requisitos - seu kernel suporta suspensão para disco?
O kernel suporta o que está listado
/sys/power/state
, então:cat /sys/power/state
Permitidos (a meu conhecimento) As entradas não incluem:
mem
,standby
,freeze
,disk
. Explicação:mem
- tem vários significados, exatamente o que você encontrará em seu sistemacat /sys/power/mem_sleep
. Eu tenho:s2idle [deep]
standby
- Suspensão de inicialização (se suportada)freeze
- Suspender para ocioso (STI)disk
- Suspender para disco (STD), hibernação . Isso - você quer.Então precisamos verificar
cat /sys/power/disk
. Se você tiver ládisabled
, mergulhe em seu BIOS procurando o Secure Boot - essa é a única idéia que posso oferecer e a única coisa que sei que pode interferir e desativar a hibernação. Embora eu conheça apenas o SecureBoot, pode haver outras interferências, portanto, dar uma olhada no BIOS é uma boa idéia, mesmo que você não tenha nenhuma "inicialização segura".Lendo aqui:
TBH, mesmo que seu kernel NÃO suporte a hibernação, você pode tentar de outra maneira, role para baixo até a seção
Interfaces
.Leia isto - avisos e problemas - sem BTRFS
Em nenhuma ordem particular:
Não use BTRFS e hibernar: dados corrompidos serão o resultado.
Eu quero hibernar - partição swap
Há casos em que as pessoas renunciam ao arquivo de troca e retornam à troca de partição. Afinal, funcionou no LTS anterior. Eu não tentei, então não vou oferecer indicadores.
Eu quero hibernar - com arquivo de troca
/etc/fstab
novo. Reinicie para ver se a alteração foi bem-sucedida (armazene o backup dofstab
para que você possa reverter facilmente, por precaução.Parâmetros do kernel? Assustador!
Leia com atenção e decida se você deseja fazer isso, mas é apenas uma maneira de configurar seu kernel. Pode ser mais fácil hibernar via
systemd
euswsusp
(consulte Interfaces , abaixo). Pode ser que você - como eu - acabe decidindo que suspender para a RAM é suficiente e não deseja ter 32 GB em um arquivo de troca (não tão bom para pessoas com um SSD em seus laptops, por exemplo). Mas!resume=
saber em qual partição está o arquivo de troca eresume_offset=
saber onde está o arquivo de troca para começar a retomar.resume=
apontar para trocar partição.resumedelay=
.Documentos do kernel sobre o atraso na retomada da hibernação:
Parâmetros necessários para arquivo de swap e hibernação :
Para
resume=
escolher o mesmo estilo que oroot
elemento possuifstab
. Então, ou/dev/sdaX
ouUUID
ou LVM. Para hibernar para arquivo - forneça uma partição onde seu arquivo pode ser encontrado.Lendo:
Problema - cabeçalho de troca não encontrado
O arquivo de troca precisa ser formatado corretamente. Se seus logs lhe disserem isso, você está tentando hibernar para um arquivo ou o parâmetro resume não está correto.
Alterne para particionar ou corrigir o arquivo ou alterar a interface usada para hibernação.
Consulte: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found
mkswap
é usado para formatar o arquivo, leia mais aquiProblema! Hibernação não permitida!
Teste:
pm-hibernate
(se o pacote pm-utils estiver instalado) ousystemctl hibernate
informar que você não tem permissão. Configuração padrão no Ubuntu desde o IIRC 12.04.Solução (s): depende da versão do Polkit, da versão e do sabor do Ubuntu ... Consulte esta pergunta . Além disso, o ArchWiki no Polkit pode ajudar.
Para o Mint, consulte: https://forums.linuxmint.com/viewtopic.php?t=259912
Problema! Hibernação desativada por algo na BIOS!
Teste:
cat /sys/power/disk
temdisabled
. Os logs mostram "Falha ao hibernar o sistema via logind: verbo de suspensão não suportado".Solução: pesquise seu BIOS e encontre a coisa problemática. Desligue isso.
Solução 2: tente outra interface de hibernação.
Consulte: Como ativar a hibernação no 16.04.1? (systemd) .
Interfaces
Considerações finais
Para mim, foram quase dois dias de trabalho para compilar isso. Esperamos que isso ajude você (e outros) a resolver seu problema mais rapidamente. Ainda faltam pontos, mas são 2 horas da manhã e não tenho vontade de escrever mais agora. Claro que estou aberto a sugestões de alguém para melhorar isso, então comente. Responderei quando durmo, trabalho etc. :-)
Não tenho certeza de que hibernar para o disco é ótimo. Eu fui dormir no final. Mas, para mim, o problema era ter um arquivo de 32 GB apenas para poder hibernar, já que geralmente estou evitando a troca. Meu arquivo de troca inicial tinha 2 GB e estava quase vazio. YMMV. No entanto, boa sorte! E comece com os logs!
fonte
$ sudo apt install linux-generic-hwe-18.04
(para alguns hardwareslinux-generic-hwe-18.04-edge
pode até valer uma chance).Use o UUID da partição swap em vez de seu ponto de montagem no parâmetro RESUME
resume=UUID=<#>
em ambos/etc/default/grub
e/etc/initramfs-tools/conf.d/resume
Crie uma entrada para a partição swap
/etc/fstab
sem um ponto de montagem semelhante a esteEm
/etc/default/grub
eu usei uma entrada separada para retomar a hibernaçãoCriar um kit de políticas na autoridade local (pkla)
E insira ai
Após essa atualização, initramfs e GRUB
Reinicie, abra alguns aplicativos e use
systemctl hibernate
(sem sudo) para ver se funcionafonte
Para mim, sempre funcionou até 18.04 e depois das 18.04 eu o habilitei como em muitos artigos, mas de repente parou de funcionar ontem (funcionando bem por 4-5 meses),
e aqui está o ... UMA COISA que o fez funcionar novamente ...
Diga ao grub2 onde está a partição swap:
Primeiro descubra em qual partição está usando o comando abaixo:
O meu está no sda7, como é a seguinte saída:
Em seguida, adicione no Grub2 a seguinte adição à seguinte linha, usando o seguinte comando:
sudo gedit / etc / default / grub
A parte importante é
resume=/dev/sda7
Atualize o Grub com o seguinte comando e, depois disso, ele começou a funcionar perfeitamente novamente:
Depois de muitas tentativas, essa foi a única coisa que funcionou, talvez tenha sido apenas por causa de uma atualização no kernel que estragou tudo, mas mesmo assim isso funcionou.
fonte
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/
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 no arquivo / var / log / syslog algo parecido com isto: 4 de agosto 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, você precisará atualizar seu kernal de inicialização novamente.
fonte
Além de configurar o ponto de resumo de troca no grub mencionado na resposta do Sam73 , descobri que o meu Ubuntu 18.04 também precisa instalar
laptop-mode-tools
:então mude
ENABLE_LAPTOP_MODE_ON_AC=1
no arquivo de configuração:inicie o modo laptop com:
PS Você pode verificar se o laptop inicia ou não com
Se imprimir
0
, olaptop_mode
não está funcionando, caso contrário, indica que funciona bem.fonte