実際にFreeBSDをインストールせずにISOからFreeBSDの基本インストールの一部のフォルダを抽出するにはどうすればよいですか?
私はFreeBSDのさまざまなメジャーバージョン用に複数のクロスコンパイラを構築しようとしていますが、いくつかのインクルードファイルをインポートする必要がありますlibc
。/usr/include
/usr/lib
編集する:最初の答えを見ると、もう少し詳しく説明する必要があるようです。 ISOファイルをマウントするのは簡単で、多くのプラットフォーム(Linuxシステムなど)で実行する方法を知っていますmount -o loop FreeBSD-7.0-RELEASE-amd64-disc1.iso freebsd7/
。ただし、FreeBSDのインストールISOをマウントすると、usr
ISOがマウントされているフォルダ内の出力に見やすいフォルダが含まれていないことがわかります。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.iso
ISOイメージを特定の場所にマウントし、その場所でファイル操作を実行すると(少なくとも画像については)これを行うことができます。それは次のとおりです。
# 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をマウント解除してクラッキングを続行します。これが私が考えることができる最も簡単な方法のようです。