dd를 사용하여 DVD를 복사할 수 없는 이유는 무엇입니까?

dd를 사용하여 DVD를 복사할 수 없는 이유는 무엇입니까?

나는 dd를 시도했다.dd_rescue그리고구조하다, 모두 실패했습니다. 나는 이 도구들이 파일 시스템을 우회하고 비트 단위 복사를 수행한다고 생각합니다.

dd는 속아서 완료되었지만 작은 파일만 생성하고 완료되었다고 선언했습니다.

dd_rescuse 및 ddrescue는 읽기 오류에 대해 불평하고 참을 수 없을 정도로 느립니다. 이러한 도구는 10분 안에 몇 MB만 복사할 수 있습니다.

중요: VLC는 DVD를 열 수 없습니다.

왜 이런 일이 발생합니까? 이 도구는 왜 실패합니까?


모든 DVDWin7 호스트에서 CD를 빠르게 복사할 수 있습니다. UDF 파일 시스템이 패치되었다고 나오며, 이상하게도 배드섹터가 없다고 나옵니다. 전체 디스크를 10분 안에 복사할 수 있습니다.


고쳐 쓰다:해결책은 내 문서를 참조하세요.슈퍼유저에 대한 비슷한 질문.

답변1

사람들은 VLC(DVD 메뉴 표시)로 DVD를 열면 마술처럼 데이터에 접근할 수 있다고 언급했지만 dd, 아직까지 왜 그런 일이 발생하는지, 그리고 VLC가 어떻게 이 기능을 수행하는지 설명하지 않았습니다.

TV에 연결된 Kodi 장치에서 내 컴퓨터의 DVD를 재생하려고 할 때 SMB를 사용하여 네트워크를 통해 DVD 드라이브의 루트를 공유함으로써 이 동작을 성공적으로 복제했습니다. 성공하지 못했습니다.~하지 않는 한처음에 VLC로 DVD를 열었는데, 그 시점에서 Kodi가 마술처럼 파일을 재생했습니다.

이 마법이 내 감성을 상하게 해서 파헤치기 시작했어요. 문제의 근본 원인은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에 전혀 의존하지 않고 파일로 액세스하기 위해 드라이브 잠금을 해제하기 위해 연결된 독립 실행형 프로그램을 작성할 수 있을 것입니다 . 잠금이 해제되면 드라이브는 어떤 프로그램이 데이터를 읽고 있는지 알 수 없으므로 (여전히 암호화되어 있지만 지금은 읽을 수 있는) 비트를 dd또는 를 포함한 누구에게나 보냅니다 cp.

(흥미롭게도 DVD IOCTL은 디스크의 데이터를 읽은 후 디스크의 데이터를 해독하는 데 사용되는 암호 해독 키를 얻을 수 있는 유일한 실제 방법이기도 합니다. 파일 디렉토리의 복사본을 재생하는 경우에는 IOCTL에 액세스할 수 있으므로 키를 얻으세요.libdvdcss통계적 암호 분석을 통한 암호화 크래킹.)

답변2

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

이 경우 dd복사 방지 구성표의 일부인 디스크의 의도적인 읽기 오류로 인해 종료된 것으로 의심됩니다. dd질문에 명령줄 출력을 포함 하면 이를 확인하는 데 도움이 됩니다. 명령 출력에 일부 읽기 오류가 기록되어 있을 수도 있습니다 dmesg.

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

답변3

왜 이런 일이 발생하는지 모르겠지만 먼저 메뉴를 볼 수 있을 만큼 VLC로 DVD를 연 다음 일시 중지하여 dd가 작동하도록 합니다.

답변4

사람들은 VLC(DVD 메뉴 표시)로 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`

관련 정보