FreeBSD 15 Alphas更新和升级

我为了能够 FreeBSD 15环境bhyve中实现NVIDIA GPU passthrough ,在9月中旬FreeBSD 15处于Alpha 1阶段时安装了这个最新版本。

按照 FreeBSD更新和升级 工具 freebsd-update 说明,该二进制升级是支持 ALPHA, BETA, RC 和 RELEASE 版本的。但是,我执行:

获取完整的Core OS软件系统索引
freebsd-update fetch

提示报错:

在FreeBSD 15 Alpha 1 上执行 freebsd-update 报错
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update1.freebsd.org... failed.
Fetching public key from update2.freebsd.org... failed.
Fetching public key from dualstack.aws.update.freebsd.org... failed.
No mirrors remaining, giving up.

This may be because upgrading from this platform (amd64)
or release (15.0-ALPHA1) is unsupported by freebsd-update. Only
platforms with Tier 1 support can be upgraded by freebsd-update.
See https://www.freebsd.org/platforms/ for more info.

If unsupported, FreeBSD must be upgraded by source.

我看了一下 FreeBSD 15.0 Release Process :

  • ALPHA2 builds 是9月12日开始构建,9月14日完成

  • 当前是9月15日(北京时间)

看起来现在还没有来得及发布更新二进制包,所以当前更新需要采用 从源代码编译构建FreeBSD 完成升级安装:

使用 shallow clone 获取 stable/15 分支最新版本
git clone --depth 1 -b stable/15 https://git.freebsd.org/src.git /usr/src
  • 执行编译内核或userland(world):

编译和安装
# 步骤1: 清除旧objects并构建 "world" (userland)
sudo make -j$(sysctl -n kern.smp.cpus) buildworld

# 步骤2: 构建内核
sudo make -j$(sysctl -n kern.smp.cpus) buildkernel

# 步骤3: 安装新内核
sudo make installkernel

# 步骤4: 重启到新内核,然后在安装新的 "world"
sudo shutdown -r now

# 步骤5: 在installworld之前更新和合并配置
etcupdate -p

# 重启以后,登陆系统并继续完成安装world
sudo make installworld

# 更新和合并 etc 配置
etcupdate -B

# 再次重启
sudo shutdown -r now

我在 alpha 2 升级到 alpha 4 时,执行 make installworld 遇到过报错:

执行 make installworld 显示缺少 audit 组
make[1]: /usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk:1: Using cached toolchain metadata from build at xcloud on Tue Sep 30 08:34:46 CST 2025
ERROR: Required audit group is missing, see /usr/src/UPDATING.
*** Error code 1

Stop.
make[1]: stopped making "installworld" in /usr/src
*** Error code 1

Stop.
make: stopped making "installworld" in /usr/src

参考 Required audit group is missing... 手工修订 /etc/group 添加一行:

手工修订 /etc/group 添加一行 audit 组配置
audit:*:77:

不过,最终我还是从另外一台FreeBSD上复制 /etc/group 来解决(似乎是之前误操作修改错了这台主机的 /etc/group )

  • 确保 /etc 目录下配置文件更新为符合新的upserspace:

更新 /etc 目录下配置
etcupdate
  • 然后检查新版本不需要的文件并删除

清理就文件和库
cd /usr/src
make check-old
make delete-old
make check-old-libs
make delete-old-libs
  • 最后检查 uname -r 可以看到系统已经升级到 15.0-ALPHA2