Package-Management

從 FreeBSD ISO 中提取文件 - 如何知道位置?

  • November 1, 2015

如何在不實際安裝 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 並繼續破解。這似乎是我能想到的最簡單的方法。

引用自:https://unix.stackexchange.com/questions/31766