On Thu, Feb 12, 2009 at 09:58:37AM +0300, Timur Batyrshin wrote: > Не пользуйся dd для этих целей -- у него нет проверки ошибок и > из последнего сектора на диске он копирует несколько лишних байт, Оба утверждения неверны: 1) Проверка ошибок при использовании dd производится - если попадётся нечитаемый сектор, копирование будет прервано. Хотя повторных попыток чтения у readcd при настройках по умолчанию заметно больше. 2) Лишние сектора появляются ещё на этапе записи CD, и readcd будет их копировать точно так же, как и dd. > т.е. размер и сумма MD5 у образов сходиться не будет. Вот это действительно так, но дело не обязательно в использовании dd. > Вот аналогичная команда, лишенная этих недостатков: > readcd dev=/dev/sr0 f=/path/to/image.iso Такая команда тоже не поможет - если CD писался в режиме Track-at-once, размер дорожки в TOC будет больше, чем размер записываемых данных, и readcd тоже будет пытаться читать столько, сколько записано в TOC. Последний из этих лишних секторов обычно не читается на физическом уровне. При записи CD с опцией -dao этой проблемы нет вне зависимости от способа чтения диска. При записи DVD+R размер дорожки получается кратным 32 кб, и в этом случае при чтении любым способом придётся ограничивать длину. Во многих случаях количество секторов, которые требуется прочитать для получения образа, совпадающего с оригиналом, можно определить с помощью isosize -d 2048 /dev/dvd; хотя 100% надёжности этот метод дать не может - во-первых, не обязательно используется именно ISO9660, во-вторых, образ может содержать дополнительные данные за пределами ФС для каких-то специфических целей. Указать размер копируемой области можно как для readcd (-sectors=...), так и для dd (bs=... size=...).