Проверка контрольных сумм файлов во FreeBSD

Короткая заметка по проверке конрольных сумм файлов, для определения целостности скачанного файла. Перейдя на офф ftp FreeBSD, в каждой директории с релизом есть файлы CHECKSUM.MD5 и CHECKSUM.SHA256. На данный момент у меня лежит скачанный образ FreeBSD-8.1-RELEASE-i386-dvd1.iso
cd /mnt/pools/dsk01/vcd/soft/unix/bsd/freebsd
ls
FreeBSD-8.1-RELEASE-i386-dvd1.iso

Вот на его примере и проверим, цел ли образ.

Скачиваем файлы CHECKSUM.MD5 и CHECKSUM.SHA256 с ftp:
ftp ftp.freebsd.org
Trying 2001:6c8:2:600::132…
Trying 2001:4f8:0:2::e…
Trying 87.51.34.132…
Connected to ftp.freebsd.org.
220 ftp.beastie.tdk.net FTP server (Version 6.00LS) ready.
Name (ftp.freebsd.org:administrator): anonymous
331 Guest login ok, send your email address as password.
Password: здесь_пишим_любой_e-mail
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.

Переходим в директорию, где расположены CHECKSUM.MD5 и CHECKSUM.SHA256 наших образов
cd pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/
250 CWD command successful.

ls
200 EPRT command successful.
150 Opening ASCII mode data connection for ‘/bin/ls’.
total 3840628
-rw-r—r— 1 1006 1006 386 Jul 19 2010 CHECKSUM.MD5
-rw-r—r— 1 1006 1006 561 Jul 19 2010 CHECKSUM.SHA256
-rw-r—r— 1 1006 1006 47958016 Jul 19 2010 FreeBSD-8.1-RELEASE-i386-bootonly.iso
-rw-r—r— 1 1006 1006 676384768 Jul 19 2010 FreeBSD-8.1-RELEASE-i386-disc1.iso
-rw-r—r— 1 1006 1006 1996298670 Jul 19 2010 FreeBSD-8.1-RELEASE-i386-dvd1.iso.gz
-rw-r—r— 1 1006 1006 261816320 Jul 19 2010 FreeBSD-8.1-RELEASE-i386-livefs.iso
-rw-r—r— 1 1006 1006 948244480 Jul 19 2010 FreeBSD-8.1-RELEASE-i386-memstick.img
226 Transfer complete.

Скачиваем CHECKSUM.MD5
get CHECKSUM.MD5
local: CHECKSUM.MD5 remote: CHECKSUM.MD5
200 EPRT command successful.
150 Opening BINARY mode data connection for ‘CHECKSUM.MD5’ (386 bytes).
100% |*******************************************************************************************************************************| 386 33.14 KB/s 00:00 ETA
226 Transfer complete.
386 bytes received in 00:00 (32.96 KB/s)

Скачиваем CHECKSUM.SHA256
get CHECKSUM.SHA256
local: CHECKSUM.SHA256 remote: CHECKSUM.SHA256
200 EPRT command successful.
150 Opening BINARY mode data connection for ‘CHECKSUM.SHA256’ (561 bytes).
100% |*******************************************************************************************************************************| 561 113.77 KB/s 00:00 ETA
226 Transfer complete.
561 bytes received in 00:00 (109.41 KB/s)

Отключаемся от ftp
exit
221 Goodbye.

Смотрим опять в локальную нашу директоию:
ls
CHECKSUM.SHA256
CHECKSUM.MD5
FreeBSD-8.1-RELEASE-i386-dvd1.iso
тут появились наши CHECKSUM.SHA256 и CHECKSUM.MD5

Сверяемся. Смотрим SHA256 образа FreeBSD-8.1-RELEASE-i386-dvd1.iso:
openssl dgst -SHA256 FreeBSD-8.1-RELEASE-i386-dvd1.iso
SHA256(FreeBSD-8.1-RELEASE-i386-dvd1.iso)= e273a66c370c519fe83711ee20b9a07165c2c3acd24dc3105efd6609ecb0b24f

Смотрим MD5 образа FreeBSD-8.1-RELEASE-i386-dvd1.iso:
openssl dgst -MD5 FreeBSD-8.1-RELEASE-i386-dvd1.iso
MD5(FreeBSD-8.1-RELEASE-i386-dvd1.iso)= 75eb10e7586de1adf793e897ae344eb1

Теперь смотрим содержимое файлов CHECKSUM.MD5 и CHECKSUM.SHA256:
cat CHECKSUM.SHA256
SHA256 (FreeBSD-8.1-RELEASE-i386-bootonly.iso) = 8e0b4c877c3ae7714656d9ffacbf1b23710f71fe60255e81b902505af29e5ea9
SHA256 (FreeBSD-8.1-RELEASE-i386-disc1.iso) = 7b80c34ad0cb49ace8def6261561ab22ab9346c58b69e79a82c148682a62bdc1
SHA256 (FreeBSD-8.1-RELEASE-i386-dvd1.iso) = e273a66c370c519fe83711ee20b9a07165c2c3acd24dc3105efd6609ecb0b24f
SHA256 (FreeBSD-8.1-RELEASE-i386-livefs.iso) = a446f5572cd711ee3907f17149b5cae4552ba9d4a676a29ee0d8a557304fb787
SHA256 (FreeBSD-8.1-RELEASE-i386-memstick.img) = 549800209a67e6b6cfbe93b0cd1289ee7801a53c30ca229e82be14617b2ffa17

cat CHECKSUM.MD5
MD5 (FreeBSD-8.1-RELEASE-i386-bootonly.iso) = 7266163259fe288f08e3749503c58f73
MD5 (FreeBSD-8.1-RELEASE-i386-disc1.iso) = 4ead632b2655ca3bd5fc11f8d0c91a53
MD5 (FreeBSD-8.1-RELEASE-i386-dvd1.iso) = 75eb10e7586de1adf793e897ae344eb1
MD5 (FreeBSD-8.1-RELEASE-i386-livefs.iso) = 2f245b65923ff37fe5b760515072d8a9
MD5 (FreeBSD-8.1-RELEASE-i386-memstick.img) = db63bb7c02fad1cf0d1f2f5c24530c45

Сверяемся:
e273a66c370c519fe83711ee20b9a07165c2c3acd24dc3105efd6609ecb0b24f = e273a66c370c519fe83711ee20b9a07165c2c3acd24dc3105efd6609ecb0b24f
и
75eb10e7586de1adf793e897ae344eb1 = 75eb10e7586de1adf793e897ae344eb1
Всё совпадает, значит образ цел и без дефектов.

Таким образом проверяем любые скачанные файлы, надо лишь чтобы отдающий файл, приложил ещё и файлы для контроля сумм. Самому суммы тоже просто сделать, достаточно лишь перенаправить вывод команды в файл. Например:
openssl dgst -SHA256 FreeBSD-8.1-RELEASE-i386-dvd1.iso > CHECKSUM.SHA256
openssl dgst -MD5 FreeBSD-8.1-RELEASE-i386-dvd1.iso > CHECKSUM.MD5
Всё просто, может кому-то пригодится.

Добавить комментарий