Получение MD5 суммы записанного диска

Большинство установочных дисков Linux распространяется через интернет в виде так называемых образов - файлов формата iso. Чаще всего к таким файлам прилагаются MD5 суммы, которые позволяют проверить целостность и неповреждённость скаченного файла.

Однако иногда возникает необходимость проверить уже записанный на болванку образ на предмет соответствия MD5. Например, если вы не уверены, что диск записался верно и у вас есть MD5 сумма исходного образа, то после такой проверки можно понять, повреждён диск или нет.

Нам потребуется консольная утилита isoinfo. Для начала вставьте диск в ваш привод и введите в терминале:

isoinfo -d -i /dev/sr0

Вместо /dev/sr0 если у вас несколько приводов нужно подставить имя устройства, отвечающее за нужный. Узнать его можно введя в консоли

mount

Эта команда выдаст достаточно длинный вывод, нас интересуют строчки вида

/dev/sr0 on /media/Ubuntu 11.04 i386 type iso9660 (ro,nosuid,nodev,uhelper=hal,uid=1000,utf8)

Подобные строчки показывают вставленные в дисковод диски. О том, что это CD (или DVD) диск говорит «type iso9660», а /dev/sr0 - это системное имя привода, в который вставлен этот диск, оно-то нам и нужно.

После выполнения isoinfo для нужного устройства вы получите вывод, начинающийся примерно с таких строчек:

$ isoinfo -d -i /dev/sr0
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: Ubuntu 11.04 i386
Volume set id: 
Publisher id: 
Data preparer id: 
Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM
Copyright File id: 
Abstract File id: 
Bibliographic File id: 
Volume set size is: 1
Volume set sequence number is: 1
Logical block size is: 2048
Volume size is: 354854
El Torito VD version 1 found, boot catalog is in sector 2503
Joliet with UCS level 3 found
Rock Ridge signatures version 1 found

Здесь нас интересуют два значения:

Logical block size is: 2048
Volume size is: 354854

Теперь пора получить собственно MD5 сумму. Введите в консоли следующую команду, подставив в неё ваши параметры:

dd if=/dev/sr0 bs=2048 count=354854 conv=notrunc,noerror | md5sum -b

Обратите внимание, вы должны подставить свои значения:

Дождавшись окончания выполнения этой команды, вы увидите примерно следующее:

e6a29ce3dccb0ab12332036dcff7d9e4 *-
354854+0 записей считано
354854+0 записей написано
скопировано 726740992 байта (727 MB), 274,584 c, 2,6 MB/c

e6a29ce3dccb0ab12332036dcff7d9e4 - это и есть MD5 сумма диска, если она совпадает с указанной в том месте, откуда вы скачали образ, то диск точно не повреждён. Однако, теоретически, иногда она может и не совпадать из-за ошибок считывания, при том что диск не повреждён, поскольку dd не очень аккуратен.