Desativado por padrão em várias distros Linux, o recurso de hibernação despeja o conteúdo da RAM no disco, desligando completamente a máquina e agilizando o processo de boot ao reabrir tudo que estava em execução!
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
Introdução
O Hibernate, modo de hibernação ou simplesmente hibernar, é uma opção que permite que você salve o estado do sistema diretamente no seu disco rígido, de modo que quando você liga-lo de volta, todos os programas podem ser restaurados de onde parou e você pode começar a trabalhar com o mesmo estado do sistema que estava antes de desligar, sem perder nenhum dado.
Estava usando o Chrome com 15 abas abertas e música tocando? Tudo será retirado da RAM e despejado no disco ao desligar. Quando ligar novamente, o sistema estará logado, com o Chrome aberto e a musica tocando novamente.
No Ubuntu, o Hibernate costuma vir habilitado porém “indisponível” mas é simples ativá-lo. Em sistemas em que ele está desativado, ensino como habilitá-lo!
Antes de continuarmos, há algumas coisas importantes que você precisa saber para ativar o Hibernate.
Por que o Hibernate não está ativado?
Bem, o Hibernate não funciona perfeitamente em diversas configurações de software de diversas distros Linux. Se o modo de hibernação não funcionar corretamente, isso pode causar perda de dados após o início do sistema.
Pelo risco de perder dados, os desenvolvedores preferiram deixar sua ativação á gosto do usuário – infelizmente isso não contempla a todos, sendo algo pouco amigável.
Suspender ou Hibernar?
Há uma bela diferença aqui!
Provavelmente seu sistema possui a opção nativamente de Suspender.
A suspensão do sistema apenas paralisa ele, mantendo todos os dados na RAM e diminuindo absurdamente o estado de funcionamento do processador e desligando componentes não-vitais, como placa de vídeo e parte do processador.
Como a RAM opera com baixa tensão, em torno de 1.2 volts, o consumo de energia é bem menor.
Porém a desvantagem do modo Suspensão é que se acabar a energia, tudo que você estava fazendo será perdido, e digo mais: Dependendo do que você estava fazendo, poderá corromper o sistema.
Aqui, vou ensinar como Hibernar o sistema, que é despejar as coisas da RAM no HD, permitindo que você tire o sistema da energia e continua com seus dados íntegros, tal qual o Windows 10 suporta.
Meu sistema é capaz de hibernar?
Uma forma de descobrir se o seu sistema possui o modo de hibernação ativo ou não, salve seu trabalho e prepare-se para desligar o computador. Porém, em vez de desligá-lo, rode este comando no terminal:
$ sudo pm-hibernate
Ao executar o comando, seu computador será desligado. Volte a liga-lo e veja se todos os seus programas que estavam em execução antes de desligar ainda estão em execução, se voltam normalmente. Se todos os programas voltarem ao normal, o Hibernate está funcionando corretamente.
Erro?
OBS: É possivel que neste ponto você veja um erro semelhante a esse na tela:
hibernate swap header not found
Então seu sistema utiliza Swap Files em vez de Partição Swap e esta Swap File não está configurada apropriadamente para hibernar. Você terá que desligar o sistema pelo power forçadamente; Mas não se preocupe, se salvou seu trabalho, não há risco de corrompê-lo aqui.
Continuemos a publicação, logo explicarei como resolver este pequeno infortúnio.
Mais uma observação
Existe mais um problema que não posso deixar de citar. Como eu disse acima, o hibernate salva todos os seus dados que estão na RAM na partição swap que você configurou quando instalou o sistema. É por isso que para fazer uso da hibernação, a partição swap deve ser igual ou maior que a RAM! – Válido também para sistemas que usam Swap Files.
Normalmente somente partições swap são suportadas para a hibernação de forma nativa!
- “Êpa pera lá, muita calma ladrão”, o Windows tem hibernação e até usa um arquivo para tal.
O Linux não tem esse recurso?
Relaxa, tem sim. Desça a publicação até o título “SWAP File”, onde explico como ativar a hibernação em sistemas que usam Swap Files em vez de Partições. Se você usa Partição Swap, continue lendo.
Partição Swap
Verifique se sua Swap foi criada e está ativa com:
$ free -h
Se não estiver nada na linha “Swap”, ou ela não existir, você precisa criar uma partição swap usando o Gparted ou outro particionador via LiveUSB.
Também veja se você tem a mesma quantidade de espaço na Swap = a capacidade da sua RAM.
Se tem 8Gb de RAM, teremos 8Gb de Swap.
Se tem 16 Gb de RAM, serão 16Gb de Swap.
O problema é: Você precisa garantir que o sistema permita salvar tudo que está na RAM, ou terá problemas de sistema corrompendo! Caso a Swap não acomode todos os dados da RAM no disco, você também verá um travamento anormal do sistema.
Ativar o Hibernate em Partição Swap
Execute estes comandos para ativar a hibernação:
$ sudo -i
Vá até a pasta:
# cd /var/lib/polkit-1/localauthority/50-local.d/
Edite o arquivo:
# nano com.ubuntu.enable-hibernate.pkla
Se não funcionar ou não existir, tente pelo caminho /etc em vez de /var/lib!
Copie e cole as linhas abaixo no arquivo usando seu editor de textos favorito e salve-o:
[Reative o hibernate por padrão em upower]
Identity = unix-user: *
Ação = org.freedesktop.upower.hibernate
ResultActive = yes[Reative o hibernate por padrão no logind]
Identity = unix-user: *
Action = org. freedesktop.login1.hibernate
ResultActive = yes
Dê logout ou reinicie seu sistema.
Depois de fazer o login, você verá a opção de hibernação no menu de energia do sistema.
Swap File
Pois bem. Os sistemas mais modernos, como a exemplo o Ubuntu 18.04 LTS, não fazem mais uso de partição SWAP, e sim de Swap File. – Abordamos como gerenciar e expandir seu Swap File nesta publicação! Será importante para poder hibernar com segurança.
Para fazer uso da Swap File, proceda da seguinte maneira:
Primeiro, crie um arquivo swap:
# fallocate -l 256m /swap # mkswap /swap
256: refere-se ao tamanho em MBs (‘m’ depois disso). Defina isso por pelo menos metade do tamanho da sua RAM.
/swap: é uma localização do seu arquivo swap. Pode estar localizado em qualquer partição (raiz ou home, por exemplo).
Adicione isto ao final do arquivo /etc/fstab:
/swap swap swap defaults 0 0
Agora pare o uso de swap:
# sysctl -w vm.swappiness = 1
Crie um arquivo chamado local.conf em /etc/sysctl.d e adicione a variável kernel lá para que ele fique:
vm.swappiness = 1
Ative o arquivo de troca:
swapon /swap
Agora use uswsusp, que é um método de suspensão alternativo para o kernel do Linux que pode usar swap file em vez de uma partição swap e também suporta recursos como compressão e criptografia.
Instalação
Instale-o do repositório:
# sudo apt install uswsusp
Configure o uswsusp:
# dpkg-reconfigure -pmedium uswsusp
Na pergunta “continuar sem um swap válido?”, resposta sim.
Na pergunta “Trocar espaço para continuar de:”, selecione a partição em que o arquivo acima foi criado, por padrão costuma ser na raíz.
Responda a “Encrypt snapshot”? e “Mostrar tela inicial?” como você quiser, a primeira criptografa o conteúdo do arquivo de hibernação, a segunda pergunta se quer mostrar a tela inicial (sim) ou ir direto para a área de trabalho (nao).
Você pode ter que adicionar seu usuário ao grupo powerdev:
# sudo usermod -a -G powerdev $USER
Normalmente, um arquivo uswsusp.conf se parece com isto:
# /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both resume device = /dev/sda1 compress = y early writeout = y image size = 238941634 RSA key file = /etc/uswsusp.key shutdown method = platform resume offset = 8288
O “resume offset = 8288” é onde o swapfile realmente está. Você pode obter este valor executando:
# swap-offset /swap
O “resume device” deve ser a partição onde está / e não o arquivo de troca.
Note que depois de editar o arquivo /etc/uswsusp.conf , você pode precisar executar:
# update-initramfs -u
Para testar a hibernação:
s2disk
Isso gravará o conteúdo da RAM no arquivo de troca e encerrará o sistema. Pressione o botão de energia para acorda-lo. Para ativar este método como o sistema padrão para hibernação, edite /usr/lib/hal/scripts/linux/hal-system-power-hibernate. Existe um bug neste script e ele irá procurar por s2disk no lugar errado, você terá que editá-lo para que fique assim:
/sbin/s2disk
Este script está no pacote HAL, o que significa que ele será interrompido se o HAL for atualizado. Se o hibernate não funcionar após uma atualização, você terá que reeditar o /usr/lib/hal/scripts/linux/hal-system-power-hibernate. Uma boa ideia seria fazer um backup do arquivo para reinserção rápida após uma quebra de atualização.
Se o s2disk hibernar, mas o initramfs falhar ao ver o seu arquivo de troca na inicialização e o sistema continuar a inicializar normalmente como se o arquivo de swap não estivesse lá, você precisará adicionar o gancho “resume” ao seu/etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda1 quiet splash"
Onde “/dev/sda1” é uma partição onde seu arquivo de swap está localizado.
Depois disso, execute “update-grub2” para recriar o initramfs.
Se você quiser bloquear a tela, salve a troca em disco (caso seu sistema fique sem energia) e suspenda para RAM (para reiniciar rapidamente se ainda tiver energia), crie um script chamado /usr/local/bin/gotosleep contendo:
/usr/bin/xscreensaver-command -lock sleep 2 sudo /usr/sbin/s2both
Certifique-se de que o sudo não lhe pedirá uma senha:
sudo visudo -f /etc/sudoers.d/local
%powerdev ALL=NOPASSWD: /usr/sbin/s2both, /usr/sbin/s2ram
Conclusão
Com a hibernação ativada, você terá o mesmo suporte que o Windows 10 no aspecto de hibernar e ter bom desempenho para acordar o sistema rapidamente.
#UrbanCompassPony
Fontes:
linuxandubuntu
vadim-kirilchuk-linux
wiki.debian
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.