Como habilitar a hibernação?


424

No Ubuntu 12.04 e mais recente, a hibernação foi desativada por padrão no policykit . Como posso ativar isso de volta?


11
Por que eles o desativaram em primeiro lugar? Tem algo a ver com a perda de áudio?
Ali


4
Para responder à pergunta de Ali, ele foi desativado porque muitas pessoas tiveram problemas de hibernação devido a problemas com suas partições de troca. No entanto, no Ubuntu 14.10 Utopic Unicorn, há planos para que a hibernação funcione para sempre, com um botão e tudo.
John Scott

1
Para 15.04, você pode precisar desta pergunta askubuntu.com/q/614662/178596
Wilf

O Hibernate pode não funcionar quando a btrfspartição é usada. Veja aqui askubuntu.com/questions/768136/…
Anwar

Respostas:


334

Se esta resposta não funcionar no Ubuntu 13.10, veja aqui uma resposta alternativa


Você pode seguir a documentação oficial aqui . A hibernação foi desativada no 12.04 para máquinas que não são certificadas com o Ubuntu.

Para habilitar a hibernação, você precisa testar se funciona corretamente executando sudo pm-hibernateem um terminal. O sistema tentará hibernar. Se você conseguir iniciar o sistema novamente, será mais ou menos seguro adicionar uma substituição.

Para fazer isso, comece a editar:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Preencha com isso:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Ou no 14.04 e posterior:

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate
  ResultActive=yes

[Re-enable hibernate for multiple users by default in logind]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

Salvar pressionando Ctrl- Oem seguida, entere depois sair nano pressionando Ctrl- X.

Reinicie e hibernação está de volta!

Ou corra killall unity-panel-servicepara apenas redefinir o menu.

Alguns usuários precisarão executar sudo update-grubpara obter a opção de hibernação disponível no menu de energia. Alguns usuários também podem ter que pelo menos desconectar-se e fazer login para que apareça no menu superior (direito).


1
Essa solução também funciona no shell do GNOME 3.4 com a extensão "Alternative Status Menu".
Robert Wohlfarth

1
@ cuda.geek sim, não vai se preocupar com a coisa toda gui mais, digitando este pequeno comando é mais rápido (ainda mais rápido com apelido ...) :)
Aditya MP

15
Realmente? Essa é a versão mais amigável do usuário para alterar uma configuração tão simples? Está ficando mais feio todos os dias ...
Esteban

1
Ótimo tutorial! Eu havia mudado do windows para o ubuntu e adorando! vocês são incrível :)
gfivehost

8
Eu não acho que esse foi o ponto de Esteban. Não deve exigir magia arcana para ativar a hibernação. Pense em algo no diretório / etc / default em que você altera uma linha de enable_hibernate = "false" para enable_hibernate = "true". Pense em ter uma caixa de diálogo sistema-> configurações que apenas permita a ativação com um aviso "isso pode não funcionar, sua máquina pode não ativar corretamente".
Scott Marlowe

47

Primeiro, você precisa testar se sua máquina suporta hibernação. Teste-o com o comando:

 sudo pm-hibernate
 # or for newer Ubuntus like 17.04
 sudo systemctl hibernate

Ubuntu 16.04 e superior

Para ativar a interface, você precisará executar sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklae preencher com:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

Ubuntu 14.04 e 15.04

Para ativar a interface, você precisará executar o sudo nano /etc/polkit-1/localauthority.conf.d/52-enable-hibernation.confUbuntu 14.04 e 15.04 e preencher com:

[Re-enable hibernate by default]
  Identity=unix-user:*
  Action=org.freedesktop.upower.hibernate
  ResultActive=yes

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

Possui várias estrofes, pois você pode ter vários usuários (de modo que não depende de vários usuários ou upower como gerente, em vez de login1)

ps: documentação mais recente oficial https://help.ubuntu.com/stable/ubuntu-help/power-hibernate.html


1
Funcionou para mim no Ubuntu 15.04 , enquanto a resposta original aceita não.
Mike B.

@MikeB. Isso funcionou porque, desde o Ubuntu 15.04, o sistema principal do Ubuntu começa a usar o systemd - um substituto mais recente para o antigo iniciante. A última seção no código acima com "logind" é para sistemas baseados em systemd. Espero que isso ajude a sua situação. : D
x__x 7/11

Trabalhou para mim no ubuntu 16.04 . único problema foi permissão negada erro que eu resolvi usando sudo.
Sandeep

O primeiro passo sudo pm-hibernateresulta em command not found. Eu também tentei sudo apt install sudo pm-hibernate, o que também não está disponível. Esta é a versão Ubuntu 16.04.
LD James

Sua resposta deve aparecer no topo da lista, mesmo que tenha menos votos, é mais significativo para os visitantes que usam o software atual.
WinEunuuchs2Unix 22/11

32

Além disso, para quem deseja desativar o botão de suspensão (por vários motivos), proceda de forma análoga ...

Escolha qualquer nome de arquivo, mas este é detalhado / convenção:

sudoedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla

Preencha com isso:

[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Ctrl+ O, Enter, Ctrl+X

Não é necessário reiniciar, ele deve desaparecer assim que você entrar no menu de desligamento.


Você quer dizer:ResultActive=yes

1
Não, deveria ser ResultActive=no. A resposta especifica que isso desabilite a suspensão.
Michael Mior 11/06

14

Mais uma coisa:

Quando você deseja adicionar a opção de hibernação ao painel do XFCE , clique com o botão direito do mouse em seu nome (em cima) e selecione properties.

Depois disso, uma tela é exibida:

insira a descrição da imagem aqui

Certifique-se de verificar o Hibernate como eu fiz.


14

Primeiro, recomendo que você teste se o seu laptop oferece suporte à hibernação, porque o motivo pelo qual a hibernação é desativada por padrão é porque às vezes apresenta resultados fatais em algumas máquinas. Teste sua máquina

Ctrl+ Alt+ Te entãosudo pm-hibernate

Sua máquina deve hibernar. Acorde sua máquina após a hibernação e observe se ela se comporta mal ou se age normalmente. Se você tiver alguma anormalidade após a hibernação, recomendamos que você não continue com o procedimento a seguir. No entanto, se funcionar bem, continue a ativar a hibernação pressionando

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

Edite o arquivo aberto e adicione estas linhas:

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Depois disso, reinicie sua máquina e, ao fazer o login, você verá uma opção de hibernação no canto superior direito das configurações.


Por que a reversão?

foi uma reversão equivocada
kelvinelove 13/10

6

Se a resposta com /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklanão funcionar como no meu caso, não se esqueça de excluir o arquivo:

sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

E tente usar o TuxOnIce .


Primeiro verifique se você tem o suficiente de troca. Deve ser do mesmo tamanho ou maior que a quantidade de sua RAM. Comando de uso

free

regra Trocar> Mem. Se não for esse o caso, aumente o tamanho do seu swap. Em seguida, instale o TuxOnIce

sudo add-apt-repository ppa:tuxonice/ppa
sudo apt-get update
sudo apt-get install tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice

Em seguida, você pode tentar fazer um teste de hibernação executando:

sudo pm-hibernate

Não se esqueça de salvar seu trabalho antes de fazê-lo.

Se tudo der certo, seu computador será desligado. Depois de ativá-lo, você terá sua área de trabalho no estado em que estava antes da hibernação.


O tuxonice também funciona para mim, enquanto a hibernação nativa do Ubuntu 14.04 falha por algum motivo!
Leszek

5

Habilitando a hibernação com um script

Traduzi as respostas acima para bashscripts. Isso torna a instalação em várias máquinas menos cansativa.

Script enable-hibernate:

#!/bin/bash
#http://askubuntu.com/a/94963/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
_EOF_
clear
echo
echo 'Hibernate enabled.'
echo

Script disable-suspend:

#!/bin/bash
#http://askubuntu.com/a/154821/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla
[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
_EOF_
clear
echo
echo 'Suspend disabled.'
echo

Nota: Não esqueça dos chmod +xdois scripts para torná-los executáveis.


4

Um comando simples que faz exatamente a mesma coisa que a resposta aceita, exceto não interativamente:

cat <<EOF | sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
EOF

2

Na versão 12.04, ativei com êxito a opção de hibernação no menu do indicador para hibernar. Ainda assim, não consegui retomar com êxito do hibernar. Eu segui estas etapas para corrigir esse problema:

Habilitar o Hibernate no 12.04

Para habilitar o Hibernate, eu segui esta resposta do Dima.

Depois de ativar a hibernação, eu poderia hibernar. Mas o problema é que não consigo retomar com êxito do hibernar. Sempre que inicio o meu PC a partir do hibernate, ele inicia como uma inicialização normal. Então, eu tive que fazer essas coisas para poder retomar do hibernate.

As correções para poder retomar do hibernate

Há duas maneiras de corrigir isso.

1. Editando o /etc/initramfs-tools/conf.d/resumearquivo

  1. Primeiro obtenha o UUID da partição swap.

     sudo blkid | grep swap
    

    Isso produzirá uma linha semelhante a esta:

    /dev/sda12: UUID="a14f3380-810e-49a7-b42e-72169e66c432" TYPE="swap"
    

    A linha atual não coincide com isso. Copie o valor de UUID entre "..."aspas duplas.

  2. Abra o arquivo de currículo

    gksudo gedit /etc/initramfs-tools/conf.d/resume
    

    E nesse arquivo, adicione uma linha como esta

    RESUME=UUID=a14f3380-810e-49a7-b42e-72169e66c432
    

    Não se esqueça de substituir o valor UUID real obtido na etapa 1. Salve o arquivo e saia do gedit

  3. Em seguida, no terminal, execute este comando

    sudo update-initramfs -u
    

Agora você poderá retomar da hibernação

2. Editando o /etc/default/grubarquivo.

  1. Abra um terminal e execute o comando abaixo para abri-lo

    gksudo gedit / etc / default / grub

  2. Haverá uma linha como GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" . Edite a linha a inserir RESUME=UUID=<your-uuid-value-here>após a palavra splash.

    Por exemplo, no meu caso, a linha fica assim após a edição

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a14f3380-810e-49a7-b42e-72169e66c432" 
    

    Certifique-se de ter usado o valor UUID obtido do sudo blkid | grep swapcomando

  3. Então faça este comando

     sudo update-grub
    

Isso também permite que você seja reiniciado com êxito do hibernate.


Testado em duas instalações do Ubuntu, ambas funcionaram


arquive isso como uma pergunta e resposta separadas. Como as pessoas podem procurar por "deixar de retomar da suspensão" e não encontrar sua excelente redação.
Dima

Após sua sugestão, eu criei esta pergunta auto-respondida askubuntu.com/questions/196364/…
Anwar

0

Eu tenho o Ubuntu Gnome 17.04 amd64 no meu notebook. Fiz o seguinte para ativar a hibernação:

$ sudo apt-get install hibernate( origem )

Isso também instalou libx86-1uswsuspvbetool

Então eu poderia hibernar com sucesso sudo systemctl hibernate. Não há pm-hibernateexecutável no meu caminho.

$ sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Inserido: ( origem )

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Instalado https://extensions.gnome.org/extension/755/hibernate-status-button/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.