Como usar o comando fsck no Linux

Uma unidade de disco rígido com código binário escrito sobre ela.
Pixza Studio / Shutterstock

Todos os nossos dados importantes ficam em um sistema de arquivos de um tipo ou outro, e os problemas do sistema de arquivos estão prestes a acontecer. No Linux, podemos usar o fsckcomando para localizar e corrigir erros do sistema de arquivos.

Sistemas de arquivos são software

Os sistemas de arquivos são um dos componentes mais críticos de um computador. Sem um sistema de arquivos, o computador não pode armazenar nenhum dado em um disco rígido, seja esse disco um prato mecânico giratório ou um disco de estado sólido . Na verdade, um sistema de arquivos deve ser criado antes que o sistema operacional possa ser instalado no disco rígido. Deve haver algo para os arquivos do sistema operacional serem armazenados. Portanto, um sistema de arquivos é criado durante o processo de instalação.

Os sistemas de arquivos são  criados pelo software , gravados no software e lidos pelo software. Como você sabe, todo software complexo possui bugs. Nossos dados são extremamente importantes para nós, portanto, estamos depositando muita fé nos sistemas de arquivos e no software que os cria e usa. Se algo der errado, podemos perder o acesso a partes do sistema de arquivos ou até mesmo a uma partição inteira.

Os sistemas de arquivos com registro de  mudanças modernos  são melhores no tratamento de problemas que podem ser causados ​​por uma queda repentina de energia ou um travamento do sistema. Eles são robustos, mas não são invencíveis. Se suas tabelas internas forem  embaralhadas,  eles podem perder o controle de onde cada arquivo reside na unidade, qual é o tamanho, o nome que tem e quais permissões de arquivo estão definidas para eles.

O fsckcomando permite que você verifique se seus sistemas de arquivos estão íntegros. Se encontrar algum problema, ele também pode corrigi-lo para você.

Faça as verificações prévias

O uso fsckrequer privilégios de sudo . Qualquer comando que pode fazer alterações em um sistema de arquivos precisa ser tratado com cuidado e restrito àqueles que sabem o que estão fazendo.

Os pilotos não saltam para dentro de uma aeronave, dão a partida e voam para o céu azul claro. Eles fazem verificações de pré-voo. Há muito em jogo para fazer de outra forma. É um bom hábito a desenvolver. Antes de usar, fsckvocê precisa se certificar de que vai usá-lo na unidade correta. Portanto, antes de fazer qualquer coisa com fsck, vamos fazer um pequeno reconhecimento.

Recomendado:  O que era o OS / 2 da IBM e por que ele caiu para o Windows?

Vamos começar com fdiske canalizá-lo para less. Não estamos pedindo informações sobre uma partição específica. Usando a -lopção (list) fdisklista as tabelas de partição em todos os dispositivos que encontra no arquivo “/ proc / partitions”, se existir.

sudo fdisk -l | menos

Podemos ver as entradas para /dev/sdae /dev/sdb. Você pode percorrer o arquivo para ver quaisquer outras entradas que possam existir em seu computador.

Observe a saída na janela do terminal

As partições em /dev/sdasão listados como /dev/sda1, /dev/sda2, e /dev/sda3. Portanto, temos três partições na primeira unidade. Podemos ver um pouco mais de informações usando o parted comando. Usaremos a 'print'opção de exibir as tabelas de partição na janela do terminal.

sudo parted / dev / sda 'imprimir'

Obtenha informações sobre tabelas de partição

Desta vez, obtemos algumas informações extras, incluindo o tipo de sistema de arquivos em cada partição.

Modelo: ATA VBOX HARDDISK (scsi) 
Disco / dev / sda: 34,4 GB 
Tamanho do setor (lógico / físico): 512B / 512B 
Tabela de partição: gpt 
Sinalizadores de disco:

Número inicial e final Tamanho do sistema de arquivos Sinalizadores de nome 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540 MB 538 MB fat32 EFI System Partition boot, esp 
3 540 MB 34,4 GB 33,8 GB ext4

Existem três unidades neste computador de teste. Estes são os resultados para as outras duas unidades  /dev/sdbe /dev/sdc. Observe que esses sistemas de arquivos não têm o campo “Nome”.

sudo parted / dev / sdb 'print'
Modelo: ATA VBOX HARDDISK (scsi) 
Disco / dev / sdb: 21,5 GB 
Tamanho do setor (lógico / físico): 512B / 512B 
Tabela de partição: msdos 
Sinalizadores de disco:

Número Início Final Tamanho Tipo Sistema de arquivos Sinalizadores 
1 1049 kB 21,5 GB 21,5 GB ext4 primário
sudo parted / dev / sdc 'print'
Modelo: ATA VBOX HARDDISK (scsi) 
Disco / dev / sdc: 21,5 GB 
Tamanho do setor (lógico / físico): 512B / 512B 
Tabela de partição: msdos 
Sinalizadores de disco:

Número Início Final Tamanho Tipo Sistema de arquivos Sinalizadores
1 1049 kB 21,5 GB 21,5 GB ext3 primário

Acontece que a segunda e a terceira unidades têm o mesmo tamanho e cada uma tem uma única partição. Mas o sistema de arquivos da segunda unidade é ext4, e o sistema de arquivos da terceira unidade é o mais antigo ext3.

Passamos um identificador de partição para fscke ele verifica o sistema de arquivos nessa partição. Mas não podemos executar fsckem um sistema de arquivos montado. Precisamos desmontar a unidade. Para fazer isso, precisamos saber o ponto de montagem em que a partição – e, portanto, o sistema de arquivos – está montada.

Podemos descobrir isso facilmente usando o dfcomando.

df / dev / sdb1
df / dev / sdc1

Usando o Comando fsck

Temos todas as informações de que precisamos. A primeira coisa que faremos é desmontar o sistema de arquivos que vamos verificar. Vamos trabalhar no sistema de arquivos na primeira – e única – partição /dev/sdb, que é /dev/sdb1. Vimos anteriormente que este é um ext4sistema de arquivos e está montado em “/ run / mount / dave / sata2.”

Recomendado:  O que é MagSafe para iPhone 12 e o que ele pode fazer?

Usaremos o umountcomando. Observe que não há “n” em “umount”.

sudo umount / run / mount / dave / sata2

Use o comando umount para desmontar o sistema de arquivos.

Com umount, nenhuma notícia é uma boa notícia. Se você retornar silenciosamente ao prompt de comando, estamos prontos para prosseguir.

sudo fsck / dev / sdb1

Use o comando fsck para verificar o status do sistema de arquivos.

Este sistema de arquivos é relatado como limpo. Isso significa que o sistema de arquivos está relatando que não tem erros ou problemas. Uma verificação mais profunda do sistema de arquivos não é conduzida automaticamente. Também podemos examinar o código de retorno que fsckretornou ao shell.

echo $?

O valor de retorno de zero indica nenhum erro. Os códigos de retorno possíveis são:

  • 0 : Sem erros
  • 1 : Erros do sistema de arquivos corrigidos
  • 2 : O sistema deve ser reiniciado
  • 4 : Erros do sistema de arquivos não corrigidos
  • 8 : Erro operacional
  • 16 : Erro de uso ou sintaxe
  • 32 : Verificação cancelada por solicitação do usuário
  • 128 : Erro de biblioteca compartilhada

Apesar de o sistema de arquivos ser relatado como limpo, podemos forçar a realização de uma verificação do sistema de arquivos, usando a -fopção (forçar).

sudo fsck / dev / sdb1 -f

Força uma verificação do sistema de arquivos usando a opção force em um comando fsck

Desta vez, a verificação leva mais tempo para ser concluída, mas executa um teste mais completo do sistema de arquivos. Nosso sistema de arquivos estava realmente limpo e nenhum erro foi relatado. Se forem encontrados problemas durante a realização dos testes, você será solicitado a deixar que fscko problema seja corrigido ou a ignorar o erro.

Ao terminar o teste, você precisa remontar o sistema de arquivos. A maneira mais fácil de fazer isso é usar mounta -aopção (todos). Isso verifica “/ etc / fstab” para a lista de sistemas de arquivos e garante que todos eles estão montados da mesma forma que estariam após uma inicialização normal.

sudo mount -a

Remonte o sistema de arquivos usando o comando mount

Observe que não precisamos dizer fsckque tipo de sistema de arquivos está em uma partição; o utilitário determina isso examinando o sistema de arquivos. Isso significa que podemos forçar uma verificação do sistema de arquivos /dev/sdc1, o ext3sistema de arquivos em nosso PC de teste, usando exatamente o mesmo comando que usamos /dev/sdb1, que é uma ext4partição.

sudo fsck / dev / sdc1 -f

Use o comando fsck para forçar uma verificação do sistema de arquivos

Você pode não querer mergulhar direto na correção do sistema de arquivos. Você pode preferir olhar antes de pular. Você pode pedir fsckpara não se oferecer para consertar nada e apenas relatar os problemas para a janela do terminal. A opção -N(simulação) faz exatamente isso:

sudo fsck -N / dev / sdb1

Antes de reparar um sistema de arquivos, faça uma simulação

O oposto disso é dizer fsckpara não se preocupar em avisar se ele encontrar algum erro e apenas ir em frente e corrigi-lo. Para fazer isso, use a opção -y(sem prompts).

sudo fsck -y / dev / sdb1

Usando fsck na partição raiz

Você não pode usar fsckem uma partição montada, mas para inicializar seu computador, a partição raiz deve ser montada. Então, como podemos executar fsckna partição raiz? A resposta é interromper o processo de inicialização e executar fsckno modo de recuperação.

Recomendado:  Como desativar o Control Center na tela de bloqueio do iPhone

Enquanto o computador está inicializando, mantenha pressionada a tecla “Shift”. Se você cronometrou corretamente, você não inicializará no Linux. O processo de inicialização irá parar em um menu preto e branco. A máquina de teste usada para este artigo estava executando o Ubuntu, mas outras distribuições têm o mesmo tipo de menu, embora possa variar na aparência. Onde diz “Ubuntu” nas imagens, terá o nome da sua distribuição.

Menu de recuperação com o item de menu de opções avançadas selecionado

Mova a barra de realce com as teclas “Seta para cima” e “Seta para baixo” para que o item de menu “Opções avançadas para Ubuntu” seja selecionado. Pressione “Enter” para ir para a próxima tela.

Menu de recuperação com o item de menu "modo de recuperação" selecionado

Selecione a opção que termina com “(modo de recuperação).” Em nosso exemplo, é “Ubuntu, com Linux 5.11.0-20-generic (modo de recuperação).” Pressione a tecla “Enter”.

Você verá o menu de recuperação. Selecione “fsck verificar todos os sistemas de arquivos” e pressione a tecla “Tab” para mover o destaque para o botão “OK”. Pressione Enter.”

Menu de recuperação com fsck selecionado

Você verá uma notificação de que a partição raiz será montada junto com quaisquer outras partições definidas em seu arquivo “/ etc / fstab” .

Selecione sim para iniciar o fsck no modo interativo

Pressione a tecla “Tab” para mover o destaque para o botão “Sim” e pressione “Enter”.

Você verá a fsckexecução no modo interativo. Se houver problemas, você será solicitado a deixá- fscklos corrigi-los ou ignorá-los. Quando os sistemas de arquivos forem verificados, você verá o menu de recuperação novamente.

Selecione a opção “retomar”, pressione a tecla “Tab” para mover o destaque para o botão “Ok” e pressione “Enter”. O processo de inicialização será retomado e você inicializará no Linux.

A inicialização do modo de recuperação pode afetar alguns drivers, portanto, é uma boa prática reinicializar mais uma vez, assim que inicializar no Linux. Isso garante que o computador esteja operando de acordo com o padrão.

Quando as coisas dão errado

As redes de segurança existem por um motivo. Conheça o fsckcomando. Se surgir a necessidade de usá-lo com raiva um dia, você ficará feliz por ter se familiarizado com antecedência.