Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

загадочная ошибка (программистское)

Я записывал на болванку три больших файла (.avi). Вместе они занимают почти целый CD.
Обычно я это делаю (в Линуксе) так: сначала с помощью программы mkisofs создаю образ файловой системы iso9660, включающей нужные файлы, а потом с помощью программы cdrdao пишу этот образ на диск, в режиме DAO (Disk-At-Once). На этот раз я решил вместо cdrdao попробовать воспользоваться cdrecord, более универсальной программой для записи дисков. В принципе она использует, насколько я понимаю, ту же библиотеку нижнего уровня, что и cdrdao, но умеет также записывать диски в более ортодоксальном режиме TAO (Track-At-Once), а также мультсессионные диски итп.

Короче, я разобрался с опциями и запустил cdrecord в режиме TAO. Диск записался. Я решил проверить запись, и запустил расчёт контрольной суммы по файлам, читая их прямо с CD (запустив программу md5sum прямо в директории CD). К моему удивлению, все три контрольные суммы оказались неправильными - они не совпадали с контрольными суммами оригинальных файлов, которые я ещё не удалил. Тогда я запустил побайтовое сравнение. И что же я обнаружил! Каждый из записанных файлов отличается от оригинала в одном байте (в разных местах в каждом файле). И в каждом из этих байтов различие в значении было ровно 10 — в записанном файле на 10 больше, чем в первоначальном. Но при этом сами значения байтов были разные, и настолько, что биты всякий раз менялись другие!

Очень любопытный баг (или дефект). Пожалуй, я потрачу ещё несколько болванок на попытки его повторить и исследовать...
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 18 comments