FreeBSD ISO에서 파일 추출 - 위치를 아는 방법은 무엇입니까?

FreeBSD ISO에서 파일 추출 - 위치를 아는 방법은 무엇입니까?

실제로 FreeBSD를 설치하지 않고 ISO에서 FreeBSD 기본 설치의 일부 폴더를 추출하려면 어떻게 해야 합니까?

저는 FreeBSD의 다양한 주요 버전에 대한 여러 크로스 컴파일러를 구축하려고 하는데 일부 포함 파일을 가져와야 하며 libc그 일부를 추출할 수 있기를 원합니다.../usr/include/usr/lib

편집하다:첫 번째 답변을 보면 좀 더 자세히 설명해야 할 것 같습니다. ISO 파일을 마운트하는 것은 간단하며 많은 플랫폼(예: Linux 시스템)에서 수행하는 방법을 알고 있습니다 mount -o loop FreeBSD-7.0-RELEASE-amd64-disc1.iso freebsd7/. 그러나 FreeBSD의 설치 ISO를 마운트하면 usrISO가 마운트된 폴더 내부의 출력에서 ​​쉽게 볼 수 있는 폴더가 포함되어 있지 않다는 것을 알 수 있습니다 . find -type d -name usr분명히 이러한 파일은 어떤 형식으로 저장되어 있으며 어떤 파일이 추출해야 하는 내용이 포함된 아카이브인지 찾아 추출하기 위해 존재하는 모든 메타 정보를 구문 분석할 수 있어야 합니다.

답변1

예를 들어 파일을 다운로드하는 경우ftp://ftp.fr.freebsd.org/pub/FreeBSD/releases/amd64/8.2-RELEASE/base/(ISO에서도 찾을 수 있습니다) 다음을 사용하여 추출할 수 있습니다.

cat base.?? | tar --unlink -xpzf -

install.sh( 같은 디렉토리 에서 가져옴 )

또한 base.mtree파일은 아카이브의 내용을 설명합니다.

추가 아카이브도 찾을 수 있습니다. 예를 들어, manpages여기에는 넣을 매뉴얼 페이지가 포함되어 있고 /usr/share/man/, kernels커널 모듈이 포함되어 있으며, dict넣을 단어 목록이 포함되어 있습니다./usr/share/dict/

답변2

FreeBSD-9.0-RELEASE-i386-disc1.isoISO 이미지를 특정 위치에 탑재하고 해당 위치에서 파일 작업을 수행하면 (적어도 이미지에 대해서는) 이 작업을 수행 할 수 있습니다 . 그것은 다음과 같습니다:

# mkdir /mnt/freebsd
# mount -t auto /path/to/install_image.iso /mnt/freebsd
# cp -r /mnt/freebsd/usr/include /some/other/location
  ...
# umount /mnt/freebsd

아무것도 설치할 필요가 없습니다. 따라서 모든 것이 준비되면 ISO를 마운트 해제하고 크래킹을 진행하십시오. 이것이 제가 생각할 수 있는 가장 쉬운 방법인 것 같습니다.

관련 정보