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をマウント解除してクラッキングを続行します。これが私が考えることができる最も簡単な方法のようです。

関連情報