DVD에서 ISO를 만들 때 사람들이 "notrunc"를 사용하는 이유는 무엇입니까?

DVD에서 ISO를 만들 때 사람들이 "notrunc"를 사용하는 이유는 무엇입니까?

아래와 같이 DVD 비디오 디스크에서 ISO 이미지를 만들기 위한 명령줄을 설명하는 많은 기사가 인터넷에 있습니다.

dd if=/dev/sr0 of=mydvd.iso conv=noerror,sync,notrunc

notrunc왜 필요한지 이해하고 싶습니다 . 내가 아는 한, man이 명령에 대한 페이지에서는 notrunc출력 파일이 잘리는 것을 방지할 수 있습니다. 이는 기본적으로 파일이 존재하는 경우 dd이미 있는 내용만 덮어쓰고, 건드리지 않은 내용이 있으면 dd(파일의 다른 지점을 살펴봄으로써) 원본 내용은 변경되지 않고 그대로 유지된다는 의미입니다.

ISO를 만들 때 새롭고 깨끗하며 빈 파일로 시작하고 싶습니까?

정말 불량한 디스크의 경우 제가 생각할 수 있는 유일한 방법은 notrunc동일한 출력 파일에 대해 동일한 dd 명령을 여러 번 실행하여 매번 다른 비트가 채워지도록 하는 dd를 사용하는 것입니다. 출력 파일이 없으면 아무런 효과가 없습니다 notrunc.

그렇습니까, 아니면 모두가 지정하는 다른 이유가 있습니까 notrunc?

(CSS, ARccOS 등을 우회하는 방법을 묻는 것이 아니라 dd사용법만 묻는 것입니다.)

답변1

내가 추측해야한다면,에 관한 Wikipedia 기사dd:

notrunc 변환 옵션은 출력 파일이 잘리지 않음을 의미합니다. 즉, 출력 파일이 이미 존재하는 경우 지정된 바이트만 교체되고 출력 파일의 나머지 부분은 유지됩니다.

notrunc성능상의 이유로 사용됩니다 . 몇 바이트/킬로바이트/메가바이트 등을 업데이트하기 위해 전체 파일을 다시 작성할 필요가 없습니다.

노트:이 질문에 대한 최종 답변은 StackOverflow Q&A여야 합니다.@garethTheRed댓글에서 인용한 제목은 다음과 같습니다.dd를 사용하여 디스크를 복제할 때 왜 conv=notrunc를 사용합니까?. 대답은 훌륭하며 O_TRUNC블록 장치 및 파일에 미치는 영향을 보여주는 C++ 프로그램이 포함되어 있습니다.

답변2

전체 DVD를 DVD의 페이로드만 포함하는 파일로 복사하려는 경우에는 이 작업이 필요하지 않습니다. 실제로 notrunc는 개인 정보 보호 위험을 초래하며 DVD 페이로드보다 큰 오래된 파일을 덮어쓸 경우 미디어 오버플로를 일으킬 수 있습니다. 이 경우 이전 파일의 나머지 블록은 복사된 DVD 콘텐츠에 추가된 상태로 유지됩니다. 따라서 파일 시스템과 함께 새 DVD에 복사됩니다.

Starfry의 의견에서는 ISO 9660 파일 시스템의 블록만 복사하는 것이 좋습니다(실제로 ISO 9660인 경우). 이는 DVD 미디어가 파일 시스템보다 더 많은 블록을 전달할 수 있기 때문에 유용합니다.

관련 정보