跳转到内容

系统更新 ​

完成后,你知道 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 保持关闭。保存后会立即生效,并提示重新加载软件包信息,不需要再点应用。

更新前先做这几件事 ​

  1. 没有待应用的配置更改:页面顶部没有黄色提示条。
  2. 系统盘有近期可用的备份:USB 或 SD 卡做系统盘的更要注意,见备份系统盘。
  3. 没有正在跑的长任务:备份、Btrfs scrub、RAID 重建或同步、SnapRAID 同步、SMART 长测、大文件传输。更新常常要重启服务甚至整机,会把它们打断。
  4. 看一眼变更日志:选中列表里的一个包,点 显示变更日志(Show changelog)。内核、openmediavault 核心、samba、Docker 和 ZFS 相关的包尤其值得看。
  5. 有本机控制台:显示器和键盘,或 IPMI、PVE 的控制台。更新后网络出问题时,没有控制台就只能干等。
  6. 挑个不赶时间的时段,别在出门前或周五晚上更新。

在界面里更新 ​

  1. 打开 系统 → 更新管理 → 更新(System → Update Management → Updates)。点 检测是否有更新...(Check for new updates,放大镜图标)刷新列表,这一步等于 apt-get update。
  2. 列表显示每个包的名称、旧版本到新版本的变化和简介。选中一个包点 显示变更日志 可以看它的变更说明。
  3. 点 安装更新 ...(Install updates,带数字角标),确认对话框写着「所有软件包将升级」,点确定。这里不能只升级其中几个,它一次升级全部。
  4. 弹出标题为升级系统的窗口显示进度。更新由服务器在后台执行,等它结束再点 关闭,页面会自动重新加载。
  5. 如果顶部出现黄色提示条,点 应用。

在命令行里更新 ​

以 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),所以内核会比较新,更新也相对频繁。新内核起不来或驱动出问题时:

  1. 开机时在 GRUB 菜单里选 Advanced options,用上一个内核启动。这需要控制台。
  2. amd64 上可以用 omv-extras 的内核插件固定启动内核,见内核插件。用了 ZFS 的 DKMS 方案或 Proxmox 内核,更新内核前先确认模块能编译。
  3. 实在不行,从系统盘备份恢复。

锁定(hold)包的坑 ​

apt-mark hold 可以暂停某个包的更新,omv-extras 的 apttool 插件有对应的 保持(Hold)页面。但是,OMV 界面的更新和 omv-upgrade 都带了 --allow-change-held-packages,也就是说,被 hold 的包仍然可能被它们升级。别指望 hold 能挡住 OMV 自己的更新路径。真要固定版本,先弄清楚后果,并在更新前后核对版本。

更新会重启服务,内核更新需要重启整机

  • 影响范围:更新过程中相关服务会短暂重启,内核、系统库的更新要重启整机才生效,重启期间所有共享、容器和远程访问都会中断几分钟。更新中途断电或拔盘可能留下半装的软件包。
  • 前置条件:按上面的清单:无待应用更改、系统盘备份可用、无长任务、有控制台。
  • 怎么回退:新内核有问题,用旧内核启动。其他问题,从系统盘备份恢复。更新被中断后,先让它继续:dpkg --configure -a,再 omv-upgrade。不要自己手动降级软件包。

检查结果 ​

  1. 系统 → 更新管理 → 更新 列表为空,点 检测是否有更新... 后仍为空。
  2. 仪表盘上没有「有可用更新」和「需要重启系统」的提示,或者你有意推迟了。
  3. 共享能访问,容器在运行,SMART 状态正常,没有黄色提示条。
  4. 你收到过更新相关的通知邮件。没收到的话,检查 系统 → 通知。

常见问题 ​

更新卡在某一步很久。 先看进度窗口的输出;网络慢时下载大包会很久。不要强行关机。国内网络可以换镜像,见软件源、国内镜像与第一次更新。

提示无法获得 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/。

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。