Ext4 - Como habilitar sanidade extra, somas de verificação, validações, testes de qualquer tipo?

8

Estou executando o Ext4 em um disco rígido e, para ser sincero, não confio muito na unidade porque é antiga e tem alguns problemas. Eu tenho dados não essenciais na unidade, então se ele morrer amanhã, então não é grande coisa.

No entanto, gostaria de saber se / quando ele começa a morrer e remontar apenas para leitura. Existem opções que habilitem verificações extras de arquivos em um Ext4 fs? (Eu não me importo se isso torna o sistema de arquivos mais lento.)

Rucent88
fonte
1
O disco rígido possui verificações internas de CRC; portanto, mesmo que esteja com falha e / ou com blocos pendentes, ele deve detectar esses erros e relatá-los ao sistema operacional. Se os arquivos forem danificados devido a blocos de disco rígido danificados, você verá esses danos como erros de E / S sem nenhuma opção especial.
Martin von Wittich
@MartinvonWittich A unidade pode, ou não, mas se os dados forem corrompidos enquanto são transmitidos entre a unidade e o controlador de disco, as verificações internas de CRC da unidade não compram nada ... Então, sim, a CRC no nível FS é um recurso interessante para ter.
Mathieu

Respostas:

5

No entanto, gostaria de saber se / quando ele começa a morrer e remontar apenas para leitura.

A montagem somente leitura não poupará nada se o problema for um problema grave - observe o primeiro parágrafo aqui e observe os problemas associados aos erros de leitura .

Não há como detectar blocos defeituosos sem ler fisicamente o disco; portanto, como procurar uma armadilha de mouse configurada em uma sala escura, não há como evitar os possíveis problemas ao verificar. Se você acredita que o disco está falhando, periodicamente umounte execute e2fsck -ctodas as partições; se este é o seu sistema de arquivos raiz e você precisa usar, por exemplo, um liveCD para fazer isso, faça-o. Conforme a página do manual;

-c Esta opção faz com que o e2fsck use o programa badblocks (8) para fazer uma varredura somente leitura do dispositivo, a fim de encontrar quaisquer blocos defeituosos. Se algum bloco defeituoso for encontrado, ele será adicionado ao inode do bloco defeituoso para impedir que ele seja alocado para um arquivo ou diretório.

Se os blocos continham dados, uma versão recuperada pode acabar no /lost+founddiretório em algum momento, não tenho certeza.

Observe que isso pode levar algum tempo. Se houver blocos defeituosos, a verificação poderá desencadear problemas de E / S que bloqueiam o sistema inteiro por horas. Faça isso quando estiver confortável em se afastar por um tempo.

Cachinhos Dourados
fonte
1
"armadilha de rato colocada em um quarto escuro". Bela frase.
Faheem Mitha
3

Além disso, de um modo geral, alguns utilitários podem monitorar diferentes aspectos da situação e permitir que você tome as medidas apropriadas.

Por exemplo, a smartctlferramenta do pacote smartmontools fornecerá acesso ao status SMART interno de algumas unidades.

Você também pode aumentar a frequência das verificações do sistema de arquivos em um destino específico usando o tune2fscomando Por exemplo, parece que tune2fs -c 1 targetgarantirá que a unidade seja verificada praticamente todas as vezes antes de ser montada na inicialização.


fonte
1
smartctltambém pode executar o mecanismo de autoteste interno do disco, por exemplo, com smartctl -t long /dev/sdX.
Martin von Wittich
1
@MartinvonWittich O problema com o SMART é que você precisa saber o que está procurando pelo backblaze e eles não necessariamente informam muito o google : "Nossa análise identifica vários parâmetros do recurso de auto monitoramento do inversor (SMART) que se correlacionam muito com falhas. Apesar dessa alta correlação, concluímos que é improvável que os modelos baseados apenas nos parâmetros SMART sejam úteis para prever falhas de unidades individuais ".
Mathieu
@ Matieu sim, esse material de previsão SMART é IMO bastante inútil. Mas, na minha experiência, os autotestes são 100% precisos. Infelizmente, a maioria das pessoas não sabe que elas existem e, portanto, raramente são usadas.
Martin von Wittich
2

Bom ponto do illuminÉ. É bom ter o smartd em execução no backgroud, que verifica periodicamente se há falhas.

Além disso, você pode usar

e2fsck -fvy -c -c -C0 /dev/sda1

-f    Force checking even if the file system seems clean.
-v    Verbose mode.
-y    Assume an answer of `yes' to all questions
-C0   write  completion  information to stdout
-c -c If this option is specified twice, then the 
      bad block scan  will  be  done  using  a  non-destructive
      read-write test.

Esse teste não destrutivo de leitura e gravação ( -c -c) permite que você saiba se há falhas na leitura.
No entanto, leva muito tempo.

Portanto, deve ser uma solução de trânsito antes de comprar uma nova unidade.


fonte
Só que você não pode fazer enquanto o FS é montado e digitalização para blocos ruins é lento como melaço por isso não é realmente uma opção viável ....
Mathieu