20 agosto 2008

Problemos típicos com Linux, parte 1

Porque pode ser útil, porque é interessante, porque nem toda a gente pode ou quer comprar a revista Linux Format, partilho aqui neste pequeno post uma coleção de erros em Linux e respectivas soluções, baseado num artigo da Revista LXF de Setembro.

  • ERRO - Can't boot from CD
É um dos problemas ou erros mais frequentes que ocorrem aos novatos nas instalações de sistemas operativos: insere-se um CD na drive e o PC arranca sempre com o Windows. Algumas BIOS mais recentes incluiem um menu de arranque onde se pode selecionar qual o dispositivo que queremos que arranque primeiro e normalmente acede-se a ele premindo a tecla Escape ou F12 assim que apareça algo no écran. Em PCs mais antigos é necessário entrar na BIOS e alterar a ordem de arranque no "boot menu", sendo a BIOS acedida normalmente ao premir a tecla Del ou F2.

  • ERRO - PCI: cannot allocate
Há muitos casos destes e acontecem quase sempre no arranque. O erro tem sempre a mesma origem: a gestão de energia. O problema está com o ACPI (Advanced Configuration and Power Interface) e com os respectivos drivers cujas especificações não estão totalmente implementadas. Para piorar, as instalações feitas a partir dos LiveCDs agravam o problema porque não testam corretamente esse hardware ou não tem os drivers corretos.
Como solução é ir à BIOS e desligar o ACPI. Outra solução é quando o PC arrancar e após passar a BIOS, clicar em Escape para entrar no menu do Grub e depois selecionar a opção que normalmente se usa para o arranque. Desce-se para a linha onde começa com "kernel" e clica-se em E para editar essa mesma linha. No fim dela adiciona-se:

acpi=off noapic

Clica-se em Return e B para recomeçar o processo de arranque e em princípio o problema estará resolvido. Quando se instalar o Linux, ele já deverá escolher os drivers corretos para o ACPI.

  • ERRO - Grub...
Se é apenas isto acima que vês no arranque do Grub é porque o menu do Grub está corrompido. Arranca-se com um LiveCD e quando se estiver já no desktop, acede-se ao terminal, entra-se como root e escreve-se o comando

grub

Continua-se depois com

find /boot/grub/stage1

e deverá aparecer o output com algo como o seguinte exemplo: (hd0.0). Digita-se agora os seguintes comandos (substitui-se o (hd0.0) pelo correto caso não seja este o output) para dizer ao grub qual a partição que está a ser visada para o arranque, e posterior reinstalação do boot loader:

root (hd0.0)
setup (hd0)

E o problema deverá ficar resolvido. A imagem abaixo parece-me bem elucidativa:



  • ERRO - Out of range
  • ERRO - Fatal server error: no screens found
Estes erros acontecem quando a configuração do "screen mode" é incompatível com o monitor. Para resolver esta situação prime-se as teclas Ctrl + Alt +F1 e loga-se como root (sudo para o Ubuntu). Os utilizadores do Debian ou de distribuições derivadas do Debian deverão digitar o seguinte comando para reconfigurar o servidor do X:

dpkg-reconfigure xserver-xorg

Os utilizadores de outras distribuições terão que reconfigurar o ficheiro à mão. Dá-se um salto aonde está o ficheiro de configuração, faz-se um backup dele e depois edita-se o malandro:

cd /etc/X11
cp xorg.conf xorg.conf.bak
vi xorg.conf

Vai-se até à "Section Monitor" e edita-se os "refresh rates" horizontais e verticais, caso se saiba quais são os corretos para o monitor em questão. No caso de não se saber quais são, comenta-se ou apaga-se as resoluções mais altas. Aconselhável comentar ou apagar todas as que sejam maiores que 1024x768. Poderá-se depois aumentar as resoluções no xorg.conf quando o monitor estiver já a funcionar. Se mesmo assim o erro persistir, altera-se o "device driver" para "vesa", normalmente funciona sempre.


  • ERRO - Kernel panic!
É o erro mais parecido com o famoso e vulgaríssimo BSOD do Windows, e pouco se poderá fazer para o resolver para além de se premir o botão "Power". Não, o pontapé não é uma solução! O kernel é o coração do sistema e este erro é normalmente causado por um mau funcionamento com determinado hardware (drivers incorretos, por exemplo). A melhor solução é um upgrade do kernel pois o problema com esse hardware poderá já estar ultrapassado com a nova versão do kernel. Mas entretanto é aconselhável usar uma outra versão anterior do kernel para que se possa fazer o upgrade do mesmo.


Outra solução é identificar o hardware conflituoso. Pode ter havido uma mudança de hardware recente ou ter sido instalado um novo driver, são situações que podem provocar o kernel panic. Pode-se sempre ir removendo hardware e ir verificando se o PC já arranca sem o tal erro.

  • ERRO - Incorret username or password
Ah pois! É um dos erros muitos comuns com os utilizadores de Linux. É necessário arrancar o PC em "single-user" ou em modo recuperação (recover). Para tal prime-se a tecla Escape após sair da BIOS no arranque do PC, para que apareça o menu do boot do Grub. Se a opção do "single-user" ou modo de recuperação não existirem, escolhe-se a linha que começa por "kernel", prime-se em E para editar os parametros. No fim dessa linha adiciona-se o seguinte:

rw init=/bin/bash

Carrega-se em Enter e depois prime-se a tecla B para que o arranque do PC se faça. Agora o Linux em vez de arrancar para uma sessão normal, ela arranca para um terminal Bash. Tal como se fosse em modo de recuperação, o que há a fazer agora é digitar o comando "passwd" seguido pelo nome do utilizador de cuja password se quer alterar. Se não houver username, o comando "passwd" mudará a password do root. Agora basta um reboot do PC para usar a nova password.



Para continuar....

4 comentários:

Boas.

Existe outro erro que aparentemente tb é normal para novatos (como eu) e para o qual ainda nao arranjei solução. O relógio do windows e do Linux não se entendem, porque um deles usa o relógio universal e o outro nao. Se souberes a solução diz qq coisa. abraço

rodrigo,

esse problema acontece porque o windows apenas lida com o relógio de maneira basica, ele mete a tua hora actual na bios e é sempre assim que funciona
no entanto não é esse o processo normal do linux: este mete na bios a hora universal e mostra no desktop essa hora com a correcção do fuso horário.

se viveres na zona UTC não tens diferença, mas se viveres fora dela a unica forma de igualares os dois é meteres o linux a funcionar igual ao windows e isso é conseguindo fazendo o linux ignorar o fuso-horário onde te encontras...

uma possivel solução é editares o /etc/sysconfig/clock e mudar o valor boleano "UTC=" que só pode ter "true" ou "false"

Em ubuntu não existe o /etc/sysconfig......

mas tem que haver um substituto

de qq maneira, tudo o que é preciso fazer é não regular um fuso-horário, em mandriva basta escolher "UTC" na lista de fusos horários.