Я только что сделал резервную копию всего жесткого диска (50 ГБ) ssh
через:
dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Какой сейчас лучший способ проверить целостность файла image.img
, т.е. как убедиться, что все копируется правильно?
Ответы:
Если команда завершилась успешно, резервное копирование выполнено правильно, за исключением аппаратного сбоя (который может также повлиять на любую проверку, которую вы можете выполнить). Позже он может стать неправильным, если оборудование неисправно, но большинство устройств хранения обнаруживает повреждение.
Здесь есть одна оговорка: в конвейере оболочка не сообщает об ошибках с левой стороны. (Это происходит из - за довольно общего сценария , когда правая рука не нужно читать все данные, например
some_command | head
, и левая сторона умирает , потому что его выход уже не хотелось.) Таким образом , здесь ошибка чтения изdd
Would быть проигнорированным В bash, установитеpipefail
опцию сообщать об ошибках из всех частей конвейера.Кроме того, остерегайтесь, что
dd bs=…
игнорирует некоторые ошибки иdd
часто медленнее, чем альтернативы . Я рекомендую вообще не использоватьdd
: нет смысла просто копировать весь файл. Вопреки тому, что вы, возможно, где-то читали,dd
это не команда низкоуровневого доступа к диску со специальным свойством, в ней нет абсолютно никакой магииdd
, а магия в/dev/hda
.Тем не менее, если вы хотите проверить резервную копию, лучше всего взять криптографическую контрольную сумму на каждой стороне и сравнить их. Например:
Убедитесь, что две контрольные суммы идентичны.
Обратите внимание, что при этом проверяется, идентичны ли резервная копия и оригинал на момент проверки. Все, что вы изменяете
/dev/hda
, включая монтирование и размонтирование файловой системы даже без внесения каких-либо изменений (что приведет к обновлению даты последнего монтирования во многих файловых системах), изменит контрольную сумму. Если вы хотите проверить целостность позже, запишите контрольную сумму диска во время резервного копирования где-нибудь.источник
/dev/hda
изменилось с тех пор резервное копирование было сделано хэши не совпадут.Как упоминали Дарнир и Джайлс, лучше всего запускать криптографические хеши сразу после резервного копирования, прежде чем что-либо будет изменено на вашем исходном диске. Однако, если вы использовали диск с тех пор, скорее всего, хэши не будут совпадать. Даже изменение одного байта на диске приведет к совершенно другому хешу.
Хотя это далеко не идеально, вы можете проверить изображение, смонтировав его. В системе, где находится образ диска, запустите следующее (создайте,
/mnt/disk
если он не существует, или используйте альтернативное расположение):Затем вы можете просмотреть
/mnt/disk
и просмотреть все файлы. Проверьте хэши sha1 критических файлов внутри изображения на соответствие оригиналам, чтобы убедиться в их целостности.источник
Используйте команду qemu-img
источник