Как имитировать повреждение файловой системы ext3?
Я хотел бы имитировать повреждение файловой системы с целью тестирования того, как наши встроенные системы реагируют на него, и в конечном итоге они терпят неудачу как можно изящнее. Мы используем различные виды блочного устройства эмулированного флэш-памяти для данных, которые часто модифицируются и непригодны для хранения в NAND/NOR.
Так как у меня есть довольно хорошее представление о том, как часто данные изменяются в разных частях дерева и файл, где хранятся конфиденциальные данные. Я хотел бы ввести ошибки в конкретные области, а не просто случайно.
в экстренных случаях мы используем fsck -y
как своего рода последнее средство, чтобы попытаться поднять систему и сообщить, что находится в очень плохом состоянии. Я очень хотел бы вызвать ошибки,которые вызовут fsck для попытки ремонта, чтобы изучить влияние на способность систем вернуться.
dd if=/dev/random
недостаточно точен для моей цели, так как он не может быть легко использован для инъекции контролируемых ошибок. Есть ли другие инструменты или методы, которые лучше соответствуют моим потребностям, или я должен изобрести свой собственный?
2 ответов
Если вы уже знаете, что изменить, dd может прочитать файл, содержащий байты, которые вы хотите написать, и вы скажете ему, где их писать.
чтобы выяснить, где писать, debugfs из пакета e2fsprogs может помочь вам.
должно быть возможно использовать файловую систему Linux image fuzzer, чтобы вызвать повреждение:
- e2fuzz от 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.деготь.bz2
- http://thread.gmane.org/gmane.comp.file-systems.ext4/32167 (использует zzuf)
или один из методов инъекции ошибок диска Linux (например, dm-flakey в режиме коррупции), описанных в https://unix.stackexchange.com/a/144200 .