Как имитировать повреждение файловой системы ext3?

Я хотел бы имитировать повреждение файловой системы с целью тестирования того, как наши встроенные системы реагируют на него, и в конечном итоге они терпят неудачу как можно изящнее. Мы используем различные виды блочного устройства эмулированного флэш-памяти для данных, которые часто модифицируются и непригодны для хранения в NAND/NOR.

Так как у меня есть довольно хорошее представление о том, как часто данные изменяются в разных частях дерева и файл, где хранятся конфиденциальные данные. Я хотел бы ввести ошибки в конкретные области, а не просто случайно.

в экстренных случаях мы используем fsck -y как своего рода последнее средство, чтобы попытаться поднять систему и сообщить, что находится в очень плохом состоянии. Я очень хотел бы вызвать ошибки,которые вызовут fsck для попытки ремонта, чтобы изучить влияние на способность систем вернуться.

dd if=/dev/random недостаточно точен для моей цели, так как он не может быть легко использован для инъекции контролируемых ошибок. Есть ли другие инструменты или методы, которые лучше соответствуют моим потребностям, или я должен изобрести свой собственный?

2 ответов


Если вы уже знаете, что изменить, dd может прочитать файл, содержащий байты, которые вы хотите написать, и вы скажете ему, где их писать.

чтобы выяснить, где писать, debugfs из пакета e2fsprogs может помочь вам.


должно быть возможно использовать файловую систему Linux image fuzzer, чтобы вызвать повреждение:

или один из методов инъекции ошибок диска Linux (например, dm-flakey в режиме коррупции), описанных в https://unix.stackexchange.com/a/144200 .