Программное копирование CD, байт за байт - PullRequest
8 голосов
/ 17 декабря 2011

Мне было интересно, знает ли кто-нибудь, каким образом я могу просто сделать байтовую копию данных на компакт-диске с помощью программирования?Есть ли какие-нибудь системные вызовы, которые могут сделать это?

У меня есть компакт-диск, который каким-то образом поврежден или поврежден, что делает некоторые файлы недоступными через проводник и т. Д.и я хотел бы иметь возможность сделать копию (даже в поврежденном состоянии), но, конечно, я не могу сделать это через файловую систему.

1 Ответ

2 голосов
/ 18 декабря 2011

Кадр CD составляет 2352 байта.Для CD с данными это 2048 байт данных + разные заголовки и ECC, но вы можете прочитать большую часть необработанных данных кадра.Накопитель может обрезать несколько байтов.Поэтому лучше всего обходить файловую систему ISO 9660 и читать компакт-диск в режиме raw.Чтение не удастся с ошибкой на невосстановимых кадрах, но вы можете найти их и просто начать читать следующий кадр.

В Linux вы откроете низкоуровневое устройство SCSI, выполните ioctl для установки CDROMREADRAWи используйте read и lseek при необходимости.

Описание кишок программирования CD: здесь .

Эта страница содержит информацию о чтении CDROM в Windows,но не объясняет, возвращает ли он необработанные данные или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...