아래와 같이 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 미디어가 파일 시스템보다 더 많은 블록을 전달할 수 있기 때문에 유용합니다.