Comando fsck no Linux (corrige sistema de arquivos) [Guia Básico]

O comando fsck no Linux é na verdade um “wrapper” que serve para chamar outros comandos que são variações do fsck para vários tipos de sistemas de arquivos.

Você pode perceber isso com o comando ls no diretório /usr/sbin:

$ ls -l /usr/sbin/*fsck*
lrwxrwxrwx 1 root root      8 mar  8  2019 /usr/sbin/dosfsck -> fsck.fat
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/e2fsck
-rwxr-xr-x 1 root root  49896 jul 26  2018 /usr/sbin/fsck
-rwxr-xr-x 1 root root  37200 jul 26  2018 /usr/sbin/fsck.cramfs
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/fsck.ext2
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/fsck.ext3
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/fsck.ext4
-rwxr-xr-x 1 root root  57424 ago  2  2018 /usr/sbin/fsck.fat
-rwxr-xr-x 1 root root  83536 jul 26  2018 /usr/sbin/fsck.minix
lrwxrwxrwx 1 root root      8 mar  8  2019 /usr/sbin/fsck.msdos -> fsck.fat
lrwxrwxrwx 1 root root      8 mar  8  2019 /usr/sbin/fsck.vfat -> fsck.fat
-rwxr-xr-x 1 root root    433 jan 24  2019 /usr/sbin/fsck.xfs

Dependendo do sistema de arquivos, o fsck invoca o fsck.algumacoisa apropriado para lidar com aquele sistema de arquivos.

O objetivo do fsck é checar e corrigir a existência de erros no sistema de arquivos. Por padrão, o fsck assume o sistema de arquivos ext2 e, após fazer uma checagem no disco, pergunta ao usuário se ele deseja fazer as correções necessárias.

Como parâmetro o fsck aceita um nome de dispositivo (ex.:  /dev/hdc1, /dev/sdb2), um ponto de montagem (ex:  /, /usr, /home), ou um Label (ex.: LABEL=root) ou uma identificação de disco UUID (ex.:  UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd ).

Um identificador UUID é um número único que identifica um disco, como se fosse o “MAC Address dos discos”.

As opções frequentemente usadas são:

  • -A: Faz a checagem de todos os discos especificados no arquivo /etc/fstab;
  • -t: Especifica o tipo de sistema de arquivos que deverá ser checado;

Ainda podemos ter algumas opções para o sistema de arquivos ext2:

  • -b: Superbloco Especifica qual superbloco o fsck irá trabalhar;
  • -c: Faz checagem de setores defeituosos (bad blocks);
  • -f: Força a checagem do sistema de arquivos mesmo que este pareça íntegro;
  • -p: Repara automaticamente o sistema de arquivos;
  • -y: Executa o fsck de modo não interativo, não fazendo nenhuma pergunta ao usuário;

Um superbloco é uma área especial no disco com informações importantes dos parâmetros do sistema de arquivos e o seu estado atual. Geralmente o superbloco é copiado em diversas áreas no disco como backup.

O fsck precisa que o disco esteja desmontado para realizar a checagem e reparos:

# fsck /dev/xvdb1
/dev/xvdb1 is in use.

Uma vez desmontado o sistema de arquivos:

# fsck.ext4 /dev/xvdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/xvdb1: clean, 41436/524288 files, 374905/2096891 blocks

Dependendo do tamanho e dos inúmeros reparos que a partição necessita, o processo do fsck pode demorar horas.

Para verificar a partição do sistema raiz há duas opções:

  1. Usar um Pendrive com Linux para dar carga em outro Linux e verificar a partição;
  2. Usar o comando “touch /forcefsck” para criar o arquivo forcefsck, que força o linux a verificar a partição raiz no boot do sistema

Comando e2fsck

O comando e2fsck é usado para checar o sistema de arquivos ext2, ext3 e ext4. Ele é a versão do fsck para os sistemas de arquivos baseados no sistema de arquivos ext.

As opções são comuns ao fsck, já que é ele que é invocado pelo fsck quando se trata de partições do tipo ext2, ext3 e ext4.

Exemplo:

$ sudo fsck.ext4 /dev/xvdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/xvdb1: clean, 41436/524288 files, 374905/2096891 blocks

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe