Explicação básica sobre os Sistemas de Arquivos

Os sistemas de arquivos Linux mais atuais ext3, ext4 ReiserFs entre outros possuem uma prevenção contra falhas que é a implementãção de journaling que consiste em gravar um registro (log ou journal) de transações antes de escrever as alterações no disco. A finalidade é recuperar o sistema em caso de falha por exemplo um desligamento não programado.

Em caso de falhas o sistema automaticamente faz a leitura dos logs ou journal e compara com o estado atual se houverem incossistências entre os logs e o sistema atual o Linux tenta fazer a correção automáticamente. Mas em alguns casos isso nao ocorre como foi o caso hoje. foi preciso efetuar uma verificação manual para a correção do problema, atráves da ferramenta FSCK.

O FSCK ( file system check) é um utilitário presente em praticamente todos os sistemas de arquivos Linux, com ele podemos checar a integridade dos dados em um disco ou partição Linux e efetuar correções caso ele encontre problemas. O FSCK é equivalente ao Fdisk do Windows e ao CHKDSK.

Voltando ao problema

No nosso caso como já mencionei o Servidor não bootava e apresentava a mensagem de Kernel Panic, normalmente o Linux quando encontra algum problema nas partições de arquivos já carrega e cai na tela de reparação pedindo a senha de Root e apresentando uma mensagem para rodar o FSCK para reparar o sistema de arquivos, mas neste caso não ocorreu e foi preciso fazer isso manualmente.

Para isso foi dado boot no servidor com um Live CD do Ubuntu e após carregado o sistema, entrei em modo somente texto com a combinação de teclas CTRL + Alt + F1, pois não tinha um mouse no servidor e também não iria fazer nada mesmo no modo gráfico.Verifiquei com o comando ” sudo fdisk -l ” se o disco era reconhecido e as partições estavam listadas corretamente. Ao rodar o comando deve ser apresentada uma tela similar a esta.

Na imagem acima como tenho Linux e Windows em dual boot no desktop aparecem partições NTFS e Linux no caso EXT3.

Após listar as partições rodei o comando CFSK em todas as partições do servidor para checar o sistema e realizar e corrigir falhas.

Para isso no console digitei o comando abaixo sem as aspas:

fsck /dev/sda1 -y

Este comando checa a partição /dev/sda1 no meu caso equivale a partição /boot e a opção -y responde Yes para todas as perguntas do FSCK que na maioria das vezes pergunta, caso encontre erros se você deseja corrigir, como era este o objetivo já coloco a opção -y e pronto ao final ele me avisou que o sistema de arquivos foi modificado.

Após isto rodei o mesmo comando acima em todas as partições do sistema /sda1, /sda3, /sda5 .etc.

Concluido reiniciei o Servidor removi a mídia do Ubuntu e para alegria geral o servidor carregou normalmente após a correção das partições. No meu caso ele só encontrou erros na partição /dev/sda2 que equivale a partição / do sistema, rodei nas demais partições somente para desencargo.

IMPORTANTE

NUNCA RODE O COMANDO FSCK EM PARTIÇÕES MONTADAS, ISTO PODE CORROMPER TODOS OS ARQUIVOS.

ESTE COMANDO SÓ DEVE SER USADO EM MODO DE SEGURANÇA QUANDO O LINUX REINICIA E ENTRA NA TELA DE REPARAÇÃO SOLICITANDO A SENHA DE ROOT E INSTRUINDO A RODAR O FSCK OU COM UM LIVE CD COM AS PARTIÇÕES DESMONTADAS.

 

Paulo Dias, tem 31 anos  é Analista de Sistemas,  criou o blog com o objetivo de compartilhar informações relacionadas com TI, com foco principal em :  Linux, Virtualização  Redes e Servidores.

adora o que faz e está sempre procurando aprender coisas novas, vive pesquisando novidades na internet e sempre que possível testando para tirar suas próprias conclusões e divulgá-las aqui no blog.

Casado, torcedor do Flamengo, gosta de livros de ficção e suspense, curte Rock in Roll  e adora cachorros.