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

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

如何从 ISO 中提取 FreeBSD 库存安装的某些文件夹而不实际安装 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显然,这些文件以某种格式存储,我需要能够解析存在的任何元信息,以找到哪个文件是包含我需要提取的内容的存档,然后提取它。

答案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 并继续破解即可。这似乎是我能想到的最简单的方法。

相关内容