LINUX.ORG.RU

dd и md5sum


0

1

Добрый день уважаемые знатоки, у меня следующий вопрос... Есть скрипт:

local mRoot=«/tmp/storage» mount /dev/hda1 $mRoot mount /dev/sda1 /storage

echo «MD5 executing on source» md5before=$(dd if=/storage/builds/$GBLD_vBuildName/root.sq.sln | md5sum) echo «MD5 code $md5before»

cp -R /storage/builds $mRoot sync echo «MD5 executing on dest» md5after=$(dd if=$mRoot/builds/$GBLD_vBuildName/root.sq.sln | md5sum) echo «MD5 code $md5after»

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

Что я делаю не так?

Тоже с таким сталкивался, но почему это происходит уже не помню. Внутренняя флэшка в ro смонтирована?

Две рекомендации:

1. Сравнивай контрольные суммы до записи (может и писать-то не стоит)

2. Напиши маленькую утиль на С, которая пишет блок, потом его считывает и проверяет совпала ли контрольная сумма (не нужно будет полностью перешивать, если какой-то блок обломится, то перезапишешь только его).

PS. Осиль lorcode

kulti ★★
()
Последнее исправление: kulti (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.