Fazendo seu Linux hibernar

Neste meu primeiro artigo quero falar de um dos recursos que eu acho mais interessantes do Windows: o hibernar. O boot é extremamente rápido, uma vez que o hibernar apenas cria um "snapshot" do sistema, o grava em arquivo e ao reiniciar apenas carrega esse para a memória. O legal é que também podemos fazer isso no Linux com a ajuda de um patch chamado Software Suspend.

[ Hits: 58.237 ]

Por: Davidson Esteves Nunes em 28/11/2005


Configuração



Depois de tudo instalado, falta editar o arquivo de configuração. Vá em /etc/hibernate e edite o arquivo hibernate.conf.

De acordo com o README, a configuração default não faz muita coisa, apenas salva e restaura o relógio, descarrega alguns módulos que podem travar a hibernação. Se você tem outros módulos no kernel que podem travar ou sistema de arquivos em rede como NFS abertos ou interfaces de rede que precisam ser baixadas antes de hibernar, o lugar de mexer é aqui. Fique à vontade para ler o README todo e cada opção deste arquivo! ;)

Por enquanto vamos observar esta linha:

FilewriterLocation /suspend_file 1000

Ela especifica o nome do arquivo de snapshot e o seu tamanho em MB.

Depois de editar o arquivo e adequá-lo às suas necessidades, salve e execute o comando hibernate. Ele irá gerar o arquivo de imagem no HD e mostrará o seguinte:

# hibernate

hibernate: Creating 1000 MB filewriter target.
ABORTING: resume2 is not setup correctly. Unless you have setup your bootloader
correctly, resuming will most likely fail. To correct this, add
"resume2=file:/dev/hda1:0x8b1d0" to your kernel command line in your
LILO or GRUB configuration file and reboot.
hibernate: Aborting.

Como você pode ver ele gera o arquivo do snapshot, mas como é a primeira vez que você executa o script, é necessário fazer algumas alterações no seu arquivo lilo.conf. Veja como ficou o meu lilo.conf:

image = /boot/vmlinuz-xmas
  root = /dev/hda1
  initrd = /boot/initrd
  append = "resume2=file:/dev/hda1:0xbd18"
  label = Linux2.6_xmas
  read-only

Detalhe importante! O valor hda1:0xbd18 refere-se à posição do arquivo em seu HD, portanto utilize o valor que o script gera na sua máquina, não use o copiar e colar simplesmente. ;)

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Mãos a obra!
   3. Configuração
   4. Testando
   5. Finalizando
Outros artigos deste autor

Implementando a segurança em servicos de acesso remoto

Criando discos virtuais em máquinas remotas

Compilando e testando o novo X11R6.9

Leitura recomendada

As incríveis aventuras de um RedHat 9 migrando para kernel 2.6

Gerência e criação de módulos do kernel

Como acelerar o GNU-Linux

Compilando o kernel no Slackware com pacotes pré-compilados

Transformando seu Linux em live!

  
Comentários
[1] Comentário enviado por lennon.jesus em 28/11/2005 - 14:58h

Cara,

Ainda não tive tempo de testar... Mas já gostei!
Espero que funcione, hehe!
Realmente é uma "mão na roda". A melhor coisa do mundo é poder começar de onde paramos sem maiores enrolações.
Parabéns!

Abraços,
Lennon Jesus

[2] Comentário enviado por humbhenri em 28/11/2005 - 20:27h

Vale lembrar que no Ubuntu 5.10 a hibernação já vem por default

[3] Comentário enviado por diegospeed em 28/11/2005 - 22:24h

Olá,

Muito interessante, vou testar aki...

Artigo muito bomm de grande valia para todos... Parabéns...

Abraço...

[4] Comentário enviado por Grobsch em 29/11/2005 - 07:57h

Cara, já havia baixado o suspend e estava pronto para testá-lo, apenas vou antes atualizar o kernel, quando me deparo com seu artigo, bem providencial. Conversava com o Bruno do BigLinux e ele sugeriu este suspend, parece que ele irá deixar como padrão no Big, e talvez eu o coloque no GoblinX, apesar de não gostar de acrescentar patches ao kernel.

Abs

[5] Comentário enviado por a.fernando em 30/11/2005 - 09:09h

Parabens,

Gostei muito do seu artigo.

O assunto é de extrema utilidade para mim que uso notebook para trabalhar.

Valeu!

[6] Comentário enviado por Grobsch em 01/12/2005 - 13:39h

Hummm... Não consegui ainda compilar para o kernel 2.6.14.3.. o erro:
In file included from kernel/power/atomic_copy.c:10:
include/asm/suspend2.h: In function `fix_processor_context':
include/asm/suspend2.h:132: error: `per_cpu__init_tss' undeclared (first use in this function)
include/asm/suspend2.h:132: error: (Each undeclared identifier is reported only once
include/asm/suspend2.h:132: error: for each function it appears in.)
include/asm/suspend2.h:138: error: `per_cpu__cpu_gdt_table' undeclared (first use in this function)
make[2]: ** [kernel/power/atomic_copy.o] Erro 1
make[1]: ** [kernel/power] Erro 2
make: ** [kernel] Erro 2

Vou tentar mais... qq ajuda será útil...

[7] Comentário enviado por Grobsch em 02/12/2005 - 10:01h

Acabei removendo a tal função e compilei, vou testar hoje.

[8] Comentário enviado por LM25TTD em 05/02/2006 - 19:40h

Alguem sabe como configurar esta função sem conflitar com o driver nvidia?

[9] Comentário enviado por cycne em 28/02/2006 - 19:44h

Muito bom o artido, amigo LM25TTD , tive o mesmo problema!

( aqui é driver nvidia 8178 e kernel 2.6.15 DEBIAN!! :P )

primeiro o hibernate nao funcionava com driver da nvidia , aí achei um patch pro driver da nvidia que resolveu o problema!, aí vem o problema n°2 , o quando a maquina voltava do hibernar e abria o grafico bonitinho , o terminal fica todo como se estivesse fora de frequencia... bom faça o seguinte...
aqui vc vai saber como patchear seu driver nvidia de acordo com a versão
http://wiki.suspend2.net/DistroAndHardwareSetup/Nvidia?highlight=%28nvidia%29

agora vc usa o hibernate com o --force que vai funcionar!

### Resolvendo o problema do console ###
baixe esse patch pro kernel:
http://dev.gentoo.org/~spock/projects/vesafb-tng/

.. inclusive ou escrever um artigo sobre , pois esse patch é muito bom , voce pode mudar a resolução do terminal em tempo real , sem prescisar rebootar , e pode por uma resolução diferente em cada um com o fbset, alem de nao prescisar mais daqueles códigos toscos no lilo ou grub: vga=792
agora vc comenta o vga=
e escolhe a sua resolução assim: append="video=vesafb:ypan,1280x1024-32"

agora vai funcionar q é uma maravilha :) , aqui o meu append= esta assim:
append="quiet resume2=file:/dev/sda1:0xb32530 video=vesafb:ypan,1280x1024-32"

espero ter ajudado!!!!
abraços!!

[10] Comentário enviado por evangelistat em 04/06/2007 - 11:19h

nunca tinha pensado na capacidade do linux hibernar . por isso achei o artigo curioso e interessante .Parabéns.
Sds.

[11] Comentário enviado por xiloba em 28/05/2011 - 22:40h

legal o post.
Estive procurando por isso e também achei as seguintes possibilidades, sem instalar nada no ubuntu 10.04:
para hibernar:
#s2disk
para suspender:
# echo -n > /sys/power/state
:)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts