Como posso simular a corrupção do sistema de arquivos ext3?
-
02-07-2019 - |
Pergunta
Gostaria de corrupção de arquivos de simulação com a finalidade de testar como nossos sistemas embarcados reagir a ela e, finalmente, tê-los falhar como graciosamente quanto possível. Usamos diferentes tipos de dispositivo emulado armazenamento flash bloco para dados que são modificados com freqüência e inadequados para o armazenamento em NAND / NOR.
Desde que eu tenho uma boa idéia bastante de quantas vezes os dados são modificados em diferentes partes da árvore de arquivos e onde os dados sensíveis são armazenados. Eu gostaria de injetar erros em áreas específicas e não apenas aleatoriamente.
Em casos de emergência, usamos fsck -y
como uma espécie de último recurso, a fim de tentar trazer o sistema em relatório que está em um estado muito ruim. Eu gosto muito de causar erros que provocaria fsck para tentar reparos a fim de estudar o efeito sobre a capacidade de sistemas para voltar para cima.
dd if=/dev/random
não é suficiente preciso para o meu propósito, uma vez que não pode ser facilmente usada para injetar erros controladas. Existem outras ferramentas ou métodos que se encaixam minhas necessidades melhor ou eu tenho que inventar o meu próprio?
Solução
Se você já sabe o que modificar, dd pode ler um arquivo contendo os bytes que você quer escrever, e você dizer onde a escrevê-los.
Para descobrir onde a gravação, debugfs do pacote e2fsprogs poderia ajudá-lo.
Outras dicas
Deve ser possível usar uma imagem de sistema de arquivos fuzzer Linux a causa da corrupção:
- e2fuzz de e2fsprogs
- http://people.redhat.com/sgrubb/files /fsfuzzer-0.7.tar.gz
- http://projects.info-pull.com/mokb/fsfuzzer -0.6.tgz
- http://www.cccmz.de/~snakebyte /fsfuzzer-0.6-lmh2.tar.bz2
- http://thread.gmane.org/gmane.comp .file-systems.ext4 / 32167 (usos zzuf)
ou uma das técnicas de injecção de falha disco Linux (por exemplo, DM-flakey no modo de corrupção) descrito em https: //unix.stackexchange .com / a / 144200 .