我有几个由前系统管理员制作的旧版 FreeBSD VM,他做了一些奇怪的技巧来节省虚拟机管理程序的存储空间:他从 iso 安装了一个 VM,对其进行了一些设置,安装了所需的软件,然后删除了 ports 树和所有包管理相关的目录(所以基本上 VM 被精简为 1-2 Gb),然后克隆此 VM 并根据需要更改一些设置。
现在,随着软件版本变旧并且需要考虑安全更新,我面临的问题是我无法对这些虚拟机做任何事情。
没有留下任何文档,也没有人知道此人对 FreeBSD 有深入的了解,所以我怀疑他在删除目录时是否做了类似外科手术的细化工作 —— 至少,没有 pkg 或 freebsd-upgrade 可以处理文件系统缺失的部分。
有没有办法以“安装升级”模式运行 iso(就像可以使用 Windows 安装程序一样)以便安装的 FreeBSD 修复丢失的文件?
PS 我只能考虑从头开始设置相同的虚拟机并从“剥离”的虚拟机中复制配置,但这种方法非常耗时,所以也许可以用不同的方法来修复它?
谢谢你!
答案1
您可以从这里下载基本 tar:
https://download.freebsd.org/ftp/releases/amd64/amd64/13.0-RELEASE/base.txz
(请务必选择适当的版本和架构,这只是使用最新版本和 amd64 架构的示例 URL)
您应该能够使用 下载它fetch
,然后在 中解压它/
,但请务必事先将配置文件保存在 /etc/ 中,例如rc.conf
、passwd
、master.passwd
、group
等。
这应该会让你恢复系统缺失的部分,所以你会有freebsd-update
,等等。
从那里,您应该能够使用 bootstrap pkg
(/usr/sbin/pkg
)来安装 的完整版本pkg
。请参阅此页面:
https://docs.freebsd.org/en/books/handbook/ports/#pkgng-intro
了解更多详情。
除非您需要自定义软件包,否则您应该能够使用预构建的软件包,而不是自己从端口构建它们。如果您需要自定义,那么您需要从端口构建。您可以在此处找到更多详细信息:
https://docs.freebsd.org/en/books/handbook/ports/#ports-using