Я собираюсь протестировать xfs_repair на некоторых больших файловых системах (около 50 ТБ), поскольку в прошлом использование памяти было высоким. Хотя я мог тестировать программу только на правильных файловых системах, было бы хорошо протестировать их на поврежденной системе.
Итак, как лучше всего испортить файловую систему. Дополнительный балл, если метод постоянно дает одно и то же повреждение каждый раз ....
Чтобы дать людям представление о том, что я имею в виду, в 2006 году
"Чтобы успешно проверить или запустить восстановление в файловой системе с несколькими терабайтами, вам необходимо:
xfs_repair обычно использует меньше памяти, но эти числа дают вам приблизительную цифру для восстановления большой файловой системы, заполненной> 80%.
FWIW, в прошлый раз, когда это возникло внутренне, рассматриваемая файловая система 29 ТБ потребовала ~ 75 ГБ ОЗУ + подкачка для восстановления ".
xfs_db имеет опцию blocktrash, которая
Удалять случайно выбранные блоки метаданных файловой системы. Удаление происходит из случайно выбранных битов в выбранных блоках. Эта команда доступна только в отладочных версиях xfs_db. Полезно для тестирования
xfs_repair(8)
иxfs_check(8)
.
Например
xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/xfstest/testfs
dd блокирует устройство, на котором находится файловая система. Вы можете написать сценарий, чтобы он повторялся. Просто несколько случайных блоков в случайных местах, а затем двигайтесь дальше.
Вы можете попробовать перезаписать первые 512 байтов (MBR и таблицу разделов) блочного устройства.
Сначала сделайте резервную копию:
dd if=/dev/device bs=512 count=1 of=backup.bin
И обнуляем позже:
dd if=/dev/zero bs=512 count=1 of=/dev/device
После этого ваша машина не должна загружаться, вы можете протестировать восстановление XFS с помощью live CD.