Ответ 1
Если вы уже знаете, что нужно изменить, dd может прочитать файл, содержащий байты, которые вы хотите записать, и сообщите, где их записать.
Чтобы выяснить, где писать, debugfs из пакета e2fsprogs могут вам помочь.
Я хотел бы моделировать повреждение файловой системы с целью тестирования того, как наши встроенные системы реагируют на нее, и в конечном итоге они могут быть настолько изящными, насколько это возможно. Мы используем различные типы флэш-памяти с блочным устройством для данных, которые часто изменяются и непригодны для хранения в NAND/NOR.
Поскольку у меня есть довольно хорошее представление о том, как часто данные изменяются в разных частях файлового дерева и где хранятся конфиденциальные данные. Я хотел бы вводить ошибки в определенных областях, а не просто случайно.
В случае чрезвычайной ситуации мы используем fsck -y
в качестве крайней меры, чтобы попытаться довести систему до сведения, которое находится в очень плохом состоянии. Я очень хотел бы вызвать ошибки, которые заставили бы fsck попытаться выполнить ремонт, чтобы изучить влияние на возможности системы вернуться.
dd if=/dev/random
недостаточно точен для моей цели, так как он не может быть легко использован для ввода управляемых ошибок. Существуют ли какие-либо другие инструменты или методы, которые лучше всего соответствуют моим потребностям или я должен изобретать свои собственные?
Если вы уже знаете, что нужно изменить, dd может прочитать файл, содержащий байты, которые вы хотите записать, и сообщите, где их записать.
Чтобы выяснить, где писать, debugfs из пакета e2fsprogs могут вам помочь.
Должно быть возможно использовать фюзер изображения файловой системы Linux, чтобы вызвать повреждение:
или один из способов инсталляции ошибок диска Linux (например, dm-flakey в режиме коррупции), описанный в https://unix.stackexchange.com/a/144200.