Расчет MD5 компакт-дисков (07.10.2023). |
![]() |
2023 - Октябрь | |||
07.10.2023 21:05 | |||
И у высокотехнологичных надежных операционных систем, на примере Astra Linux SE v.1.7.4 (сарказм), есть необходимость считать контрольные суммы этих мерзких сущностей. Дело дошло даже до багов (см. конец статьи). Пришлось написать удобный скрипт их расчета. Сложного ничего не было; кроме времяемкого тестирования и отторжения алогичного синтаксиса языка Bash. MD5 диска считается без необходимости его монтировать и размонтировать, привод сам задвигается, выдвигается и просит добавки. Приведен для ознакомления, сам же лежит в полезных исходниках. Применим ко всем типам компакт-дисков. Может посчитать MD5 раздела жесткого диска или его папки, если надо, - что можно считать тестом на изменение каких-либо данных, например, при их самоконтроле. function MD5() #Для md5sum не требуется монтирование и размонтирование носителя - достаточно указать имя устройства. { echo "Начало расчета контрольной суммы." echo " Монтирование DVD." 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 |
|||
Обновлено ( 07.10.2023 21:24 ) |