|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Reznik 2:5020/400 27 Dec 2001 16:44:45 To : Sergey Reznik Subject : Re: *.iso.md5sums file -------------------------------------------------------------------------------- Sergey Reznik <sgreznik@fort.tatarstan.ru> пишет: SR> Hi ALL! SR> Столкнулся с такой проблемой - закачал ASPLinux SR> 7.2, два iso-шника. SR> И файлик с контрольной суммой md5sum. SR> Образы пришли битые md5 суммы не сошлись. SR> Hа том же сервере лежали файлики SR> asplin72-d1.iso.md5sums SR> asplin72-d2.iso.md5sums SR> с подобным содержимым: SR> 0 102400 8385dad9c63383c7549eadb2ad35e105 SR> 102400 102400 de380c62bd5ffa65fd91fabb54c477c6 SR> 204800 102400 3fb4ce8e915a5f51535d7555c9f564a3 SR> 307200 102400 4b49b19f37a7ba0faf1f363759e03244 SR> 409600 102400 e8b38c51d5966ea443d314efb114445b SR> ................ SR> ................ SR> 679628800 102400 SR> 9661784b571937e6730b19c4bc800328 SR> 679731200 102400 SR> 7f18e613ef3a9b24e1469d42be5e8395 SR> 679833600 102400 SR> ae303e8ef12d595d044ff1fb45a113be SR> 679936000 98304 SR> dcacfdd89cb4d96f2d28437a5321f75b SR> Вроде как все понятно, это конрольные суммы SR> блоков iso-шника, SR> с указанием смешения и размера блока. Hо SR> возникают два вопроса: SR> 1. Как получить из скачанного файла md5 суммы в SR> таком формате, SR> чтоб найти битые блоки? SR> 2. Чем можна подкачать блоки по заданному SR> смещению. SR> ------------------------------------------------- Может кто пдскажет все же решение пункта 2. Первый я решил с пощью шеловского скрипта: ======genmd5sums.sh================== #!/bin/sh # #Set parameters BLOCKSIZE=102400 COUNT=1 SKIP=0 USAGE="Usage: $0 file" if [ $# -lt 1 ]; then echo $USAGE exit fi if [ ! -f $1 ] ; then echo $USAGE exit fi ELSIZE=0 FILESIZE=`ls -l $1|gawk '{print($5)}'` i=1 FIRST=1 while [ $(( ($FILESIZE-$SKIP*$BLOCKSIZE) >0 )) -eq 1 ] do if [ $(( ($FILESIZE-$SKIP*$BLOCKSIZE >= $BLOCKSIZE) )) -eq 1 ]; then ELSIZE=$BLOCKSIZE else ELSIZE=$(( ($FILESIZE-$SKIP*$BLOCKSIZE) )) fi MD5SUM=`dd bs=$BLOCKSIZE count=$COUNT skip=$SKIP if=$1 2>nul|md5sum|gawk '{print($1)}'` if [ $FIRST = 1 ]; then FIRST=0 echo "$(($SKIP*$BLOCKSIZE)) $ELSIZE $MD5SUM" >$1.md5sums else echo "$(($SKIP*$BLOCKSIZE)) $ELSIZE $MD5SUM" >>$1.md5sums fi ((SKIP=$SKIP+1 )) done exit 0 ===================================== SR> -------------- -- Sergey Reznik Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/64880e4ed2e8.html, оценка из 5, голосов 10
|