" title="Написать письмо">Написать письмо
Донаты на карту ВТБ:
2200 4002 2461 6363

Статистика

Пользователи : 1
Статьи : 2371
Просмотры материалов : 9105024
 
Расчет MD5 компакт-дисков (07.10.2023). Печать E-mail
2023 - Октябрь
07.10.2023 21:05
Save & Share
Шел 2023 год. В РФ упорно продолжают использоваться компакт-диски для передачи серьезных данных. И ладно бы DVD - подумать страшно: CD. Низкотехнологичные, малоемкие, дорогущие из расчета руб/ГБ, тормоза технологического прогресса, суть ереси на пути развития человечества.

И у высокотехнологичных надежных операционных систем, на примере Astra Linux SE v.1.7.4 (сарказм), есть необходимость считать контрольные суммы этих мерзких сущностей. Дело дошло даже до багов (см. конец статьи). Пришлось написать удобный скрипт их расчета.



Сложного ничего не было; кроме времяемкого тестирования и отторжения алогичного синтаксиса языка Bash. MD5 диска считается без необходимости его монтировать и размонтировать, привод сам задвигается, выдвигается и просит добавки. Приведен для ознакомления, сам же лежит в полезных исходниках. Применим ко всем типам компакт-дисков. Может посчитать MD5 раздела жесткого диска или его папки, если надо, - что можно считать тестом на изменение каких-либо данных, например, при их самоконтроле.

function MD5() #Для md5sum не требуется монтирование и размонтирование носителя - достаточно указать имя устройства.
{
    echo "Начало расчета контрольной суммы."
    echo "    Монтирование DVD."
    eject -t
    sleep 20
    mount /dev/sr0 /media/cdrom
    echo "    Расчет контрольной суммы."
    echo " "

    #Алгоритмы на выбор, можно свои.
    #sudo md5sum /dev/sr0 #Контрольная сумма MD5 всего диска. Работает некорректно с CD-RW, записанными стандартными средствами Windows 7. Можно использовать для любых устройств и папок - например, посчитать MD5 реального раздела жесткого диска.
    #md5sum /media/cdrom/* #Расчет контрольных сумм каждого файла в корне каталога. Как в подкаталоги залезть - не анализировал: времени нет.

    echo " "
    echo "    Размонтирование DVD."
    umount /dev/sr0
    echo "Конец расчета контрольной суммы. Извлечение диска."
    eject #Почему-то привод обратно сам загружает диск при выполнении md5sum /media/cdrom/*.
}

function exit_mess()
{
    echo "(остановлено)"
    read
}

while true; do
    MD5

    read -p "        РАССЧИТАТЬ СЛЕДУЮЩИЙ ДИСК? 'Y', 'y', 'Да', 'да', 'д'    " yn #Задвигать диск не нужно: при mount сам заедет.

    if [[ $yn != "Y" ]] && 
[[ $yn != "y" ]] && [[ $yn != "Да" ]] && [[ $yn != "да" ]] && [[ $yn != "д" ]]; then exit_mess; fi

    echo " "
    echo " "
done

(добавлено 05.11.2025) Поправки при работе на разных ПК, а также на Astra SE v.1.4:
- требуются eject -t и sleep 20: может не для всех DVD-приводов времени хватать при движении лотка и монтировании после задвигания;
- при закрытии терминала без Ctrl+C: алгоритм продолжает крутиться в цикле, без конца открывая-закрывая привод и делая расчёт, - в условии требуются двойные квадратные скобки везде.
Обновлено ( 05.11.2025 14:00 )
 
 

Последние новости


©2008-2026. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru