28 agosto 2008

Problemos típicos com Linux, parte 2

Este post é a segunda parte do artigo "Problemas típicos com Linux", onde continuo a descrever erros comuns e suas soluções, baseado num artigo da Linux Format de Setembro.

  • ERRO - Run fsck manually
Há dúzias de variações deste erro que normalmente ocorrem durante o arranque do linux e por vezes resultam num aviso que o sistema de ficheiros da partição root passou a "Read only". Ora isto significa que se o Linux arrancar, não poderás fazer coisa alguma nele! A solução passa por arrancares com um LiveCD pois assegura que o disco rígido não é mexido nem alterado no processo de arranque e tem-se acesso a ferramentas para reparar o sistema de ficheiros danificado. O comando que será preciso é o:

fsck -f /dev/drive

Substituindo a "drive" pela partição "root" que normalmente costuma ser o "sda1", o que não quer dizer que seja o teu caso. Mas a descrição do erro original contém essa informação, basta tomar atenção a isso. Não é preciso dizer que para se usar o comando acima é necessário ter previlégios de administrador, o que significa que se for usado um LiveCd da Ubuntu, os utilizadores precisam de criar uma conta de root no Ubuntu LiveCD digitando no terminal:

sudo passwd root
sudo bash



  • ERRO - Device is busy
Quem é que não usa as pen usb ou discos rígidos externos e já não aconteceu ao tentar-se desmontá-los, o dispositivo recusa-se alegando que ainda está a ser usado? Claro que podes desligá-lo à mesma numa de "quem é que manda aqui, hem??", mas arrisca-te a que aquele filme ou aquelas imagens que tinhas lá enfiado, se percam... Também é certo que podes evitar essa perca de dados ao escreveres na linha de comandos "sync", forçando os dados em cache a serem imediatamente escritos no tal dispositivo malandro, mas continuas a não poder desmontar o tal dispositivo...
Para o conseguires resolver, terás que usar o comando "lsof ponto-de-montagem" que irá listar todos os processos que estão a aceder ao dispositivo ou a ficheiros dele, podendo assim saber-se qual o PID do processo que se pode "matar".
Tentando exemplificar com um dispositivo xxx:

>umount /mnt/xxx
umount: /mnt/xxx: device is busy
>lsof /mnt/xxx
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
smbd 15900 root cwd DIR 8,33 4096 2/mnt/xxx
>kill -9 15900
>umount /mnt/xxx



  • ERRO - Server not found

Este é um dos erros clássicos! Ligas o PC, esperas um minuto pelo arranque, abres o Firefox com a tua página favorita mas ele apenas te mostra isto:



O problema até que é simples, apenas não tens ligação à net. Só que as causas podem ser muitas e variadas.
Tens o modem ligado? E o router? Fichas dos cabos bem enfiadas? Tens os leds que indicam sinal de rede a piscarem no modem e/ou router? Se for rede ethernet, já verificaste se os pequenos leds junto à ficha na placa de rede piscam? Se o teu Linux está ligado por rede sem fios, já verificaste as ligações físicas que existam? Se te parece que está tudo ok, podes usar alguns comandos para teres mais informações sobre o que se passa. O comando "ifconfig" dá-te muita informação sobre a rede, tal como saberes se tens um ip atribuído ou não. Repara no "eth0" para uma ligação à rede com fios, e no "ath0" ou wlan0" se for uma rede sem fios, e toma atenção ao endereço "inet" se tem um ip.
Exemplo duma rede com fios abaixo, com ip: 192.168.1.3:

ifconfig
eth0 Link encap:Ethernet Endereço de HW 00:30:05:43:c3:a3
inet end.: 192.168.1.3 Bcast:192.168.1.255 Masc:255.255.255.0
endereço inet6: fe80::230:5ff:fe43:c3a3/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:747398 erros:14 descartados:0 excesso:0 quadro:14
Pacotes TX:584949 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:831659645 (793.1 MB) TX bytes:178373588 (170.1 MB)
IRQ:19 Endereço de E/S:0x3000


No caso de não haver "ip" atribuído, podes tentar "religar" a rede com estes dois comandos:

ifconfig eth0 down
ifconfig eth0 up


Podes tambem tentar usar o comando "route" para te certificares que existe apenas um endereço gateway. Se houver mais que um, remove-os usando o comando "route":

route del gateway_adress


  • ERRO - MSN não se liga
Não interessa qual o IM que se use, seja o Pidgin, Kopete, Amsn, ou outro, acabará por acontecer que ele se recuse a ligar ao servidor. O que acontece é que o msn usa um protocolo fechado e proprietário, e de vez em quando quem está encarregue de tomar conta do servidor acorda mal disposto e só para chatear muda os protocolos no servidor. O que quer dizer que se deve evitar usar essa rede e optar por outras melhores e abertas como o Jabber/Gtalk, mas se se insiste em continuar na merd... no msn, é necessário fazer um update ao programa que se está a usar e deu o tal erro.
Também pode ter havido o caso em que a rede local esteja com problemas e atenção que o Msn é um pouco sensível no que se refere a "firewalls" e "port forwarding". A solução passa por usar o HTTP que é uma das opções na janela das contas do msn. Como o protocolo HTTP é o mesmo que é usado no tráfego da web, não deverá haver problemas para se conseguir a ligação com o msn.




  • ERRO - Permission denied
Este erro resulta do próprio sistema de segurança do sistema, e acontece normalmente quando se tenta executar alguma aplicação na linha de comandos ou se tenta editar certos ficheiros. O Linux tranca certos ficheiros e pastas para o caso em que uma conta dum utilizador esteja comprometida, esse utilizador não possa executar aplicações críticas do sistema. Embora possa parecer paranóico este sistema de segurança num PC com apenas um utilizador, imaginem agora existir centenas de utilizadores ligados a esse PC. Toda essa segurança continua sendo importante mesmo num PC dum utilizador só, mas também não fará mal se se contornar essa precaução e dar permissões a sim mesmo para executar ou abrir determinado ficheiro. Pode-se fazer a partir do desktop ou da linha de comandos, mas é necessário ter acesso à conta do administrador para alterar as permissões necessárias. A partir da linha de comandos significa fazer um "sudo bash" ou "su". Pode-se mudar o dono desse ficheiro dando o seguinte comando no terminal:

chown username ficheiro

Mas isto não resolve o problema a outros utilizadores nesse sistema, pois continuarão a ter esse erro de "permissão negada". A resposta será mudar as permissões de execução no ficheiro para que qualquer um o possa executar. Falo do comando "chmod":

chmod +x ficheiro

... e todo o utilizador dessa máquina poderá executar o ficheiro. Tal como:

chmod +rw ficheiro

... garante que qualquer um terá acesso a ler e escrever nesse ficheiro.


  • ERRO - Filmes flash não funcionam
Muitos dos novos utilizadores arrancam com o seu novo Linux e logo descobrem que o YouTube não funciona. Ah pois, ainda se contam com os dedos as distribuições de Linux que trazem suporte a Flash, essa tecnologia proprietária. Pior é que o browser irá fazer crer que com meia dúzia de clicks terá o Flash a funcionar, o que rapidamente se descobre que é mentira...
O melhor é fazer uma googlada por "adobe flash download" e escolho o primeiro link que te aparece e logo estarás na página do download.


Clica em download e na página seguinte escolhe a opção "tar.gz" para fazeres o download. Após fazeres o download, abres o terminal e dirige-te até à pasta para onde descarregaste o install_flash.tar.gz. Quando lá estiveres digita os comandos seguintes para o descomprimir e o executar:

tar xvf install_flash*
cd "nova pasta criada pelo instalador"
./flashplayer_installer


... e segue as indicações no ecran. Fecha e volta a abrir o browser e terás o Adobe Flash a funcionar. Não, não é preciso fazer um reboot ao PC, isso é coisa de sistemas operativos inferiores ou rascos....




Espero que todo este conjunto de erros e respectivas soluções vos seja útil.

2 comentários:

Quanto ao Flash pera aí. Eu sei que, pelo menos no Ubuntu, se todos os repositórios estiverem activados, é só procurar no Synaptic por flashplugin-nonfree ou algo parecido e instalar esse para ter Flash no Ubuntu. Apesar de não saber se isto se aplica a outras distribuições...

Isso é no Ubuntu mas noutras já é diferente. Eu até costumo fazer o download do tal flash, descomprimo o tar.gz e mudo a libflashplayer.so para ~/.mozilla/plugins e tá feito! Qual install, qual quê....