FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 从入门到追忆(第三版:草稿)
  • 编辑日志
  • 目录
  • 致谢
  • 前言
  • 第 1 章 FreeBSD 初见
    • 第 1.1 节 操作系统的历程:UNIX、Unix-like、Linux & FreeBSD
    • 第 1.2 节 FreeBSD 简史
    • 第 1.3 节 谁在使用 FreeBSD?
    • 第 1.4 节 为什么要使用 FreeBSD?
    • 第 1.5 节 Linux 用户迁移指南
    • 第 1.6 节 FreeBSD 桌面发行版
  • 第 2 章 安装 FreeBSD
    • 第 2.1 节 安装前准备(新手入门版本)
    • 第 2.2 节 FreeBSD 安装图解(新手入门版本)
    • 第 2.3 节 UNIX 基础(新手入门版本)
    • 第 2.4 节 命令行基础(新手入门版本)
    • 第 2.5 节 安装 FreeBSD——基于 VMware Workstation Pro
    • 第 2.6 节 安装 FreeBSD——基于 Virtual Box
    • 第 2.7 节 手动安装双系统(先安装 FreeBSD)
    • 第 2.8 节 手动安装双系统(后安装 FreeBSD)
    • 第 2.9 节 安装 FreeBSD——基于 Apple M1 & Parallels Desktop 20
    • 第 2.10 节 安装 FreeBSD——基于 Apple M1 & VMware Fusion Pro
    • 第 2.11 节 Qemu 安装 RISC-V FreeBSD(基于 x86 Windows)
    • 第 2.12 节 云服务器安装 FreeBSD(基于腾讯云轻量云)
    • 第 2.13 节 安装 FreeBSD——基于 Hyper-V
  • 第 3 章 包管理器与 FreeBSD 系统更新
    • 第 3.1 节 FreeBSD 镜像站现状
    • 第 3.2 节 FreeBSD 换源方式
    • 第 3.3 节 gitup 的用法
    • 第 3.4 节 通过 pkg 包管理器安装二进制包
    • 第 3.5 节 通过 Ports 以源代码方式安装软件
    • 第 3.6 节 通过 DVD 安装软件
    • 第 3.7 节 通过 freebsd-update 更新 FreeBSD
    • 第 3.8 节 通过源代码更新 FreeBSD
    • 第 3.9 节 使用 pkgbase 更新 FreeBSD
  • 第 4 章 桌面环境
    • 第 4.1 节 显卡驱动(英特尔、AMD)
    • 第 4.2 节 显卡驱动(NVIDIA)
    • 第 4.3 节 GNOME
    • 第 4.4 节 Mate
    • 第 4.5 节 Xfce
    • 第 4.6 节 Cinnamon
    • 第 4.7 节 Lumina
    • 第 4.8 节 LXQt
    • 第 4.9 节 bspwm
    • 第 4.10 节 IceWM
    • 第 4.11 节 Budgie
    • 第 4.12 节 i3wm
    • 第 4.13 节 CDE
    • 第 4.14 节 Hyprland
    • 第 4.15 节 LXDE
    • 第 4.16 节 Window Maker
    • 第 4.17 节 Fluxbox
    • 第 4.18 节 KDE6
    • 第 4.19 节 主题美化
    • 第 4.20 节 远程桌面
    • 第 4.21 节 root 登录桌面
  • 第 5 章 中文环境配置
    • 第 5.1 节 本地化环境变量
    • 第 5.2 节 Fcitx 输入法框架
    • 第 5.3 节 IBus 输入法框架
    • 第 5.4 节 五笔输入法
    • 第 5.5 节 Firefox 与 Chromium
    • 第 5.6 节 QQ(Linux 版)
    • 第 5.7 节 更换字体
    • 第 5.8 节 金山 WPS(Linux 版)
    • 第 5.9 节 压缩与解压
    • 第 5.10 节 微信(Linux 版)
  • 第 6 章 多媒体与外设
    • 第 6.1 节 声卡
    • 第 6.2 节 蓝牙
    • 第 6.3 节 打印机
    • 第 6.4 节 触摸板
    • 第 6.5 节 音频播放器
    • 第 6.6 节 视频播放器
    • 第 6.7 节 音频图形图像处理
  • 第 7 章 代理服务器
    • 第 7.1 节 HTTP 代理
    • 第 7.2 节 V2ray
    • 第 7.3 节 Mihomo(原 Clash)
    • 第 7.4 节 OpenVPN
  • 第 8 章 账户与权限
    • 第 8.1 节 sudo 与 doas
    • 第 8.2 节 用户与组
    • 第 8.3 节 用户权限
  • 第 9 章 Jail
    • 第 9.1 节 Jail 配置
    • 第 9.2 节 Jail 更新
    • 第 9.3 节 使用 Qjail 管理 Jail
  • 第 10 章 虚拟化
    • 第 10.1 节 通过 BVCP 以网页管理 BHyve
    • 第 10.2 节 使用 bhyve 安装 Windows 11(vm-bhyve)
  • 第 11 章 计算机概论
    • 第 11.1 节 存储卡参数简介与测试
    • 第 11.2 节 总线接口与协议
    • 第 11.3 节 网络基础
    • 第 11.4 节 操作系统
    • 第 11.5 节 MySQL 数据库
  • 第 12 章 引导恢复与 TTY 配置
    • 第 12.1 节 单用户模式与密码重置
    • 第 12.2 节 配置 rEFInd(双系统用)
    • 第 12.3 节 FreeBSD 中文 TTY 控制台
    • 第 12.4 节 引导界面与控制台界面
    • 第 12.5 节 Grub & UEFI 与 efibootmgr
  • 第 13 章 FreeBSD 系统管理
    • 第 13.1 节 FreeBSD src 源码概览
    • 第 13.2 节 FreeBSD 系统概览
    • 第 13.3 节 bsdconfig 系统配置工具
    • 第 13.4 节 SSH 配置与相关工具
    • 第 13.5 节 BSD init 管理服务
    • 第 13.6 节 利用脚本自动生成 BSDlibc 库文本
  • 第 14 章 网络管理
    • 第 14.1 节 TCP 堆栈
    • 第 14.2 节 WiFi
    • 第 14.3 节 USB 网络共享(USB tethering)
    • 第 14.4 节 USB 网卡 & 以太网卡
  • 第 15 章 FreeBSD 防火墙
    • 第 15.1 节 网络参数配置命令
    • 第 15.2 节 Packet Filter(PF)
    • 第 15.3 节 IPFilter(IPF)
    • 第 15.4 节 ipfirewall(IPFW)
    • 第 15.5 节 Fail2Ban(基于 IPFW、PF、IPF)
  • 第 16 章 服务器
    • 第 16.1 节 FTP 服务器
    • 第 16.2 节 MinIO 对象存储服务
    • 第 16.3 节 Gitlab-EE
    • 第 16.4 节 时间服务
    • 第 16.5 节 WildFly
    • 第 16.6 节 Rsync 同步服务
    • 第 16.7 节 Samba 服务器
    • 第 16.8 节 NFS 服务器
    • 第 16.9 节 Webmin
  • 第 17 章 网络服务器
    • 第 17.1 节 Apache
    • 第 17.2 节 Nginx
    • 第 17.3 节 PHP 8.X
    • 第 17.4 节 MySQL 5.X
    • 第 17.5 节 MySQL 8.X
    • 第 17.6 节 NextCloud——基于 PostgreSQL
    • 第 17.7 节 Telegraf+InfluxDB+Grafana 监控平台
    • 第 17.8 节 PostgreSQL 与 pgAdmin4
    • 第 17.9 节 AList
    • 第 17.10 节 prometheus 监控部署
    • 第 17.11 节 MongoDB 80
    • 第 17.12 节 Tomcat
    • 第 17.13 节 Caddy
    • 第 17.14 节 OnlyOffice(基于 PostgreSQL)
    • 第 17.15 节 Zabbix 监控(基于 PostgreSQL)
  • 第 18 章 嵌入式(树莓派、RISCV)
    • 第 18.1 节 树莓派简介与配件选用
    • 第 18.2 节 树莓派安装 FreeBSD
    • 第 18.3 节 树莓派 FreeBSD 配置
    • 第 18.4 节 树莓派与 Linux 兼容层
    • 第 18.5 节 树莓派与 OpenBSD
    • 第 18.6 节 在 RISCV 开发板上安装 OpenBSD
    • 第 18.7 节 Radxa X4(x86)
  • 第 19 章 文学故事
    • 第 19.1 节 BSD 与哲学家 George Berkeley(乔治·贝克莱)
    • 第 19.2 节 加州大学伯克利分校与“Fiat Lux”(要有光)
  • 第 20 章 游戏与科学
    • 第 20.1 节 游戏
    • 第 20.5 节 科研与专业工具
    • 第 20.6 节 我的世界(Minecraft)
  • 第 21 章 Linux 兼容层
    • 第 21.1 节 Linux 兼容层实现
    • 第 21.2 节 Linux 兼容层——基于 CentOS(FreeBSD Port)
    • 第 21.3 节 Linux 兼容层——基于 Ubuntu/Debian
    • 第 21.4 节 Linux 兼容层——基于 ArchLinux bootstrap
    • 第 21.5 节 Linux 兼容层——基于 archlinux-pacman
    • 第 21.6 节 Linux 兼容层——基于 OpenSUSE
    • 第 21.7 节 Linux 兼容层——基于 Gentoo Linux
    • 第 21.8 节 Linux 兼容层——基于 Rocky Linux
    • 第 21.9 节 Linux 兼容层——基于 Slackware Linux
    • 第 21.10 节 RockyLinux 兼容层(FreeBSD Port)
    • 第 21.11 节 Linux 兼容层——基于 Deepin
    • 第 21.12 节 Linux 兼容层与 Jail
    • 第 21.13 节 Linux 兼容层故障排除与未竟事宜
  • 第 22 章 编程环境与软件开发
    • 第 22.1 节 如何报告 Bug
    • 第 22.2 节 如何开发一个 Port
    • 第 22.3 节 如何参与 FreeBSD 开发
    • 第 22.4 节 C/C++ 环境的配置
    • 第 22.5 节 Java 环境的配置
    • 第 22.6 节 QT 环境的配置
    • 第 22.7 节 Python 与 VS Code
    • 第 22.8 节 Rust/Go 环境的配置
    • 第 22.9 节 Shell
    • 第 22.10 节 通过 IDA 7 调试 FreeBSD
    • 第 22.11 节 如何订阅 FreeBSD 的邮件列表
    • 第 22.12 节 code-server 和 clangd
    • 第 22.13 节 Node.js
  • 第 23 章 文件系统与磁盘管理
    • 第 23.1 节 自动挂载文件系统
    • 第 23.2 节 ZFS
    • 第 23.3 节 磁盘扩容
    • 第 23.4 节 NTFS & Fat32
    • 第 23.5 节 Swap 交换分区的设置
    • 第 23.6 节 Linux 文件系统
    • 第 23.7 节 ZFS 磁盘加解密
  • 第 24 章 DragonFly BSD
    • 第 24.1 节 DragonFly BSD 概述
    • 第 24.2 节 安装 DragonFly BSD
    • 第 24.3 节 配置 DragonFly BSD
  • 第 25 章 TwinCAT/BSD
    • 第 25.1 节 TwinCAT/BSD 系统安装与基本配置
    • 第 25.2 节 TwinCAT/BSD 开发环境配置
  • 第 26 章 OpenBSD
    • 第 26.1 节 OpenBSD 概述
    • 第 26.2 节 安装 OpenBSD
    • 第 26.3 节 配置 OpenBSD
    • 第 26.4 节 OpenBSD 包管理器
    • 第 26.5 节 桌面与其他软件
  • 第 27 章 NetBSD
    • 第 27.1 节 NetBSD 概述
    • 第 27.2 节 NetBSD 安装图解
    • 第 27.3 节 NetBSD 换源与包管理器
    • 第 27.4 节 桌面与中文环境常用软件
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 更新系统
  • 参考文献
  • 环境准备
  • 常规的安全更新
  • 大小版本更新
  • 更新 EFI 引导
  • 可选更新
  • 查看 FreeBSD 版本
  • freebsd-version 命令
  • uname 命令
  • 故障排除与未竟事宜
  • 回滚更新
  • pkg 找不到 .so
  • FreeBSD 升级出错,没有 ntp 用户
在GitHub上编辑
导出为 PDF
  1. 第 3 章 包管理器与 FreeBSD 系统更新

第 3.7 节 通过 freebsd-update 更新 FreeBSD

上一页第 3.6 节 通过 DVD 安装软件下一页第 3.8 节 通过源代码更新 FreeBSD

最后更新于20天前

前排提示

阿里云服务器用户升级到 13.x 请看第 2.1 节“使用 virtio 技术半虚拟化的虚拟机”部分。

注意:

只有一级架构的 release 版本才提供该源。也就是说 current 和 stable 是没有的。关于架构的支持等级说明请看:

在 FreeBSD 15 的开发计划中,预计将使用 pkgbase 替代 freebsd-update。

注意

ZFS 相关升级请参见 ZFS 章节

更新系统

FreeBSD 提供了实用工具 freebsd-update 来安装系统更新,包括升级到大版本。freebsd-update 在 FreeBSD 7.0-RELEASE 中得到了正式支持。

参考文献

  • ,freebsd-update(8) provides officially supported binary upgrades to new releases in addition to security fixes and errata patches.

环境准备

  • 如果是 csh(14 以下 root 默认为 csh):

# setenv EDITOR /usr/bin/ee # 切换 vi 为 ee,vi 不会用
# setenv VISUAL /usr/bin/ee # 切换 vi 为 ee,vi 不会用
  • 如果是 bash、zsh 或 sh(14 及以上 root 默认为 sh):

# export  EDITOR=/usr/bin/ee # 切换 vi 为 ee,vi 不会用
# export  VISUAL=/usr/bin/ee # 切换 vi 为 ee,vi 不会用

检查验证:

root@ykla:/home/ykla # echo $EDITOR
/usr/bin/ee
root@ykla:/home/ykla # echo $VISUAL
/usr/bin/ee

常规的安全更新

# freebsd-update fetch

当出现类似于如下信息时:

usrlinclude/c++/vl/trllvector usrlinclude/c++/vl/trllversion usrlinclude/c++/v1/trl/wchar.h usr/include/c++/v1/tr1/wctype.h usrlinclude/c++/vllunwind-armh
usrlinclude/c++/v1/unwind-itaniumh usrlinclude/c++/vllunwindh
usr/include/crypto/ cryptodevh usrlinclude/crypto/cbcmac.h usr/include/crypto/deflate.h usrlinclude/crypto/gfmult.h usr/include/crypto/gmac.h
usr/include/crypto/rijndael.h usrlinclude/crypto/rmd160.h usr/include/crypto/xform.h
usr/lib/clang/11.0.1/include
:

你只需要输入 q 回车即可。然后:

# freebsd-update install

大小版本更新

注意

以 FreeBSD 14.1-RELEASE 升级 14.2-RELEASE 为例

则,现在要更新到 14.2-RELEASE:

# freebsd-update upgrade -r 14.2-RELEASE

当出现类似于下列信息时,按照下方提示操作:

root@ykla:/home/ykla # freebsd-update upgrade -r 14.2-RELEASE
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 14.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg world/base world/lib32

The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg

Does this look reasonable (y/n)? # 在这里输入 y,然后回车即可,在检查基本组件的安装情况。

Fetching metadata signature for 14.2-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done. # 这里在检查系统,从上面的回车到这里需要等待约 10 分钟。
Fetching files from 14.1-RELEASE for merging... done.
Preparing to download files...   # 这里在准备要下载的文件,需要等待约 15 分钟。
# 下面需要等待约 30 分钟。注意,当跨大版本更新时,有时候需要等待 5 小时会更长时间,这都是正常的。
Fetching 4070 patches.....10....20....30....40...

…………中间省略………………

....4000....4010....4020....4030....4040....4050....4060....4070 done.
Fetching 35 files... ....10....20....30.. done. # 打补丁,需要等待约 5 分钟
Attempting to automatically merge changes in files... done.

The following changes, which occurred between FreeBSD 14.1-RELEASE and
FreeBSD 14.2-RELEASE have been merged into /etc/ssh/sshd_config:
--- current version
+++ new version
@@ -103,11 +103,11 @@
 #PidFile /var/run/sshd.pid
 #MaxStartups 10:30:100
 #PermitTunnel no
 #ChrootDirectory none
 #UseBlacklist no
-#VersionAddendum FreeBSD-20240318
+#VersionAddendum FreeBSD-20240806
 
 # no default banner path
 #Banner none
 
 # override default of no subsystems
Does this look reasonable (y/n)? # 输入 y 回车,这里在确认系统文件的变动。
The following files will be removed as part of updating to
14.2-RELEASE-p0:
/usr/lib/ossl-modules/fips.so
/usr/lib32/ossl-modules/fips.so
/usr/share/examples/sound/README
/usr/share/examples/sound/basic.c
/usr/share/examples/sound/ossinit.h
/usr/share/examples/sound/ossmidi.h
/usr/share/man/man9/ifaddr_byindex.9.gz
/var/db/etcupdate/log
/var/db/locate.database
(END)  # 这里输入 q,确认变动
The following files will be added as part of updating to
14.2-RELEASE-p0:
/boot/kernel/bnxt_re.ko
/boot/kernel/gpioaei.ko
/boot/kernel/if_rtw89.ko
/boot/kernel/linuxkpi_video.ko
…………中间省略………………
/usr/share/examples/sound/sndstat_nv.c
: # 这里输入 q,确认变动,直至没有新内容出现

…………中间省略………………

The following files will be updated as part of updating to
14.2-RELEASE-p0:
/bin/[
/bin/cat
/bin/chflags

…………中间省略………………

/bin/ln
/bin/ls
/bin/mkdir
To install the downloaded upgrades, run 'freebsd-update [options] install'.

运行 freebsd-update install 以安装更新:

root@ykla:/home/ykla # freebsd-update install
src component not installed, skipped
Creating snapshot of existing boot environment... done.
Installing updates...
Kernel updates have been installed.  Please reboot and run
'freebsd-update [options] install' again to finish installing updates.

内核更新已经安装,系统要求重启:

root@ykla:/home/ykla # reboot

运行 freebsd-update install 安装用户空间的更新部分:

# freebsd-update install
src component not installed, skipped
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 868.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning /usr/share/certs/untrusted for certificates...
Scanning /usr/share/certs/trusted for certificates...
Scanning /usr/local/share/certs for certificates...
 done.

重装 pkg:

root@ykla:/home/ykla # pkg bootstrap -f
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y # 此处输入 y 后回车
Bootstrapping pkg from https://mirrors.nju.edu.cn/freebsd-pkg/FreeBSD:14:amd64/latest, please wait... # 我换过 pkg 源,你可能和我不一样,没有问题
Installing pkg-1.21.3...
package pkg is already installed, forced install
Extracting pkg-1.21.3: 100%

检查第三方软件 ABI 变化(FreeBSD ABI 非常稳定,一般不会出错):

root@ykla:/home/ykla # pkg upgrade
root@ykla:/home/ykla # pkg upgrade
Updating nju repository catalogue...
Fetching meta.conf:   0%
Fetching data.pkg: 100%    7 MiB   7.6MB/s    00:01    
Processing entries: 100%
nju repository update completed. 35765 packages processed.
All repositories are up to date.
Updating database digests format: 100%
Checking for upgrades (215 candidates): 100%
Processing candidates (215 candidates): 100%
The following 223 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	ceres-solver: 2.2.0_10

…………中间省略………………

The process will require 45 MiB more space.
687 MiB to be downloaded.

Proceed with this action? [y/N]:  # 此处输入 y 再回车即可

…………以下省略………………

以上,更新完毕。

验证更新:

root@ykla:/home/ykla # freebsd-version -k
14.2-RELEASE
root@ykla:/home/ykla # freebsd-version -u
14.2-RELEASE

更新 EFI 引导

警告

使用 EFI 引导的系统,EFI 系统分区(ESP)上有引导加载程序的副本,用于固件引导内核。如果根文件系统是 ZFS,则引导加载程序必须得能读取 ZFS 引导文件系统。在系统升级后,且执行 zpool upgrade 前,必须更新 ESP 上的引导加载程序,否则系统可能无法引导。虽然不是强制性的,但在 UFS 作为根文件系统时亦应如此。

可以使用命令 efibootmgr -v 来确定当前引导加载程序的位置。BootCurrent 显示的值是用于引导系统的当下引导配置的编号。输出的相应条目以 + 开头,如

root@ykla:~ # efibootmgr -v
Boot to FW : false
BootCurrent: 0004
BootOrder  : 0004, 0000, 0001, 0002, 0003
+Boot0004* FreeBSD HD(1,GPT,f83a9e2f-bd87-11ef-95b7-000c29761cd2,0x28,0x82000)/File(\efi\freebsd\loader.efi) # 就是这条
                      nda0p1:/efi/freebsd/loader.efi (null)
 Boot0000* EFI VMware Virtual NVME Namespace (NSID 1) PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)
 Boot0001* EFI VMware Virtual IDE CDROM Drive (IDE 1:0) PciRoot(0x0)/Pci(0x7,0x1)/Ata(Secondary,Master,0x0)
 Boot0002* EFI Network PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x1,0x0)/MAC(000c29761cd2,0x0)
 Boot0003* EFI Internal Shell (Unsupported option) MemoryMapped(0xb,0xbeb4d018,0xbf07e017)/FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)


Unreferenced Variables:

在 efibootmgr -v 输出的 File 字段中的值,如 \efi\freebsd\loader.efi,是 EFI 上正在使用的引导加载程序的位置。若挂载点是 /boot/efi,则此文件为 /boot/efi/efi/freebsd/loader.efi。(在 FAT32 文件系统上大小写不敏感;FreeBSD 使用小写)File 的另一个常见值可能是 \EFI\boot\bootXXX.efi,其中 XXX 是 amd64(即 x64)、aarch64(即 aa64)或 riscv64(即 riscv64);如未配置,则为默认引导加载程序。应把 /boot/loader.efi 复制到 /boot/efi 中的正确路径来更新已配置及默认的引导加载程序。


上面是废话,不用看

在版本更新后,在启动菜单出现之前,可能出现下面的画面

注意

该界面出现的时间非常短暂,约只有 20 毫秒。可用相机拍摄观察。

即

**************************************************************
**************************************************************
*****                                                    *****   
*****      BOOT LOADER IS TOO OLD, PLEASE UPGRADE.       *****
*****                                                    *****
**************************************************************
************************************************************** 

这说明 loader 需要更新了。还可以使用命令进行版本验证:

# strings /boot/efi/efi/freebsd/loader.efi|grep FreeBSD|grep EFI
DFreeBSD/amd64 EFI loader, Revision 1.1
# strings /boot/loader.efi|grep FreeBSD|grep EFI
DFreeBSD/amd64 EFI loader, Revision 3.0

更新:

# cp /boot/loader.efi /boot/efi/efi/freebsd/

警告

请先更新 loader,再更新 ZFS 版本!

重要

非 EFI、bootcode、ZFS 等相关更新请自行查看相关部分章节!

可选更新

查看 FreeBSD 版本

注意:

有时候补丁不涉及内核,内核版本就不会变,用 uname -r 看不出来,但是用户空间版本会变。所以你可能会看到两个版本,以较高者为准。

freebsd-version 命令

查看 FreeBSD 内核版本和补丁号:

ykla@ykla:~ % freebsd-version -k
13.1-RELEASE-p3

查看已安装的用户空间的版本和补丁程序级别:

ykla@ykla:~ % freebsd-version -u
13.1-RELEASE-p5

uname 命令

ykla@ykla:~ % uname -a
FreeBSD ykla 13.1-RELEASE FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC amd64
ykla@ykla:~ % uname -mrs
FreeBSD 13.1-RELEASE amd64

故障排除与未竟事宜

回滚更新

# freebsd-update rollback

pkg 找不到 .so

终端执行命令

# pkg bootstrap -f

FreeBSD 升级出错,没有 ntp 用户

终端执行命令

# pw groupadd ntpd -g 123
# pw useradd ntpd -u 123 -g ntpd -h - -d /var/db/ntp -s /usr/sbin/nologin -c "NTP Daemon"

freebsd-update 下载慢不是因为其更新源在境外(你使用境外服务器更新一样慢;并且在 freebsdcn 境内源还生效的那些日子里,亦如此)。可能因其设计缺陷。。

ESP 应该已经挂载到了 /boot/efi。如果没有,可手动挂载之,使用 efibootmgr 输出中列出的分区(本例为 nda0p1):mount_msdosfs /dev/nda0p1 /boot/efi。有关另一则示例,请参阅 。

此处命令参考了手册 中的例子。/boot/efi/efi/freebsd/loader.efi 为正在使用的 loader(版本确实旧了)

https://www.freebsd.org/platforms
FreeBSD 7.0-RELEASE Announcement
这是一个始终普遍存在的问题
loader.efi(8)
loader.efi
loader 更新提示界面