У меня есть образ диска объемом 500 ГБ, который был создан с использованием следующего:

# dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c > backup.img.gz

Были определенные ошибки (примерно 15-20 из них), указывающие на следующее, в определенный момент выше примерно 420 ГБ. Ошибки перемежались несколькими гигабайтами данных между ними (например, первая ошибка была 420 ГБ, следующая - 430 ГБ, следующая - 436 ГБ и т.д.)

dd: error reading '/dev/sda': Input/output error

Безопасно ли восстанавливать этот образ диска?

1 ответ1

1

Это зависит от того, что вы подразумеваете под "безопасным".

Восстановление образа на здоровый диск не сломает диск, поэтому в этом смысле он безопасен. Тем не менее, изображение несколько повреждено, и в результате вы можете получить поврежденную файловую систему и файлы, поэтому в этом другом смысле это небезопасно.

Я говорю "вы можете получить поврежденные файлы", а не "вы получите", потому что есть вероятность, что все эти ошибки были в блоках, помеченных как пустые. Это потому, что dd ничего не знает о файловой системе и концепции свободного пространства, он читает все данные. Если во время создания образа было много свободного места, возможно, вам повезло, и все ваши файлы и важные данные находятся на изображении. Ошибки не были в начале диска, поэтому таблица разделов будет в порядке (если это не было MBR и не было расширенного раздела с логическими разделами и некоторые записи логического раздела не были прочитаны dd ; это возможно, потому что любой логический раздел определяется непосредственно перед его началом, а не в начале диска, как основные разделы и расширенный раздел).

С другой стороны, вам может не повезти, вы можете столкнуться не только с несколькими поврежденными файлами, но и с поврежденной файловой системой, что может проявляться в (например, отсутствии целых папок, которые должны быть там со многими файлами). Сравните этот вопрос ; Вы находитесь в аналогичной ситуации, когда дело доходит до доступа к файлам и папкам. Прочитайте мой ответ там, особенно второе редактирование, где я объясняю, что может случиться.

Один из комментариев предлагает

восстановите его на другом носителе и вручную скопируйте нужные файлы.

Для копирования файлов вам не нужно восстанавливать на другой носитель. Вы можете смонтировать свой образ напрямую. Используйте kpartx или mount -o offset=… для доступа к разделам внутри вашего образа. Например, попробуйте эту последовательность (некоторые шаги требуют sudo):

  • gzip -dc < backup.img.gz > backup.img (через мгновение fsck и, возможно, некоторые другие инструменты изменят образ, так что на всякий случай полезно оставить исходный архив нетронутым, надеюсь, у вас достаточно свободного места для этого );
  • kpartx -av backup.img (прочитайте вывод, ваши разделы внутри образа теперь доступны как /dev/mapper/loop?p? );
  • использовать fsck в /dev/mapper/loop?p? на ваш выбор;
  • монтировать /dev/mapper/loop?p? на ваш выбор;
  • скопировать файлы;
  • umount … ;
  • kpartx -dv backup.img для очистки.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .