Почему я не могу скопировать свой DVD с dd?

Кроме корректного объяснения Arcege, существует также два других неправильных представления, скрытые в Вашей интерпретации ps euf.

  1. Команда ps euf не перечисляет все процессы - необходимо использовать ps axeuf для этого.

  2. Проценты используемой памяти для каждого процесса даны, как Вы видите, округленный к 0.1%. Так складывание их даст ошибочные результаты - (примерно) все процессы используют некоторую память - даже если это меньше затем 0.1%. Если существуют, например, 20 процессов то использование 0.05%, они составили бы в целом 1%, нет 0%.

11
20.03.2017, 12:04
6 ответов

Я думаю, что самый простой ответ - то, что dd, dd_rescue и ddrescue не разработаны для нанесения поражения схемам защиты от копирования. Они не делают предположений о формате данных и пытаются поддержать целостность всего оригинала на дисковых данных.

В случае dd Я подозреваю, что это завершается из-за намеренной ошибки чтения на диске, который является частью схемы защиты от копирования. Это помогло бы подтвердить это при включении вывода командной строки от dd с Вашим вопросом. Можно также найти некоторые ошибки чтения зарегистрированными в dmesg команда производится.

Можно добраться dd скопировать больше файла путем передачи noerror отметьте к нему на командной строке. Однако можно найти, что это просто оставляет Вас с повреждением в Вашем заключительном изображении.

16
27.01.2020, 19:56
  • 1
    Спасибо, upvoted. Если я обхожу файловую систему, и "поразрядное" копируют и заменяют ошибки чтения нулевыми байтами, которые все еще привели бы к поврежденному изображению? В конце концов, я только заменяю те данные нулевыми байтами, которые не могут быть считаны во всяком случае. Я буду включать вывод dmesg позже, у меня нет DVD со мной. –  Ali 24.02.2012, 17:43
  • 2
    Действительно единственный способ определить, "повреждается" ли заключительное изображение, состоит в том, чтобы удаться, применимо ли это. Часть этого будет удостоверяться, что только фактические поврежденные блоки читаются как нули и ни один из окружающих блоков. Это могло бы означать, что необходимо передать bs=512 (из памяти, который является CD/DVD blocksize), параметр к dd. Действительно, хотя такая вещь - то, что dd_rescue разработан, чтобы сделать. Это могло бы занять время, но это пытается потерять минимальный объем возможных данных. –  Richm 24.02.2012, 18:40
  • 3
    OK, спасибо за всю Вашу справку. Я завинчен на слишком многих уровнях. Я закончил тем, что использовал AnyDVD. –  Ali 28.02.2012, 23:08

Я не уверен, почему это работает, но открытие DVD сначала с VLC, как раз для просмотра меню, и затем приостановка позволяет dd работать.

12
27.01.2020, 19:56
  • 1
    Спасибо. Мой DVD не может быть открыт с VLC; к сожалению, моя ситуация была намного более сложной. –  Ali 30.12.2013, 18:07
  • 2
    Работавший для меня во время этого комментария, но я открылся тотемом (не имейте vlc). Странный. вопросы –  Kyle 05.08.2016, 21:32

Я могу подтвердить, что открытие диска с помощью VLC действительно обходит защиту. Однако при использовании dd мне пришлось использовать эту команду после открытия VLC (обнаруженного при загрузке диска и использовании каталога, указанного в VLC).

dd if=/dev/sr0 of=image_of_disc.iso

Это отличается от многих сообщений, которые я читал, в которых говорится, что эта команда должна работать:

dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING

proof:

me@me:~$ dd if=/dev/cdrom of=/media/me/image_of_disc.iso
dd: error reading ‘/dev/cdrom’: Input/output error
103336+0 records in
103336+0 records out
52908032 bytes (53 MB) copied, 2.04212 s, 25.9 MB/s

me@me:~$ dd if=/dev/sr0 of=/media/me/image_of_disc.iso
dd: error reading ‘/dev/sr0’: Input/output error
2846992+0 records in
2846992+0 records out
1457659904 bytes (1.5 GB) copied, 314.351 s, 4.6 MB/s
me@me:~$ 
2
27.01.2020, 19:56

Я могу порекомендовать программу под названием dvdbackup

Я могу сделать копию резервной копии DVD в виде папок. Я не думаю, что это ISO-образ. Так что вам нужно сделать этот шаг вручную.

0
27.01.2020, 19:56

People mention that opening the DVD with VLC (which displays the DVD menu) magically makes the data accessible to dd, but nobody has yet explained why that is and how VLC accomplishes this feat.

Я также попробовал «сначала открыть DVD с помощью VLC». Итак, при использовании dd в моем скрипте я использую эту последовательность:

cvlc --run-time 6 --start-time 16 /dev/sr0 vlc://quit 

`dd if=/dev/sr0 of=/home/user/Videos/name.iso`
2
27.01.2020, 19:56

Люди упоминают, что открытие DVD с помощью VLC (, которое отображает меню DVD ), волшебным образом делает данные доступными для dd, но никто еще не объяснил, почему это происходит и как VLC выполняет этот подвиг.

Мне удалось воспроизвести это поведение при попытке воспроизвести DVD на моем компьютере с устройства Kodi, подключенного к моему телевизору, с помощью SMB для общего доступа к корневому каталогу DVD-привода по сети. Это не сработало, если только я сначала не открыл DVD с помощью VLC, после чего Kodi мог волшебным образом воспроизводить файлы.

Такого рода магия оскорбляет мои чувства, поэтому я пошел копать. Основная причина проблемы заключается в том, что ваш DVD-привод работает против вас . Согласно Википедии:

However, if the drive detects a disc that has been compiled with CSS, it denies access to logical blocks that are marked as copyrighted (§6.15.3[2]). The player has to execute an authentication handshake first (§4.10.2.2[2]).

Так что дело не только в том, что вы получите зашифрованные данные, которые невозможно воспроизвести, если вы читаете DVD; накопитель не будет возвращать биты , если какая-либо программа на вашем компьютере не аутентифицировала себя на накопитель, используя некоторые специфичные для DVD -IOCTL, открытые ядром Linux (, в данном случае, DVD _АВТ). Вот почему это проявляется как ошибка ввода-вывода.

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

VLC выполняет это секретное рукопожатие через libdvdcss, который, в свою очередь, похоже, делает это вGetBusKey()в css.c. Предположительно, можно написать отдельную программу, связанную с libdvdcss, чтобы разблокировать диск для доступа в виде файлов, вместо того, чтобы полагаться на весь VLC. После разблокировки диск не может сказать, какая программа считывает данные с него, поэтому он отправляет обратно (все еще зашифрованные, но теперь доступные для чтения биты )всем, включая ddили cp.

(Интересно,DVD IOCTL также являются единственным реальным способом получить ключ дешифрования, используемый для расшифровки данных на диске после того, как вы его прочитали. Если вы воспроизводите скопированный каталог файлов, у вас нет доступа к IOCTL для получения ключей, поэтомуlibdvdcssприбегает к статистическому криптоанализу, чтобы взломать шифрование .)

28
27.01.2020, 19:56

Теги

Похожие вопросы