Todos os nossos dados importantes residem em um sistema de arquivos de um tipo ou outro, e problemas no sistema de arquivos são prováveis. En Linux, podemos usar o fsck
comando para encontrar e corrigir erros do sistema de arquivos.
Os 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, um disco mecânico giratório ou um disco de estado sólido. Na realidade, um sistema de arquivos deve ser criado antes que o sistema operacional possa ser instalado no disco rígido. Deve haver algo para salvar os arquivos do sistema operacional. Por isso, um sistema de arquivos é criado durante o procedimento de instalação.
Os sistemas de arquivos são criados por software, escrito por software e lido por software. Como você sabe, todo software complexo tem bugs. Nossos dados são de vital relevância para nós, por isso, confiamos muito 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 mesmo a uma partição completa.
Os sistemas de arquivos com registro de mudanças modernos são melhores para lidar com problemas que podem ser causados por uma queda repentina de energia ou um travamento do sistema.. Eles são robustos, mas não invencível. Se suas tabelas internas estiverem codificadas, eles podem perder o controle de onde cada arquivo reside na unidade, Que tamanho tem, qual nome ele tem e quais permissões de arquivo são definidas neles.
a fsck
O comando permite que você verifique se seus sistemas de arquivos estão íntegros. Se você encontrar algum problema, regularmente também pode consertar para você.
Realize verificações pré-voo
Usando fsck
precisa de privilégios de sudo. Qualquer comando que pode realizar mudanças em um sistema de arquivos deve ser tratado com cuidado e restrito àqueles que sabem o que estão fazendo.
Os pilotos não entram em um avião, Eles ligam e voam para o azul claro ali. Eles realizam verificações pré-voo. As apostas são altas para fazer o oposto. É um bom hábito desenvolver. Antes de usar fsck
você precisa ter certeza de que irá usá-lo na unidade correta. Então, antes de fazer algo com fsck
, vamos fazer algum credenciamento.
Vamos começar com fdisk
e canalizá-lo para less
. Não estamos solicitando informações sobre uma partição específica. Usando o -l
opção (pronto) fdisk
lista as tabelas de partição em todos os dispositivos encontrados no arquivo “/ proc / partições ”, sim existe.
sudo fdisk -l | menos
Podemos ver as entradas para /dev/sda
e /dev/sdb
. Você pode percorrer o arquivo para ver quaisquer outras entradas que possam existir em seu computador.
As partições em /dev/sda
estã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. Nós vamos usar o 'print'
opção para exibir tabelas de partição na janela do terminal.
sudo separado /dev/sda 'print'
Desta vez, o queremos informações adicionais, incluindo o tipo de sistema de arquivos em cada partição.
Modelo: ATA VBOX HARDDISK (SCSI) Disco /dev/sda: 34.4GB Sector size (lógico/físico): 512B/512B Partition Table: gpt Disk Flags: Bandeiras de nome do sistema de arquivos do sistema de tamanho final do número de partida 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 540MB 538MB fat32 EFI System Partition boot, Esp 3 540MB 34.4GB 33.8GB ramal
Há três unidades neste computador de teste. Estes são os resultados das outras duas unidades. /dev/sdb
e /dev/sdc
. note que esses sistemas de arquivos não têm o campo “Nome”.
sudo separado /dev/sdb 'imprimir'
Modelo: ATA VBOX HARDDISK (SCSI) Disco /dev/sdb: 21.5GB Sector size (lógico/físico): 512B/512B Partition Table: msdos Disk Flags: Sinalizadores do sistema de arquivos do tipo de tamanho final do número de partida 1 1049kB 21.5GB 21.5GB ramal primário
sudo separou /dev/sdc 'imprimir'
Modelo: ATA VBOX HARDDISK (SCSI) Disco /dev/sdc: 21.5GB Sector size (lógico/físico): 512B/512B Partition Table: msdos Disk Flags: Sinalizadores do sistema de arquivos do tipo de tamanho final do número de partida 1 1049kB 21.5GB 21.5GB ramal primário
a segunda e terceira unidades são do 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 fsck
e verifique o sistema de arquivos dessa partição. Mas não podemos correr fsck
em um sistema de arquivos montado. Precisamos desmontar a unidade. Fazer isso, precisamos saber o ponto de montagem onde a partição está montada e, por isso, o sistema de arquivos.
Podemos descobrir facilmente usando o df
comando.
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 no primeiro (e somente) partição de /dev/sdb
, que /dev/sdb1
. Vimos anteriormente que este é um ext4
Sistema de arquivo, e é montado em “/ Correr / monte / Dave / sata2”.
Nós vamos usar o umount
comando. Por favor, note que não há “n” sobre “umount”.
sudo umount / run / mount / dave / sata2
Com umount
, A ausência de más notícias é uma boa notícia. Se você retornar silenciosamente ao prompt de comando, estamos prontos para começar.
sudo fsck / dev / sdb1
Este sistema de arquivos está limpo. Isso significa que o sistema de arquivos não relata erros ou problemas. Uma verificação mais profunda do sistema de arquivos não é realizada automaticamente. Também podemos olhar para o código de retorno que fsck
voltou para a concha.
eco $?
O valor de retorno de zero indica que não há erros. Os códigos de retorno possíveis são:
- 0: Sem erros
- 1: Erros corrigidos do sistema de arquivos
- 2: O sistema deve reiniciar
- 4: Erros do sistema de arquivos que não foram corrigidos
- 8: Erro operacional
- dezesseis: Erro de uso ou sintaxe
- 32: Verificação cancelada por solicitação do usuário
- 128: Erro de biblioteca compartilhada
Embora o sistema de arquivos seja relatado como limpo, podemos forçar uma verificação do sistema de arquivos a ser feita, usando o -f
Opção (força).
sudo fsck / dev / sdb1 -f
Desta vez, a verificação leva mais tempo para ser concluída, mas faça 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 o teste, você será solicitado a permitir fsck
conserte o problema ou ignore o erro.
Quando você terminar o teste, você deve remontar o sistema de arquivos. A maneira mais fácil de fazer isso é usar mount
com ele -a
(todo o mundo) opção. Isso faz o check-in de "/ etc / fstab ”a lista de sistemas de arquivos e certifica-se de que estão todos montados como fariam após uma inicialização normal.
sudo mount -a
Observe que você não precisa ser informado. fsck
que 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
, a ext3
sistema de arquivos em nosso PC de teste, usando exatamente o mesmo comando que usamos em /dev/sdb1
, que e um ext4
dividir.
sudo fsck / dev / sdc1 -f
Você pode não querer mergulhar direto no reparo do sistema de arquivos. Talvez você prefira olhar antes de pular. Você pode perguntar fsck
não se ofereça para consertar nada e apenas relate os problemas para a janela do terminal. a -N
Opção (funcionamento a seco) faz exatamente isso:
sudo fsck -N / dev / sdb1
O oposto disso é contar fsck
então você não se preocupa em perguntar se encontrou algum bug, e vá em frente e conserte. Para fazer isso, usar el -y
(sem avisos) opção.
sudo fsck -y / dev / sdb1
Usando fsck na partição raiz
Você não pode usar fsck
em uma partição montada, mas para inicializar seu computador, partição raiz deve ser montada. Então, Como podemos correr? fsck
na partição raiz? A solução é interromper o procedimento de inicialização e executar fsck
em modo de recuperação.
Enquanto seu computador está iniciando, selecione a metade superior “Mudança”. Se você cronometrou corretamente, não inicializa no Linux. O procedimento de inicialização irá parar em um menu preto e branco. A máquina de teste usada para esta postagem estava executando o Ubuntu, mas outras distribuições têm o mesmo tipo de menu, mesmo que possa variar na aparência. Onde diz “Ubuntu” em capturas de tela, terá o nome da sua distribuição.
Mova a barra destacada com as teclas “Seta para cima” e “Seta para baixo” para selecionar o item do menu “Opções avançadas para ubuntu”. pressione “Digitar” para passar para a próxima tela.
Selecione a opção que termina com “(modo de recuperação)”. Em nosso exemplo, isto é “Ubuntu, com Linux 5.11.0-20-genérico (modo de recuperação)”. pressione a tecla “Digitar”.
Você verá o menu de recuperação. Por favor selecione “fsck verificar todos os sistemas de arquivos” e pressionar o “Aba” para mover o destaque para o botão “Aceitar”. pressione “Digitar”.
Você verá uma notificação de que a partição raiz será montada junto com quaisquer outras partições definidas no seu arquivo “/ etc / fstab ”.
pressione a tecla “Aba” para mover o destaque para o botão “sim” e pressione “Entrar”.
Você vai ver fsck
executar em modo interativo. Se houver problemas, você será convidado a sair fsck
conserte ou ignore-os. Quando os sistemas de arquivos foram verificados, você verá o menu de recuperação novamente.
Selecione a opção “retomar”, Deslize para baixo a tela inicial do seu iPhone ou iPad para entrar na função de pesquisa “Aba” para mover o destaque para o botão “Aceitar” e pressione “Entrar”. O procedimento de inicialização será retomado e você irá inicializar no Linux.
Iniciar o modo de recuperação pode afetar alguns drivers, portanto, é uma boa prática reiniciar mais uma vez, assim que eu iniciar o Linux. Isso garante que seu computador esteja funcionando como padrão..
Quando as coisas dão errado
As redes de segurança existem por uma razão. Saber o fsck
comando. Se surgir a necessidade de usá-lo com raiva um dia, você ficará feliz por ter se conhecido com antecedência.