@kavabangaungava
Всякое бывало.

Как повредить файл в Linux?

Хочу протестировать работу утилиты gddrescue. Но, чтобы не копировать раздел целиком, хочу протестировать только на части файловой системы.
Пробую с помощью dd записать несколько нулей в середину файла
dd if=/dev/zero of=/backup/version_project_2_20_11_20.zip bs=1 count=1 seek=7 conv=notrunc

Но после этого, архив продолжает открываться.
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
hint000
@hint000
у админа три руки
Хочу протестировать работу утилиты gddrescue
Это так не работает.
ddrescue не делает никакой магии для восстановления файла. И записав мусор в файл, вы не повредите диск, чтобы протестировать его чтение при помощи ddrescue.
С физически исправного диска ddrescue скопирует ровно то же самое, что и обычная dd (т.е. скопирует аккуратно испорченный файл с нулями в середине).
Для тестирования ddrescue вам надо грохнуть жесткий диск с размаху об стену, :) а не писать нули в середину файла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
индекс архива не поврежден - при открытии архива считывается не поврежденный индекс и и показывается.
пока все ок.
но при распаковке архива програмки наткнется на "неправильные" блоки и начнет сыпать ошибками или вообще выключится.
запусти тест данного архива - увидишь.
Ответ написан
Комментировать
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
1) Вам нужно повреждать не внутренности файла, а файловую систему.
2) Не обязательно это делать на реальной файловой системе, можно использовать маленький файл мегабайт на 500 и подключить его как дисковое устройство через loopback
И уже его повреждать, как Вам будет угодно.
truncate -s 500M my-file-system.img - создать файлик
mkfs.ext4 my-file-system.img - создать файловую систему на нем
mount -o loop my-file-system.img /mnt - подмонтировать
df -h /mnt - проверить размерчик
umount /mnt - отмонтировать

root@leah-pc /h/leah# truncate -s 500M my-file-system.img
root@leah-pc /h/leah# mkfs.ext4 my-file-system.img 
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done                            
Creating filesystem with 128000 4k blocks and 128000 inodes
Filesystem UUID: ada9f825-92d5-4410-b186-eda1ef2edfeb
Superblock backups stored on blocks: 
	32768, 98304

Allocating group tables: done                            
Сохранение таблицы inod'ов: done                            
Создание журнала (4096 блоков): готово
Writing superblocks and filesystem accounting information: готово

root@leah-pc /h/leah# mount -o loop /home/leah/my-file-system.img /mnt
root@leah-pc /h/leah# df -h /mnt
Файл.система   Размер Использовано  Дост Использовано% Cмонтировано в
/dev/loop26      469M         768K  433M            1% /mnt
root@leah-pc /h/leah# umount /mnt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы