Как проверить целостность резервного копирования dd?

Это было бы заданием для bonnie++. Существуют другие инструменты сравнительного теста, конечно, но этот делает точно, что Вы перечислили и являетесь видом фактического стартового места для дисков сравнительного тестирования чтения-записи.

10
08.06.2019, 20:31
3 ответа

Если команда завершилась успешно, то резервное копирование корректно, запрещая аппаратный отказ (который мог одинаково влиять на любую проверку, которую Вы могли бы выполнить). Может позже стать неправильным, если оборудование неисправно, но большая часть оборудования систем хранения обнаруживает повреждение.

Здесь существует один протест: в конвейере оболочка не сообщает об ошибках с левой стороны. (Это из-за довольно общего сценария, где правая сторона не должна считывать все данные, например. some_command | head, и левая сторона умирает, потому что ее вывод больше не требуется.) Так здесь ошибка чтения от dd был бы проигнорирован. В ударе, набор pipefail опция сообщить об ошибках от всех частей конвейера.

Кроме того, остерегайтесь этого dd bs=… игнорирует некоторые ошибки и dd часто медленнее, чем альтернативы. Я рекомендую не использовать dd вообще: это не обладает никакими преимуществами, чтобы просто скопировать целый файл. Вопреки тому, что Вы, возможно, считали где-нибудь, dd не команда доступа к диску низкого уровня со специальным свойством, нет абсолютно никакого волшебства в dd, волшебство находится в /dev/hda.

shopt -s pipefail
set -e
</dev/hda buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"

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

ssh myuser@myhost "sha1sum image.img" &
sudo sha1sum /dev/hda

Проверьте, что эти две контрольных суммы идентичны.

Обратите внимание, что это тестирует, идентичны ли резервное копирование и оригинал во время проверки. Что-либо Вы изменяетесь на /dev/hda, включая монтирование и размонтирование файловой системы даже, не внося изменения (который обновит последнюю дату монтирования во многих файловых системах), изменит контрольную сумму. Если Вы хотите проверить целостность позже, запишите контрольную сумму диска во время резервного копирования где-нибудь.

8
27.01.2020, 20:02
  • 1
    Обратите внимание что если что-либо на /dev/hda изменился, так как спина была сделана, хеши не будут соответствовать. –  bahamat 20.08.2012, 07:39
  • 2
    Преимущество проверки хеша - то, что ложные отрицательные стороны (ошибка, совершенная в записи изображения, случайно, повторяется во время выполненного хеша, так, чтобы отказ остался незамеченным) астрономически миниатюрны. Если какой-либо аппаратный отказ присутствует, он должен в подавляющем большинстве привести к неудавшейся проверке хеша. Получит ложно-положительную неудавшуюся проверку, если диск был изменен, как был отмечен. привычка –  Steven Lu 11.05.2014, 20:07
  • 3
    @StevenLu нет, шанс корреляции довольно высок, потому что аппаратные отказы не однородно случайны. В частности, ошибки RAM (которые являются наиболее распространенными аппаратными отказами, которые заметны в типичных ПК) происходят на уровне определенных битов. –  Gilles 'SO- stop being evil' 11.05.2014, 21:14
  • 4
    Хорошо, вероятно... хеш как это с большой мелкой частицей соли, уверенной, но OP, передавал по сети. Это просто по сути ненадежно, TCP, несмотря на это. Кроме того, возможности состоят, вероятно в том, что мы не будем видеть ту же точную схему доступа (в физической памяти). –  Steven Lu 11.05.2014, 21:57
  • 5
    Новое связанное разъяснение поиска вопроса о @Gilles первом предложении. –  Sparhawk 20.05.2017, 14:54

Как штопальщик и Giles упомянули, лучшая вещь сделать выполняется криптографические хеши сразу после того, как спина, прежде чем что-либо было изменено на Вашем исходном диске. Однако, при использовании диска с тех пор, хеши не будут, скорее всего, соответствовать. Даже изменение на один байт на диске приведет к совершенно другому хешу.

Хотя это - намного меньше, чем идеал, можно определить, проверяют изображение путем монтирования его. В системе, где образ диска, работает, следующее (создать /mnt/disk если это не существует или нас альтернативное местоположение):

mount -o loop image.img /mnt/disk

Можно затем просмотреть вокруг в /mnt/disk и посмотрите все файлы. Проверьте sha1 хеши критических файлов в изображении против оригиналов для проверки их целостности.

5
27.01.2020, 20:02

Используйте команду qemu-img

qemu-img check image.img
-1
27.01.2020, 20:02

Теги

Похожие вопросы