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

StackOverflow https://stackoverflow.com/questions/140253

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Разобраться куда писать вам может помочь debugfs из пакета e2fsprogs.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top