Я обычно использую cat
когда я должен ввести команду на основе чего-то в файле. cat
более удобно, так как Вы видите файл (если это является маленьким), в то время как у Вас есть доступ к приглашению оболочки. Это также позволяет, чтобы канал выровнял.
Основная проблема состоит в том, что мы хотим взять md5sum той же самой информации, которая была на ISO первоначально. Когда Вы пишете ISO в CD, существует вероятный пробел на конце диска, который неизбежно изменяет md5sum. Таким образом, очень самый короткий путь:
md5sum /dev/cdrom
не работает. То, что действительно работает (и распространено в онлайн-документации), только читает точное число байтов от устройства и затем делает md5sum
. Если Вы знаете число байтов, можно сделать что-то как:
dd if=/dev/cdrom bs=1 count=xxxxxxxx | md5sum
где 'xxxxx' является размером ISO в байтах.
Если Вы не знаете число байтов от руки, но имеете ISO на Вашем диске все еще, можно получить их использующий ls путем выполнения чего-то как следующее (взятый отсюда):
dd if=/dev/cdrom | head -c `stat --format=%s file.iso` | md5sum
Существует много других коротких конструкций, которые должны работать. Заметьте, что в каждом случае мы используем dd
для чтения байтов из диска но мы не передаем их по каналу в файл, скорее мы вручаем им md5sum немедленно.
Возможные улучшения скорости могут быть сделаны путем выполнения некоторых вычислений для использования большего размера блока ( bs=
в dd
команда).
Если размер образа на диске делится на 2048, целое число, которое кажется очень распространенным, то вы можете получить точную сумму MD5 следующим образом, где sr0
- это имя оптического устройства, которое можно найти с помощью, lshw -C disk
- и где «count» - это делимое размера изображения, деленное на 2048.
dd if=/dev/sr0 bs=2048 count=356352 |md5sum
Есть программа для этой задачи. Она называется - checkisomd5
. В Ubuntu ее можно установить командой:
sudo apt-get install isomd5sum
dd if=/dev/cdrom |
кому:</dev/cdrom
. Нет ничего волшебного оdd
и блочные устройства, это - просто потоковая команда управления с забавным синтаксисом. – Gilles 'SO- stop being evil' 05.11.2010, 20:26dd
сbs
из устройства размер кэша может передача данных ускорения в противоположность простому перенаправлению ввода. – alex 06.11.2010, 06:51