Hugo Cisneiros (Eitch), hugo arroba devin ponto com ponto br
Versão 4.0, 2006

The Linux Manual

8.2. Verificação automática dos sistemas de arquivos

Desde do início, os usuários de Linux aprendem bem o que é uma verificação de arquivos... Toda vez que você reinicia ou desliga o sistema de forma forçada (ou seja, mete o dedo no botão), o Linux verifica o sistema em busca de erros. Isso era mais comum antigamente na época do sistema de arquivos ext2. Agora com o ext3 (e com o recurso de journaling), essa verificação fica menos frequente, pois erros no sistema de arquivos ficam mais difíceis de acontecer.

Mas mesmo assim acontecem de vez em quando!

Muitas vezes os administradores possuem máquinas que funcionam apenas como servidores. Essas máquinas geralmente ficam ali encostadas, sem ninguém mexer, sem monitor, teclado, ou mouse. Depois de configuradas corretamente, podem ser muito bem usadas via acesso remoto (SSH), então não importa muito onde ou como chegar a ela. É aí que entra o fsck e o nosso assunto!

Precisamos fazer com que o sistema verifique o disco sem a intervenção do usuário, toda vez que ele for desligado de forma incorreta. Para fazer isso, usamos o comando fsck e alguns macetes divertidos.

[Importante] Importante

Estas dicas servem mais para quem está usando sistemas de arquivos ext2 ou ext3.

Primeiro vamos ao método genérico, que acredito que funcione em todas as distribuições. Toda vez que o Linux é iniciado e monta suas partições, ele verifica se o disco foi desmontado da última vez de forma correta ou não. Dependendo da severidade, ele faz a verificação completa ou não. Mas para forçar a verificação no próximo boot, é só criar um arquivo assim:

# touch /forcefsck

Com o arquivo /forcefsck, no próximo boot a partição será verificada automaticamente, independente de ter desligado natoralmente ou não. Mas mesmo assim o sistema pode ter erros e necessitar que o usuário com um teclado fale para o sistema corrigir os erros. Para solucionar isso, cria-se outro arquivo assim:

# echo "-p" > /fsckoptions

O parâmetro -p, de acordo com a página de manual do e2fsck (man e2fsck) diz ao programa para corrigir todos os erros automaticamente, independente do usuário. O comando acima colocou o -p dentro do arquivo /fsckoptions, que será lido pelo fsck no próximo boot, e assim a verificação se torna automática! Legal não?

Não! Isso quer dizer que vou ter que esperar essa verificação toda vez que meu Linux for iniciado? Mesmo ele tendo sido desligado corretamente? Aí vem a personalização... O Linux é um sistema muito flexível, e lembre-se que pode-se fazer praticamente tudo com ele, usando a imaginação. A solução genérica para este problema é colocar os dois comandos citados acima em um arquivo de inicialização (como por exemplo, um /etc/rc.d/rc.local ou script no /etc/init.d), e colocar dois outros comandos na hora de desligar o sistema:

rm -f /forcefsck
rm -f /fsckoptions

Assim, toda vez que o sistema for iniciado ele cria estes dois arquivos. Mas se o sistema for reiniciado ou desligado corretamente, no processo de desligamento estes arquivos serão removidos, e no próximo boot a verificação não ocorrerá.

[Nota] Nota

Estes scripts variam de distribuição para distribuição, cabe a você utilizar de acordo com a que você usa.

No Fedora, Debian, SuSE, e outras, é só criar um link para um script desses comandos nos diretórios /etc/rc.d/rc0.d e /etc/rc.d/rc6.d. No Slackware basta apenas incluir os comandos no arquivo /etc/rc.d/rc.6.

[Importante] Importante

Se um sistema tem várias partições, cada um montada em um lugar (por exemplo: uma para o /home, outra para o /var, outra para o /), então é necessário criar estes arquivos mostrados acima na raiz de cada partição (Por exemplo: /home/forcefsck, /var/forcefsck, /forcefsck) para que a verificação seja feita em cada uma dessas partições.

[Dica] Dica

Existe um método alternativo, que descobri ser eficaz no Fedora/RedHat. Para fazer o mesmo processo descrito acima, basta apenas criar o arquivo /etc/sysconfig/autofsck com o seguinte conteúdo:


AUTOFSCK_TIMEOUT=5
AUTOFSCK_DEF_CHECK=yes
AUTOFSCK_OPT="-p"

Assim o padrão para quando o sistema for desligado incorretamente será fazer a verificação com o fsck (AUTOFSCK_DEF_CHECK), com a opção -p (AUTOFSCK_OPT). É só salvar este arquivo que as modificações já entram em rigor.