[unix] dd로 DVD를 복사 할 수없는 이유는 무엇입니까?

dd, dd_rescueddrescue 시도했지만 모두 실패했습니다. 이러한 도구가 파일 시스템을 우회하여 비트 단위로 복사한다고 생각했습니다.

dd는 속이고, 완료되지만 작은 파일을 생성하고 완료되었음을 나타냅니다.

dd_rescuse 및 ddrescue가 읽기 오류에 대해 불평하고 있으며 너무 느립니다. 이 도구는 10 분 안에 몇 MB 만 복사 할 수 있습니다.

왜 이런 일이 발생합니까? 왜 이러한 도구가 실패합니까?


AnyDVD를 사용하면 Win7 호스트에서 디스크를 1 초 안에 복사 할 수 있습니다. 그것은 UDF 파일 시스템이 흥미롭게 패치되었다고 말하며, 불량 섹터가 없다고 말합니다. 전체 디스크를 10 분 안에 복사 할 수 있습니다.


업데이트 : 솔루션에 관해서 는 superuser에 대한 비슷한 질문을 참조하십시오 .



답변

가장 간단한 대답은 dd, dd_rescue 및 ddrescue가 복사 방지 체계를 물 리치도록 설계되지 않았다는 것입니다. 그들은 데이터 형식에 대한 가정을하지 않으며 디스크 데이터에 원본 전체의 무결성을 유지하려고합니다.

의 경우 ddI는 복사 방지 계획의 일부인 디스크에 의도적 읽기 오류로 인해 종료되는 것을 생각한다. dd질문에 명령 행 출력을 포함시킨 경우이를 확인하는 것이 도움이됩니다 . dmesg명령 출력 에 일부 읽기 오류가 기록되어있을 수도 있습니다 .

명령 행 dd에서 noerror플래그를 전달하여 더 많은 파일을 복사 할 수 있습니다 . 그러나 이로 인해 최종 이미지가 손상 될 수 있습니다.


답변

사람들은 DVD 메뉴를 표시하는 VLC를 사용하여 DVD를 열면 데이터에 액세스 할 수 dd있지만 VLC가이 기능을 수행하는 이유와 방법을 아직 아무도 설명하지 못했습니다.

SMB를 사용하여 네트워크를 통해 DVD 드라이브의 루트를 공유하여 TV에 연결된 Kodi 장치에서 컴퓨터의 DVD를 재생하려고 할 때이 동작을 복제했습니다. 그것은하지 작업을했다 하지 않는 한 나는 첫 번째 점 KODI가 마술 파일을 재생할 수있는 VLC와 DVD를 열었다.

이런 종류의 마술은 내 감성을 상하게하기 때문에 파고 갔다. 문제의 근본 원인은 DVD 드라이브가 사용자를 상대로 작동하기 때문 입니다. 당 위키 백과 :

그러나 드라이브에서 CSS로 컴파일 된 디스크를 감지하면 저작권으로 표시된 논리 블록에 대한 액세스가 거부됩니다 (§6.15.3 [2]). 플레이어는 먼저 인증 핸드 셰이크를 실행해야합니다 (§4.10.2.2 [2]).

따라서 DVD를 읽을 경우 재생할 수없는 암호화 된 데이터를 얻는 것이 아닙니다. 시스템의 일부 프로그램이 Linux 커널에 의해 노출 된 일부 DVD 관련 IOCTL (이 경우 DVD_AUTH )을 사용하여 드라이브에 자체 인증되지 않으면 드라이브는 비트를 다시 보내지 않습니다 . 이것이 I / O 오류로 나타나는 이유입니다.

이 IOCTL의 작동 방식에 대한 자세한 정보는 이 메일 링리스트 게시물을 통해 구현 한 사람으로부터 얻을 수 있지만 기본적으로 사용자 소프트웨어가 DVD 드라이브 하드웨어와의 비밀 핸드 셰이크를 수행 할 수있는 방법을 제공합니다.

VLC 통해이 비밀 악수를 수행 libdvdcss차례에 할 것, GetBusKey()에서를css.c . 아마도 libdvdcss모든 VLC에 의존하는 대신 파일로 액세스하기 위해 드라이브의 잠금을 해제하기 위해 링크 된 독립형 프로그램을 작성할 수 있습니다. 이 잠금 해제 된 일단을 포함, 모든 사람에게 (아직 암호화하지만 지금은 읽을 수) 비트를 다시 보내도록 드라이브는 프로그램이 읽는되는 말할 수 없다 ddcp.

(흥미롭게도 DVD IOCTL은 디스크의 데이터를 읽은 후에 해독 키를 사용하는 유일한 방법입니다. 복사 한 파일 디렉토리를 재생하는 경우 액세스 할 수 없습니다. 키를 얻기 위해 IOCTLs, 그래서 libdvdcss암호화를 해독하기 위해 통계적 cryptanalysis에 의지합니다 .)


답변

왜 이것이 효과가 있는지 잘 모르겠지만 VLC로 DVD를 먼저 열면 메뉴를 볼 수있을뿐 아니라 일시 중지하면 dd가 작동합니다.


답변

VLC로 디스크를 열면 보호 기능이 무시됨을 확인할 수 있습니다. 그러나를 사용할 때 ddVLC를 연 후에 디스크를로드하고 VLC에 노출 된 디렉토리를 사용하여 발견 한 후이 명령을 사용해야했습니다.

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

이 명령이 작동해야한다고 읽은 많은 게시물과 다른 점은 다음과 같습니다.

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

증명:

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:~$


답변

dvdbackup 이라는 프로그램을 추천 할 수 있습니다

DVD 백업 사본을 폴더로 만들 수 있습니다. 나는 그것이 ISO를 만든다고 생각하지 않습니다. 따라서 수동으로이 단계를 수행해야합니다.


답변

사람들은 DVD 메뉴를 표시하는 VLC를 사용하여 DVD를 열면 데이터를 dd에 쉽게 액세스 할 수 있지만 VLC가 왜 그렇게하는지에 대해서는 아무도 설명하지 않았습니다.

‘VLC를 사용한 DVD 열기’도 처음으로 경험했습니다. 따라서 스크립트에서 dd를 사용할 때 다음 순서를 사용합니다.

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

`dd if=/dev/sr0 of=/home/user/Videos/name.iso`


답변