從 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 時,您會注意到它們不包含文件夾,這可以從安裝 ISO 的文件夾中的 whileusr
輸出中輕鬆看出。find -type d -name usr
顯然,這些文件以某種格式儲存起來,我需要能夠解析任何存在的元資訊,以找到包含我需要提取的內容的存檔文件,然後提取它。
如果您從例如<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/
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 並繼續破解。這似乎是我能想到的最簡單的方法。