Verificação CRC do sistema de arquivos

2

Eu sei que antes de executar o kernel, o u-boot (o gerenciador de inicialização) verificará o CRC da imagem do kernel. Somente se estiver correto, ele irá mais longe, senão ele dará um erro "Bad CRC" .

Também quero fazer o mesmo para o sistema de arquivos.

  1. Existe alguma maneira de fazer isso?

  2. O kernel verifica se o sistema de arquivos é adequado ou não antes de carregá-lo? Se sim, onde esta verificação é feita?

Atualização:

Estou usando o sistema de arquivos jffs2. É possível verificar o CRC desse tipo de sistema de arquivos? Ou alguma outra maneira de se certificar de que o sistema de arquivos jffs2 não está corrompido?

    
por androidbuddy 20.05.2013 / 13:30

2 respostas

1

(os links abaixo são documentação de apoio e não necessariamente diretamente relacionados à sua pergunta).

Como Michael e DavAlPi apontaram alguns sistemas de arquivos (como ext4 , btrfs e zfs ) CRC arquivos e metadados do sistema de arquivos.

Com o ext2, o sistema de arquivos é modificado com cada montagem, configurando-o para " dirty ". (isto foi substituído por needs_recovery no ext3) Quando é desmontado, isto é desfeito. Se a inicialização do sistema detectar um sistema de arquivos desmontado marcado como sujo, ele assumirá que foi desmontado sem limpeza e executará uma verificação do sistema de arquivos para garantir a integridade. No RHEL isso geralmente é feito em algum lugar ao redor da mensagem "remounting root" durante a inicialização. De qualquer forma, será uma das primeiras coisas que a distro faz.

Com o ext3, você obtém um registro, portanto, se o sistema de arquivos estiver corrompido devido a falhas inesperadas, ele irá "repetir" as transações do diário ou ignorá-las, o que provavelmente não causará problemas. Você não obtém os CRCs, então se os dados estão morrendo (por exemplo, falha no HDD platter), é assim que vai ser. Mas o ext3 pode ser atualizado para o ext4 se você precisar dos recursos e ele não deve criar nenhum problema na terra do usuário.

Portanto, de uma forma ou de outra, a integridade do sistema de arquivos é verificada, mas o uso dos sistemas de arquivos mais recentes oferece algumas proteções adicionais.

    
por 20.05.2013 / 18:30
1

Geralmente, todos os drivers modernos do sistema de arquivos contêm algum tipo de verificação que assegura que o sistema de arquivos montado esteja em estado coerente - geralmente no sentido sintático, não no semântico, então você ainda pode acabar com o lixo (mas será um lixo bem estruturado).

Quanto a JFFS2 , consulte as seções 3.1 e 3.5 do documentação - algumas verificações são feitas.

    
por 23.05.2013 / 21:36