Resolvendo o problema de “Begin: Waiting for root filesystem” e contagem de memória…

Depois de ficar sem tempo para mexer no Linux devido ao meu curso de Eletrônica, me desiludi de vez e resolvi dar adeus ao sistema das Trevas. Pensei em voltar para o Slackware, mas alguns eventos não me deixaram com paciência de baixar os dois primeiros cds e, então, resolvi partir para outra distro.

Mas qual usar? Pensei: se existem várias distros baseadas no Debian, como seria o Debian em si? Resolvi experimentá-lo. Como eu sei que a distribuição estável – Etch – tem 21 CDs ou 3 DVDs, deduzi que não era necessário baixar isso tudo e fiz o download apenas do primeiro disco.

A instalação gráfica deixaria a Microsoft com inveja, de tão simples que é, uma prova de que o Linux está, sim, se aproximando do desktop do usuário final.

Depois do primeiro boot, descobri que a distribuição estável possui alguns programas antigos, como por exemplo o Gnome 2.14 – foi por isso que eu o escolhi – e o kernel 2.6.16.

O primeiro problema ocorreu quando eu fui ver o monitor do sistema, algo similar ao gerenciador de tarefas do Windows: o Gnome, sem nenhuma firula, ocupava somente 56MB de RAM! Isso é um paraíso! E depois que eu personalizei algumas coisas, o consumo subiu para meros 85 MB! Isso mesmo: no tempo em que os winlosers estão se apertando para comprar mais e mais pentes de memória para rodar o Vista, o Linux consegue rodar com todos os seus recursos ocupando cerca de 10x menos memória! Mas, foi quando eu olhei para baixo e percebi que o kernel estava reconhecendo apenas um pouco mais de 800MB do 1GB que tenho de RAM. Como minha placa é onboard, é normal que o sistema reconheça apenas 992 MB de RAM, mas esse índice estava muito abaixo do normal!

Ao pesquisar na Internet, logo descobri a causa do problema: o kernel padrão do Debian é otimizado para o processador 486 e vem com o reconhecimento de altas quantidades de memória desabilitado por padrão. Assim, a solução é atualizar para um kernel otimizado para a arquitetura i686, ou amd64 ou o que for o seu caso. Além do mais, o gerenciador de atualizações na barra de tarefas do Gnome, herdado do Ubuntu, estava insistindo para que eu atualizasse o kernel para… a mesma versão que estava instalada!?!?

Assim, no “momento Frankenstein”, eu baixei o pacote do kernel mais atual disponível (2.6.24-1) da árvore Lenny, que é a distribuição Teste, e o instalei via GDebi. A instalação foi tranqüila e o sistema colocou a entrada dos dois kérneis no menu do Grub. Você pode baixar a imagem mais recente do kernel disponível em:

http://packages.debian.org/lenny/i386/linux-image-2.6.24-1-686/download

Aí, fui eu bootar no kernel novo para ver se o problema da memória estava resolvido e eis que no meio do processo me aparece um…

Begin: Waiting for root filesystem

A mensagem era clara: o kernel não conseguiu encontrar o sistema de arquivos raiz. Mas por quê? Temia que todo o sistema tivesse sido estragado mas, consegui iniciar normalmente pelo kernel antugo. Nisso, descobri a razão da mensagem pesquisando na Net.

Até aproximadamente o kernel 2.19, os discos rígidos ide eram referenciados como /dev/hda, /dev/hdb e assim por diante. A partir do kernel 2.20, esses dispositivos passaram a ter a mesma denominação dos SCSI ou SATA: /dev/sda, /dev/sdb, etc… E a entrada no menu.lst do Grub não atualizou isso!

Para resolver é muito simples: abra um terminal, logue-se como root e digite

nano /boot/grub/menu.lst

Ou, se você for masoquista:

vi /boot/grub/menu.lst

Procure as entradas (são duas) referentes ao seu novo kernel e substitua o hda por sdam ou outra letra, de tal forma que fique assim:

title Debian GNU/Linux, kernel 2.6.24-1-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-1-686 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.24-1-686
savedefault

title Debian GNU/Linux, kernel 2.6.24-1-686 (single-user mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-1-686 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.24-1-686

Salve o arquivo e saia do editor, mas, ainda não acabou. Abra no mesmo editor o arquivo /etc/fstab e refaça as alterações que você fez no grub, senão, o sistema de arquivos não poderá ser montado. Baseie-se pelo meu:

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / reiserfs notail 0 1
/dev/sda6 /home reiserfs defaults 0 2
/dev/sda5 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Agora, muita atenção: salve o arquivo e saia do editor. As alterações no fstab têm efeito IMEDIATO. Logo, após fechar o editor, ainda como root, digite “reboot” em seu terminal e aperte Enter. Ignore todas as mensagens de erro que vão aparecer (hahahahaa).

Agora, ao selecionar seu novo kernel no Grub, seu sistema vai bootar normalmente. Você pode, então, remover o pacote do kernel anterior pelo Synaptic mas ATENÇÃO: se você fizer isso, ele vai teimar em reeditar o menu.lst e colocar apenas a entrada do novo kernel com os dispositivos errados (hda). Logo, após remover o pacote do kernel antigo, edite de novo o menu.lst substituindo o hda por sda, senão seu sistema vai travar no próximo reboot e você vai precisar de um live-cd para editar o dito arquivo. Lembre-se que, se você possui o Windows em dual-boot, também será necessário alterar a entrada desse sistema no Grub.

Após atualizar o kernel, toda sua memória será reconhecida. Se você tiver 4GB ou mais de memória, baize a imagem otimizada para 686 cujo pacote termina com bigmem, da árvore do Lenny.

Publicado em Debian. 3 Comments »

3 Respostas to “Resolvendo o problema de “Begin: Waiting for root filesystem” e contagem de memória…”

  1. LRRicardo Says:

    Bom artigo! Era o que eu estava procurando… pensava eu: -Será que é *somente* editar o /boot/grub/menu.lst e o /etc/fstab ? Estava na dúvida se não haveria outros arquivos a editar…
    Mas, amigo… por que você não instala um kernel otimizado? Tipo o do sidux?

    Ricardo

  2. José Says:

    Cara, tu não testou o que tu escreveu né?

  3. Jessandro Says:

    num é que funcionou aqui. 😀


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: