Não é possível retomar após a hibernação

8

Estou usando o hibernate com o Ubuntu 16.04 sem problemas, mas de repente ele parou de funcionar corretamente. Se eu hibernar no menu sudo pm-hibernateliga / desliga ou usando , ele desliga o computador, mas quando eu o ligo novamente e escolho o Ubuntu no menu grub, ele apenas exibe uma tela preta. Tentei algumas soluções (listadas abaixo), mas nenhuma funcionou.

Estou realmente decepcionado que, a cada versão do Ubuntu que uso, geralmente tenho problemas semelhantes com o hibernate (com laptops diferentes).

PS: Eu tenho inicialização dupla com o Windows 10, mas o hibernate estava funcionando perfeitamente por um longo tempo.

Não funcionou:

Karim Sonbol
fonte
Eu tenho o mesmo problema com um laptop meu - quando eu voltar da hibernação - tela preta. Para mim, nunca estava funcionando. A "solução alternativa" para o meu laptop é pressionar ALT + CTRL + F1, aguarde alguns segundos e pressione ALT + CTRL + F7. Isso traz de volta à vida (no meu laptop).
Vanessa Deagan
Obrigado pela sugestão, mas não funcionou para mim.
Karim Sonbol
Que tal apenas fechar a tampa e abri-la novamente? (tentativa vale a pena!)
Vanessa Deagan
Mais uma vez obrigado @VanessaDeagan, mas ainda nada aconteceu.
Karim Sonbol
1
Se você ainda não o viu: bugs.launchpad.net/bugs/1743094
Steve

Respostas:

9

Eu tive os mesmos problemas. Há um erro no kernel mais recente no 16.04. Aqui estão as etapas explícitas que eu fiz. Faça o primeiro e, se resolver o problema para você, pare aí. Se não, continue.

1. Configure o computador para inicializar com o kernel anterior

Começar com:

uname -r

O meu diz 4,13 ... Então faça:

grep -i "menuentry '" /boot/grub/grub.cfg

Você verá as diferentes entradas do menu no grub. No meu caso, junto com "Ubuntu, with Linux 4.13 ..." havia uma opção de menu para inicializar com o kernel anterior. Dizia o Ubuntu, com o Linux 4.10.0-28-generic . Na mesma linha, você tem algo como 'gnulinux-4.10.0-28-generic-advanced ... (um monte de caracteres aqui)' Copie esse texto e, então, precisamos dizer ao grub2 para inicializar com esse kernel por padrão:

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

Então eu inseri esta linha:

GRUB_DEFAULT = "gnulinux-advanced-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-generic-advanced-4a50e1e8-56d9-413e-9954-55648888a31d"

Por favor, não copie esta linha literalmente, mas use a saída do comando grep anterior, como dito. Em seguida, salve e,

sudo update-grub

Em seguida, reinicie e verifique se a saída de "uname -r" é o kernel mais antigo (4.10 ... no meu caso). Você pode hibernar agora ou não. Caso contrário, prossiga para a próxima etapa.

2. Instale itens diferentes para hibernar que o padrão:

No meu caso, o uso do kernel antigo se livrou da tela preta da morte e me permitiu retomar após a hibernação, mas o conteúdo da imagem do disco foi apagado, ou seja, era idêntico a uma reinicialização, não à hibernação. Então eu instalei algumas coisas que hibernam de maneira diferente:

sudo apt-get install uswsusp

Depois feche o terminal, abra-o novamente e digite:

sudo s2disk

Isso deveria hibernar o computador. Se, depois de retomar, tudo estiver como você o deixou, então você resolveu o problema. Mas você ainda precisa seguir para a etapa 4 para informar ao Ubuntu que deseja usar as novas coisas por padrão e também que deseja ter opções para hibernar nos aplicativos.

3. Diga ao grub 2 onde a partição swap está:

Ainda não funcionou para mim, então tive que dizer ao grub onde está a partição swap:

cat / etc / fstab

Eu podia ler lá "# swap estava em / dev / sda2 durante a instalação", então editei o grub novamente:

sudo gedit / etc / default / grub

E acrescentou:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = desativar currículo = / dev / sda2"

A parte importante é "resume = / dev / sda2", mas a coisa anterior (intel blablabla) existe por causa de outros motivos. Bem, o próximo passo é:

sudo update-grub

Reinicie e tente novamente hibernar com algumas coisas acontecendo (por exemplo, abra um filme com vlc) com:

sudo s2disk

Se o material ainda estiver lá após a retomada, você resolveu o problema.

4. Dizendo ao Ubuntu para usar o novo material de hibernação que você instalou em vez do padrão:

Agora você precisa dizer ao Ubuntu para usar o s2disk para hibernar, em vez do material que vem por padrão:

sudo gedit /etc/pm/config.d/00sleep_module

E insira lá:

SLEEP_MODULE = "uswsusp"

Salve e feche o arquivo. Então:

sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

E insira lá:

[Reativar a hibernação por padrão na parte superior]

Identidade = usuário unix: *

Ação = org.freedesktop.upower.hibernate

ResultActive = yes

[Reativar a hibernação por padrão no logind]

Identidade = usuário unix: *

Ação = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; org.freedesktop.login1; org.freedesktop.login1.hibernate-multiple-sessions; org.freedesktop.login1.hibernate-ignore- inibir

ResultActive = yes

Reinicie e tente novamente.

5. Se depois de executar a Etapa 4, você não puder hibernar usando sudo systemctl hibernate, faça o seguinte

A etapa 4 não é suficiente para mudar para uswsusp no Ubuntu 18.10.

Edite o serviço de hibernação

sudo systemctl edite systemd-hibernate.service

E adicione o seguinte

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

Atualizar systemd

sudo systemctl daemon-reload

Teste a configuração executando o seguinte

sudo systemctl hibernate

Mephisto
fonte
Obrigado, escolhi o kernel antigo no menu de inicialização e o hibernate funciona com ele. Vou verificar as outras etapas do grub de atualização mais tarde, mas espero que elas corrijam o kernel atual em breve.
Karim Sonbol
Na verdade, escolhi o kernel antigo uma vez no menu grub e depois hibernei. Quando o abro novamente e escolho a opção "Ubuntu" normal sem opções avançadas, ele lembra a minha escolha e usa o kernel antigo, e felizmente todos os meus aplicativos abertos estão no lugar.
Karim Sonbol
existe algum motivo especial para não simplesmente desinstalar o novo kernel e seguir o antigo?
Lrkwz 23/0618
3

@karim eu tive o mesmo problema aqui é como corrigi-lo:

Use o UUID da partição swap em vez de seu ponto de montagem no parâmetro RESUME resume=UUID=#em ambos /etc/default/grube/etc/initramfs-tools/conf.d/resume

Crie uma entrada para a partição swap /etc/fstab sem um ponto de montagem semelhante a este

# Entry for Swap : 
UUID=# none  swap    sw              0       0

Em /etc/default/grubeu usei uma entrada separada para retomar a hibernação

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Crie um kit de políticas na autoridade local (pkla), conforme explicado por @Mephisto

Atualizar initramfs e GRUB

sudo update-initramfs -u -k all
sudo update-grub

Reinicie, abra alguns aplicativos e use systemctl hibernate(sem sudo) para ver se funciona

Roey
fonte
Eu tinha tudo configurado, exceto 'sudo update-initramfs -u -k all' parecia corrigir o meu problema. Obrigado.
Zamicol 02/12/19
2

Eu também estava tendo esse problema me atormentava ... e uma correção após várias tentativas era reinstalar o Ubuntu 18.04, e agora está funcionando perfeitamente. Também estou usando o driver "testado" da Nvidia, pois a Nvidia era a culpada antes.

Talvez tenha sido o ppa "sudo add-apt-repository ppa: graphics-drivers" que instalou "Extra" Stuff e / ou o driver 396 que estragou a capacidade de hibernação do meu laptop. De qualquer maneira, ele funciona perfeitamente no momento da gravação com o driver 390 testado da NVidia. Antes de mudar para o driver Nouveau funcionou.

markackerman8-gmail.com
fonte
2

Obrigado a todos por suas respostas. O problema foi resolvido no Kernel 4.15. Eu apenas tentei agora e funciona. Aparentemente, o kernel do HWE o corrigiu ( linux-generic-hwe-16.04 package).

Se você estiver usando o Ubuntu 16.04, basta instalar as atualizações mais recentes para atualizar o kernel. Você pode ler mais detalhes sobre isso aqui .

Minha versão atual do kernel é 4.15.0-33-genérica.

Karim Sonbol
fonte