Как я могу симулировать повреждение файловой системы ext3? - PullRequest
15 голосов
/ 26 сентября 2008

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 26 сентября 2008

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

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

1 голос
/ 14 сентября 2014

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

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

...