外观
系统更新
完成后,你知道 OMV 的更新由哪几块组成、哪些会自动装、哪些要你自己点;知道更新前该准备什么、更新后该看什么;万一新内核或新版本有问题,知道怎么退回。
第一次更新和国内镜像的设置,见软件源、国内镜像与第一次更新。这一篇讲的是装好之后长期的更新。
更新的三层
OMV 是 Debian 加 OMV 软件包,所有软件都通过 apt 更新,在界面里是同一个列表:
| 层 | 内容 | 例子 |
|---|---|---|
| Debian 系统包 | 内核、Samba、SSH、系统库 | linux-image-*、samba |
| OMV 核心和官方插件 | OMV 自己和官方仓库里的插件 | openmediavault、openmediavault-md |
| omv-extras 插件和额外软件源 | omv-extras 插件、Docker 引擎等 | openmediavault-compose、docker-ce |
不在这个列表里的:容器镜像。 Compose 插件和 Podman 里的应用要单独更新,见更新与备份容器。
OMV 的大版本(例如 7 到 8)不是在这里点一下就升的,见大版本升级。
哪些是自动的
按 OMV 8 源码里的 apt 配置:
| 事项 | 默认行为 | 在哪里设置 |
|---|---|---|
| 刷新软件包索引、预先下载可升级的包 | 每天一次,由 Debian 的 apt 定时器完成 | 无需设置 |
| 自动安装安全更新 | 开启,但只装 Debian 安全源(Debian-Security)的更新;不装 OMV 本体、官方和 omv-extras 插件、内核 backports 的更新;不会自动重启 | 系统 → 更新管理 → 设置 → 更新(System → Update Management → Settings → Updates),无人值守安装安全更新 |
| 邮件通知有哪些包可升级 | 需要开启邮件通知和事件 | 通知日程:每天或每周,默认每天 |
| 需要重启时邮件提醒 | 每天检查一次 | 同样需要 系统 → 通知 → 事件(System → Notification → Events)里的更新管理 |
所以 OMV 和插件的更新要你自己点,系统不会悄悄替你升级它们。通知邮件需要先配置邮件通知。
软件源里的两个可选项
系统 → 更新管理 → 设置 → 软件(Software)里有 预发布更新(Pre-release updates)和 由社区维护的更新(Community-maintained updates),都默认关闭。NAS 保持关闭。保存后会立即生效,并提示重新加载软件包信息,不需要再点应用。
更新前先做这几件事
- 没有待应用的配置更改:页面顶部没有黄色提示条。
- 系统盘有近期可用的备份:USB 或 SD 卡做系统盘的更要注意,见备份系统盘。
- 没有正在跑的长任务:备份、Btrfs scrub、RAID 重建或同步、SnapRAID 同步、SMART 长测、大文件传输。更新常常要重启服务甚至整机,会把它们打断。
- 看一眼变更日志:选中列表里的一个包,点 显示变更日志(Show changelog)。内核、
openmediavault核心、samba、Docker 和 ZFS 相关的包尤其值得看。 - 有本机控制台:显示器和键盘,或 IPMI、PVE 的控制台。更新后网络出问题时,没有控制台就只能干等。
- 挑个不赶时间的时段,别在出门前或周五晚上更新。
在界面里更新
- 打开
系统 → 更新管理 → 更新(System → Update Management → Updates)。点 检测是否有更新...(Check for new updates,放大镜图标)刷新列表,这一步等于apt-get update。 - 列表显示每个包的名称、旧版本到新版本的变化和简介。选中一个包点 显示变更日志 可以看它的变更说明。
- 点 安装更新 ...(Install updates,带数字角标),确认对话框写着「所有软件包将升级」,点确定。这里不能只升级其中几个,它一次升级全部。
- 弹出标题为升级系统的窗口显示进度。更新由服务器在后台执行,等它结束再点 关闭,页面会自动重新加载。
- 如果顶部出现黄色提示条,点 应用。
在命令行里更新
以 root 身份在 OMV 的 shell 执行:
sh
omv-upgrade它会先同步软件包索引,再模拟一次升级,如果发现升级会移除 openmediavault 核心包就中止;通过之后才执行升级,保留你改过的配置文件(--force-confold)。界面里的安装更新同样执行 dist-upgrade,也同样会拒绝移除 openmediavault 核心包。
别用 apt install、apt upgrade 随手装东西。OMV 对 Debian 版本绑得很紧,官方文档的提醒是:不要从 Debian backports、testing、experimental 装包,不要装 apache(会导致 openmediavault 被卸载),额外软件优先用容器。
更新之后
需要重启系统:顶栏的铃铛会提示「需要重启系统」,仪表盘的系统信息小部件里也有,每天还会发邮件。判断依据是
/run/reboot-required文件,在 OMV 的 shell 里可以这样看:sh[ -e /run/reboot-required ] && echo 需要重启重启用顶栏右上的电源菜单里的 重启(Reboot)。内核更新必须重启才生效。
界面异常或缺菜单:硬刷新浏览器(Ctrl+Shift+R)。更新后被要求重新登录一次也是正常的。
检查仪表盘上的服务、磁盘和 SMART 状态,访问一个共享,确认容器都起来了。
看一眼
诊断 → 系统日志(Diagnostics → System Logs)里有没有新增的错误,见查看系统日志。
内核更新与回退
OMV 默认从 Debian 的 backports 取内核(linux-image-*、linux-headers-*、固件,优先级 500),所以内核会比较新,更新也相对频繁。新内核起不来或驱动出问题时:
- 开机时在 GRUB 菜单里选 Advanced options,用上一个内核启动。这需要控制台。
- amd64 上可以用 omv-extras 的内核插件固定启动内核,见内核插件。用了 ZFS 的 DKMS 方案或 Proxmox 内核,更新内核前先确认模块能编译。
- 实在不行,从系统盘备份恢复。
锁定(hold)包的坑
apt-mark hold 可以暂停某个包的更新,omv-extras 的 apttool 插件有对应的 保持(Hold)页面。但是,OMV 界面的更新和 omv-upgrade 都带了 --allow-change-held-packages,也就是说,被 hold 的包仍然可能被它们升级。别指望 hold 能挡住 OMV 自己的更新路径。真要固定版本,先弄清楚后果,并在更新前后核对版本。
更新会重启服务,内核更新需要重启整机
- 影响范围:更新过程中相关服务会短暂重启,内核、系统库的更新要重启整机才生效,重启期间所有共享、容器和远程访问都会中断几分钟。更新中途断电或拔盘可能留下半装的软件包。
- 前置条件:按上面的清单:无待应用更改、系统盘备份可用、无长任务、有控制台。
- 怎么回退:新内核有问题,用旧内核启动。其他问题,从系统盘备份恢复。更新被中断后,先让它继续:
dpkg --configure -a,再omv-upgrade。不要自己手动降级软件包。
检查结果
系统 → 更新管理 → 更新列表为空,点 检测是否有更新... 后仍为空。- 仪表盘上没有「有可用更新」和「需要重启系统」的提示,或者你有意推迟了。
- 共享能访问,容器在运行,SMART 状态正常,没有黄色提示条。
- 你收到过更新相关的通知邮件。没收到的话,检查
系统 → 通知。
常见问题
更新卡在某一步很久。 先看进度窗口的输出;网络慢时下载大包会很久。不要强行关机。国内网络可以换镜像,见软件源、国内镜像与第一次更新。
提示无法获得 apt 或 dpkg 的锁。 另一个 apt 进程正在运行,常见的是自动更新。等它结束再试。
更新失败或软件源报错。 见更新失败与软件源报错。OMV 8 的 omv-firstaid 里有一项 Refresh APT package lists and clean caches,可以清理 apt 缓存并重新刷新索引。
更新后插件界面不对。 硬刷新浏览器,见插件装完界面不对。
更新后网页 502。 见 502 Bad Gateway。
想知道新版本改了什么。 见OMV 8.1–8.5 更新要点。
参考资料
- OMV 官方文档:APT 与更新。
- 自动更新的具体配置依据 OMV 源码
etc/apt/apt.conf.d/和srv/salt/omv/deploy/apt/。