DVD, приводящий к непоследовательности

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

$ blockdev --getsize64 /dev/sr0 7687522304 $ isosize /dev/sr0 7899633664 $ cat /sys/block/sr0/size 15428972 $ echo '512 *' $(cat /sys/block/sr0/size) | bc 7899633664 

Здесь blockdev сообщает один размер, а другие данные сообщают о большем размере. К сожалению, dd , cat и т. Д., Похоже, используют размер, который сообщает blockdev , хотя, как представляется, в оставшихся 212111360 байтах имеются данные: образы дисков из dd или cat работают неправильно, du -b на смонтированном диске дает что-то приближающееся к большему размеру (не точно, предположительно из-за служебных данных файловой системы), и на самом деле попытка доступа к смонтированной файловой системе имеет тенденцию давать ошибки ввода-вывода.

Несмотря на это, диск воспроизводится правильно в автономном проигрывателе и, похоже, работает (иногда, не надежно) с libdvdnav но не с libdvdread .

Что происходит с диском и как получить резервную копию?

EDIT: Я добавил более подробную информацию о диске. Я также планирую попытаться создать резервную копию Windows, чтобы позаботиться о непосредственной проблеме «как получить резервную копию» (или получить дополнительную информацию, если это не удается), но я все равно хотел бы знать, что происходит и как я могу это сделать под Linux.

EDIT2: Windows сама работала, но у нее нет никакого встроенного образа. Cygwin генерировал странные ошибки, которые кажутся несвязанными, а программа Windows, предназначенная для создания ISO, находила много плохих секторов, которые не отображались на моей машине Linux. Это были не те результаты, которые я ожидал. Я отправляю их здесь, если они дают подсказки для моей текущей проблемы, но я не ожидаю, что они это сделают.

EDIT3: Похоже, что иногда размер blockdev становится «застревающим» при смене дисков. Это происходит, когда я использую кнопку извлечения физического лотка вместо «извлечения» из командной строки. Дальнейшее исследование требуется с моей стороны (действительно ли это триггер?), Но, похоже, он дает как объяснение (система запутывается, когда я не размонтирую диск должным образом, хотя программисты должны были ожидать этого больше, чем с помощью USB-накопители, особенно с носителями, доступными только для чтения) и потенциальное обходное решение (получить размер blockdev на 8,5 ГБ).

Теперь, когда это может быть уместно, я добавлю, что я использую Fedora 20 с systemd , которая автоматизирует диски в папке /run/media/dhouck/<DISCNAME> . DISCNAME определяется автоматически из файловой системы; Я не знаю достаточно о UDF, чтобы сказать, как, но я сомневаюсь, что это актуально. Когда размер застревает, часть DISCNAME этого пути монтирования также не изменяется. Я подозреваю, что какая-то часть системы не замечает, что носитель удаляется и, следовательно, не удается соответствующим образом размонтировать.

Оказывается, эта проблема не была вызвана самими DVD-дисками, но Linux запутался, когда я использовал кнопку извлечения оборудования без размонтирования диска (команда eject работает, потому что она заботится о правильной размонте). Я предположил, что это безопасно, потому что диски доступны только для чтения и потому, что я думал, что удаление носителей без безопасного отключения может вызвать проблемы при записи.