Tutoriel Linux

Fsck no Linux: Reparando um sistema de arquivos desmontado

Débutant6 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Um servidor reinicia em modo de emergência, uma partição se recusa a ser montada ou o kernel reporta erros ext4. A tentação é iniciar imediatamente. fsck no primeiro dispositivo encontrado. É exatamente isso que deve ser evitado: um reparo no volume errado ou em um sistema de arquivos que ainda esteja montado pode agravar o dano.

fsck É um iniciador que chama a ferramenta apropriada para o sistema de arquivos. Antes de qualquer correção, você deve identificar a partição, verificar seu tipo, confirmar que ela não está mais em uso e manter um backup utilizável. Eu sempre começo com uma verificação de não escrita. O reparo só vem depois disso.

Tux inspeciona e repara cuidadosamente os blocos de um sistema de arquivos Linux desmontado.
O Fsck deve verificar um sistema de arquivos desmontado e identificado antes de qualquer reparo.

Identifique a partição e seu sistema de arquivos.

Não confie apenas em um nome como /dev/sdb1

lsblk -o NOME,TAMANHO,TIPO DE FS,UUID,PONTOS DE MONTAGEM,MODELO,SERIAL,TIPO
sudo blkid

O guia para lsblk no Linux detalha esta verificação. Se você estiver trabalhando com LVM, selecione o volume lógico que contém o sistema de arquivos, por exemplo. /dev/mapper/vg_data-lv_archive, não o volume físico de LVM localizado abaixo. O artigo dedicado a LVM e suas diferentes camadas nos permite distinguir entre eles.

Em seguida, verifique como a fonte é utilizada:

findmnt --source /dev/nvme0n1p2
findmnt --target /mnt/dados

A presença de uma saída indica que o volume aumentou. Se não houver saída, não tenha certeza: releia as instruções. lsblk E descobriEm seguida, verifique o UUID. O tutorial sobre o UUID do sistema de arquivos Evita confundir duas partituras com nomes semelhantes.

Nunca repare um sistema de arquivos montado.

O kernel pode modificar metadados enquanto fsck Tente corrigi-los. As duas visões do sistema de arquivos tornam-se então inconsistentes. Uma montagem somente leitura não é garantia suficiente para improvisar um reparo: a ferramenta deve ser usada nas condições especificadas em sua documentação.

Para um determinado volume de dados, interrompa os serviços que o utilizam, feche os terminais localizados na sua árvore de diretórios e, em seguida, desmonte-o:

sudo fuser -vm /mnt/data
sudo umount /mnt/data
findmnt --source /dev/nvme0n1p2

Se quantidade A resposta é que o alvo está ocupado, não force a situação. Identifique o processo com fusível Ou lsofEm seguida, encerre corretamente o serviço em questão.

Para a partição raiz, utilize uma mídia live ou um ambiente de recuperação onde essa partição não esteja montada. Simplesmente alternar para o modo de usuário único ou de emergência não comprova que a partição raiz esteja desmontada. Em um servidor remoto, certifique-se de que um console KVM, IPMI ou o acesso de emergência do provedor de hospedagem esteja disponível antes de reiniciar.

Comece com um cheque sem necessidade de escrita.

fsck seria lançado sem executar a verificação:

sudo fsck -N /dev/nvme0n1p2

Em um sistema ext2, ext3 ou ext4 desmontado, execute uma verificação forçada, respondendo “não” a todas as modificações propostas:

sudo e2fsck -f -n /dev/nvme0n1p2
rc=$?

-n -f É necessário um exame completo, mesmo que o sistema de arquivos pareça limpo. Essa verificação pode ser demorada em volumes grandes. Se o disco apresentar erros de entrada/saída, timeouts ou desconexões, primeiro faça backup do que ainda estiver legível e depois verifique o hardware. fsck Ele repara uma estrutura lógica, não um disco que apresenta falha física.

As mensagens do kernel podem confirmar esse cenário:

sudo dmesg -T | grep -Ei 'Erro de E/S|tempo limite excedido|reinicialização|EXT4-fs|XFS|BTRFS'
sudo journalctl -k -b -p aviso..alerta

O guia para erros de dmesg e kernel ajuda a colocar esses alertas de volta na ordem dos eventos.

Reparar um volume ext4 sem responder “sim” em todos os lugares.

Se a verificação reportar inconsistências, verifique seu backup, confirme o dispositivo novamente e mantenha o volume desmontado. Em seguida, inicie o reparo interativo:

sudo e2fsck -f /dev/nvme0n1p2

Leia cada pergunta antes de enviar. Evite - sim Por padrão, essa opção aceita todos os reparos, mesmo quando a situação exige fazer backup do volume ou examinar o hardware antes de prosseguir. Em uma partição grande, executar um reparo automático indiscriminadamente representa um equilíbrio ruim entre velocidade e controle.

Quando o comando terminar, capture imediatamente o código de saída:

rc=$?
echo "Código e2fsck: $rc"

Leia o código de saída do fsck

  • zero : nenhum erro detectado;
  • um
  • dois Erros corrigidos, reinicialização necessária;
  • quatro : erros não corrigidos;
  • oito : erro na operação do testador;
  • dezesseis
  • trinta e dois : controle cancelado;
  • cento e vinte e oito Erro relacionado a uma biblioteca compartilhada.

Esses valores funcionam como bits e podem ser somados. Um código. quatro exige que o volume de leitura/gravação não seja aumentado como se tudo estivesse resolvido. Um código oito Solicitação para verificar o comando, o tipo de sistema de arquivos, as ferramentas instaladas e as mensagens exibidas.

XFS e Btrfs usam suas próprias ferramentas.

fsck O método não se aplica da mesma forma a todos os sistemas de arquivos. Para XFS, comece com uma verificação sem modificações do volume desmontado:

sudo xfs_repair -n /dev/nvme0n1p2

xfs_repair, sempre fora do suporte. Não use -EU Como primeira tentativa: redefinir o registro pode resultar na perda de metadados recentes.

Para o Btrfs, o controle prudente é explicitamente somente leitura:

sudo btrfs check --readonly /dev/nvme0n1p2

Não adicione --reparar Sem um backup e sem um procedimento adaptado ao problema observado. A própria documentação do Btrfs adverte contra o seu uso sem orientação especializada. Sempre verifique. com lsblk -f antes de escolher a ferramenta.

Após reparar o sistema de arquivos ext4, execute uma verificação de não gravação. Se o resultado for positivo, remonte o volume e verifique o tipo, o espaço disponível e as novas mensagens do kernel.

sudo e2fsck -f -n /dev/nvme0n1p2
sudo mount /mnt/data
findmnt /mnt/dados
df -hT /mnt/dados
sudo journalctl -k -b -p aviso..alerta

Para uma partição raiz controlada na inicialização, verifique também os registros da inicialização anterior:

jornalctl -b -1 | grep -Ei 'fsck|sistema de arquivos|erro de E/S|EXT4-fs|XFS|BTRFS'
systemctl --falhou

página de manual do fsck descreve o inicializador e seus códigos de saída. Para ext4, veja e2fsckOs procedimentos específicos para XFS e para Btrfs Deve permanecer como prioridade em relação a um comando genérico encontrado aleatoriamente.

sudo apt update && sudo apt upgrade