Я хочу намеренно испортить файл в файловой системе ext4 для тестирования. Есть ли способ повредить его, скажем, оставить файл открытым и перезагрузить компьютер?
1 ответ
Вы хотите быть в состоянии восстановиться? Или как мы развращаемся?
Я бы использовал dd
, утилиту передачи блоков.
dd if=/dev/urandom of=/dev/sdWV count=X bs=Y seek=Z
где
sdWV - это устройство, которое вы хотите испортить
- sdW будет блочным устройством
- V будет номером раздела
X - количество боксов, которые вы хотите написать
Y - размер каждого блока
Z - это место в разделе, где вы хотите начать повреждение данных
Убедитесь, что вы делаете резервную копию, прежде чем делать какие-либо повреждения.
Здесь источником изображения будет /dev/urandom
, поток, который будет просто генерировать случайные данные, перезаписывая все и вся на вашем устройстве.
Если вы опустите директиву count
, она продолжит запись до полного заполнения устройства.
редактировать
Хех, извините за порчу вашей текущей работающей системы - заголовок и текст вашего сообщения сильно различаются. Повреждение файловой системы и повреждение файла довольно разные ...
Если вы хотите испортить файл, вы все равно можете использовать dd, но перезаписать существующий файл, а не фактическое блочное устройство.
~ > echo "this is a test file that is about to be corrupted" > test_file
~ > cat test_file
this is a test file that is about to be corrupted
~ > dd if=/dev/urandom of=test_file bs=8 count=1 seek=1
1+0 records in
1+0 records out
8 bytes (8 B) copied, 0.007185 s, 1.1 kB/s
~ > cat test_file
this is \o♣▒▒▒_C~ >