xorriso를 사용하여 iso를 추출할 때 추출된 경로를 제외하는 방법

xorriso를 사용하여 iso를 추출할 때 추출된 경로를 제외하는 방법

예를 들어, 우분투 라이브 ISO에서 모든 파일을 추출하려고 합니다.와는 별개로/casper/filesystem.squashfs. 매뉴얼 페이지에 따르면:

       Normally  xorriso  only writes to disk files which were given as stdio:
       pseudo-drives or as log files.  But its alter ego osirrox  is  able  to
       extract  file  objects  from  ISO  images  and to create, overwrite, or
       delete file objects on disk.
       Disk file exclusions by -not_mgt, -not_leaf, -not_paths apply.

다음을 사용하여 iso의 모든 경로를 추출할 수 있습니다.

xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -extract / extract_dir

하지만 디스크 파일 제외를 사용해 보았지만 아무 소용이 없었습니다. 액션 전후에 다양한 변형이나 not_leaf시퀀스를 시도했습니다. 둘 다 모든 경로를 추출합니다. 제가 시도한 몇 가지는 다음과 같습니다.not_paths-extract

사용 not_leaf:

xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -not_leaf 'filesystem.squashfs' -extract / extracted_dir
xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -extract / extracted_dir -not_leaf 'filesystem.squashfs'
xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -not_mgt on -not_leaf 'filesystem.squashfs' -extract / extracted_dir
xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -not_mgt on -extract / extracted_dir -not_leaf 'filesystem.squashfs'

not_paths위의 재정렬과 함께 사용됩니다.

xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -not_mgt on -not_paths 'casper/filesystem.squashfs' -- -extract / extracted_dir
xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -not_mgt on -not_paths '/casper/filesystem.squashfs' -- -extract / extracted_dir
xorriso -osirrox on -indev ubuntu-21.04-desktop-amd64.iso -not_mgt on -not_paths 'extracted_dir/casper/filesystem.squashfs' -- -extract / extracted_dir

not_leaf또는으로 답변을 수락 not_paths하지만 둘 다 선호합니다. 이것이 어떻게 작동해야 하는지에 대한 논리를 설명하는 것이 좋을 것입니다(즉, 왜 이해하지 못하는 걸까요?).

답변1

-not_leaf및 에 대한 설정은 -no_pathISO 이미지에 나무를 삽입하는 경우에 대한 것입니다.

osirrox의 경우 ISO에서 완전히 복사하려면 트리의 내용을 (일시적으로) 줄여야 합니다. 이를 위해 -rmxorriso 명령을 사용하십시오. -rm_r두 가지 모두 " "로 끝나야 하는 가변 길이 매개변수 목록을 가지고 있습니다 --. 정상적인 절차가 끝나면 변경 사항이 아직 ISO에 저장되지 않았기 때문에 저항이 발생합니다. (배치에서 FAILURE가 발생하고 대화상자에서 종료할 수 없습니다.) 최종 명령으로 이를 방지하세요 -rollback_end.


xorriso -osirrox on \
        -indev ubuntu-21.04-desktop-amd64.iso \
        -rm /casper/filesystem.squashfs -- \
        -extract / extract_dir \
        -rollback_end

또 다른 문제는 Ubuntu ISO의 읽기 전용 디렉터리 권한일 수 있습니다. 추출 후 작업을 방해합니다. ISO 내에서는 -find다음 명령을 사용하여 이를 변경할 수 있습니다.


xorriso -osirrox on \
        -indev ubuntu-21.04-desktop-amd64.iso \
        -rm /casper/filesystem.squashfs -- \
        -find / -type d -exec chmod u+w -- \
        -extract / extract_dir \
        -rollback_end

ISO에 대한 모든 변경은 -extract명령 전에 완료되어야 한다는 점을 기억하십시오. 순서가 중요합니다.

관련 정보