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 명령을 여러 번 실행하여 매번 다른 비트를 채울 수 있다는 것입니다. 출력 파일이 존재하지 않으면 notrunc아무런 효과가 없습니다.

그게 다인가요, 아니면 모두가 지정하는 다른 이유가 있나요 notrunc?

(CSS, ARccOS 등을 해결하는 방법을 묻는 것이 아니라 dd사용법에 관한 것입니다.)

답변1

내가 추측해야 한다면, 이 댓글을 바탕으로Wikipedia 기사dd:

notrunc 변환 옵션은 출력 파일을 자르지 않음을 의미합니다. 즉, 출력 파일이 이미 존재하는 경우 지정된 바이트만 바꾸고 출력 파일의 나머지 부분은 그대로 둡니다.

notrunc성능상의 이유로 를 사용하는 것입니다. 단지 몇 바이트/KB/메가바이트 등을 업데이트하기 위해 전체 파일을 다시 쓰는 것은 의미가 없습니다.

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

답변2

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

DVD 매체가 파일 시스템의 블록보다 더 많은 블록을 제공할 수 있기 때문에 ISO 9660 파일 시스템의 블록(실제로 ISO 9660인 경우)만 복사하라는 starfry의 의견은 매우 유용합니다.

관련 정보