O Ubuntu 16.04 não é desligado após a suspensão ou hibernação

11

Na verdade, minha pergunta pode parecer idêntica a este aqui neste fórum (e também este em outro lugar ); de fato, a pergunta é a mesma, mas eu estou perguntando de qualquer maneira porque eu posso dar mais informações e porque eu tentei alguma solução encontrada na web (possivelmente piorando as coisas).

Eu costumava hibernar o Ubuntu 15.10 (fechando a tampa). Agora que eu atualizei para 16.04 (eu achei que era uma coisa boa, já que esta versão é LTS, diferente da 15.10), eu não posso mais usar hibernação (nem suspensão!): Se eu tentar usá-lo, o Ubuntu não t desligar, apenas a tela fica preta, o led de energia está ligado, e eu não posso fazer nada além de desligá-lo manualmente (pressão longa do botão de energia). Quando eu ligá-lo novamente, vejo as seguintes linhas

então o Ubuntu é inicializado.

De aqui eu tentei com

sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state

e

sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state

Apenas o primeiro parcialmente trabalhado e apenas uma vez: parcialmente quero dizer que após o encerramento brutal a sessão foi recuperada.

Depois tentei seguir esta sugestão . Eu não entendi os comentários escritos após os comandos, então eu literalmente inseri os comandos como eles são (pensando que algum erro como "este comando / pasta não existe" teria ocorrido se houvesse algo para substituir nos comandos ):

EDITAR

cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon

mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u

Talvez tenha sido uma ideia terrível, já que agora eu entendo isso.

No final, encontrei a questão acima e fui aqui , mas não sei o que fazer.

EDIT 2 No momento, se eu entrar

...$ sudo swapon -s

Eu não obtenho absolutamente nada

...$
    
por Enrico Maria De Angelis 04.05.2016 / 21:59

4 respostas

5

Forçando o hibernate a desligar a máquina:

Depois de olhar por um longo tempo para uma resposta a isso que realmente abordou o problema (não relacionados), eu encontrei uma dica aqui que fez o trabalho por mim:

Crie um arquivo no diretório pm config:

sudo vim /etc/pm/config.d/hibernate_mode

que define a variável HIBERNATE_MODE da seguinte forma:

HIBERNATE_MODE="shutdown"

Depois de fazer isso, o hibernate desligou a máquina quando concluída, como esperado. Uma explicação para o que a configuração HIBERNATE_MODE faz está no manual para pm-hibernate :

  

Método padrão para desligar o sistema quando   hibernando. Se não estiver definido, o sistema usará o padrão do kernel como   valor padrão. Verifique / sys / power / disk para valores válidos. O padrão   valor será cercado por [colchetes].

Meu padrão nesse arquivo era platform . Definir a variável acima como shutdown substitui isso e obtém o que queremos que aconteça.

Informações relacionadas e dicas para fazer o hibernate funcionar corretamente:

Quanto a esses "problemas relacionados", todos parecem ter dicas de depuração rápidas e em hibernação:

  1. Verifique se o comando sudo pm-hibernate realmente faz alguma coisa. Se não, nenhuma dessas outras dicas fará qualquer diferença. Se não funcionar, certifique-se de que 1) o tamanho da sua partição de troca é maior que o da sua RAM e 2) a inicialização segura está desabilitada no seu BIOS.

  2. Somente quando o comando funcionar, procure integrar o hibernate ao sistema como desejar. Alguns dos mais comuns:

    • Adicione o hibernate ao menu do Ubuntu: Este parece ser a melhor resposta para mim. A documentação oficial também tem uma versão ligeiramente diferente.
      Nota: uma vez que o hibernate é adicionado ao menu do Ubuntu, você também pode precisar corrigir a chamada alternativa para sudo systemctl hibernate . Aparentemente, (pelo menos para o Ubuntu 16.04) a opção de menu do Ubuntu chama sudo systemctl hibernate em vez de sudo pm-hibernate . systemctl hibernate foi corrigido para mim adicionando o seguinte conteúdo ao arquivo /etc/systemd/sleep.conf :

        

      [Sono]
        HibernateMode = shutdown

      Se o arquivo ainda não existir, você poderá criá-lo. Mais informações aqui .

    • Altere o comportamento do botão liga / desliga (por padrão, ele é exibido no menu interativo): Para alterá-lo para hibernar diretamente ou desligar, é necessário modificar o gsettings entrada. Muitas outras respostas passam pelo modo GUI se isso flutuar no seu barco. Para ver as opções disponíveis, use gsettings range org.gnome.settings-daemon.plugins.power button-power

por B T 15.10.2016 / 07:45
2

Ao ver sua última imagem e EDIT 2 , eu posso entender que o Ubuntu não consegue encontrar uma partição de swap no seu sistema. Portanto, sugiro que você crie uma partição de troca igual ou maior que o tamanho da RAM e tente novamente executando

sudo pm-hibernate

Você pode criar uma partição swap usando o GParted, execute isto para instalá-lo

sudo apt-get install gparted
    
por DigiGoon 16.05.2016 / 07:58
2

Eu tive o mesmo problema após atualizar de 15.10 para 16.04:

  • Fechar a tampa não fez nada
  • A suspensão manual com o item de menu na bandeja do sistema resultou em um estado suspenso pela metade com a única saída para redefinir o sistema.

Eu resolvi esses problemas por

  1. atualizando o kernel para o 4.4.8 (depois que esta suspensão do menu funcionou para mim)
  2. Adicionando a linha HandleLidSwitchDocked=suspend ao /etc/systemd/logind.conf (que fez a tampa funcionar novamente)

Acho que os dois problemas são bugs que devem ser corrigidos ( link ).

    
por penguinwizzard 17.05.2016 / 13:54
0

O Hibernate foi desativado por padrão.

Tente isso

sudo pm-hibernate
  

Se o teste de hibernação funcionar, você pode continuar usando o sudo   comando pm-hibernate quando você quer hibernar.

     

Você também pode ativar a opção de hibernação nos menus. Para fazer isso, use   seu editor de texto favorito para criar   /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla.   Adicione o seguinte ao arquivo e salve:

[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

Leia mais sobre a hibernação 16.04 neste link

Para desligar

sudo shutdown -h now

Para reiniciar

sudo shutdown -r now
    
por jarvis 12.05.2016 / 09:22