跳转到内容

内核插件:切换内核与 Proxmox 内核 ​

完成后,你会用 系统 → 内核(System → Kernel)选择下次启动哪个内核,需要 ZFS 时安装 Proxmox 内核,还能把救援系统放进 GRUB 菜单;更要紧的是,你知道换内核出问题时怎么退回来。

适合谁 ​

  • 要用 ZFS。 ZFS 插件的指南建议先装 Proxmox 内核:Debian backports 内核升级时可能丢掉 ZFS 模块包,Proxmox 内核自带预编译的 ZFS 模块,并和 ZFS 软件包同步更新。完整顺序见 ZFS 插件。
  • 新硬件需要更新的内核。注意 OMV 核心默认已经启用 Debian backports 的内核源(环境变量 OMV_APT_USE_KERNEL_BACKPORTS,默认开启),先确认不够再换。
  • 想把 Clonezilla、SystemRescue 等救援工具放进启动菜单。

不需要:只跑 SMB、容器,没有 ZFS 和特殊硬件的机器,默认的 Debian 内核就够了,不要为了「更新」去换内核。它也不适用于树莓派等 ARM 设备,这个插件只有 amd64 版。

插件信息 ​

项内容
包名openmediavault-kernel
来源omv-extras
OMV 8 状态截至 2026-10-22,omv-extras 的 synchrony 软件源为 8.1.0,仅 amd64,arm64 软件源里没有
菜单位置系统 → 内核
依赖只依赖 openmediavault 8 以上。安装时会在 /etc/default/grub 里设置 GRUB_DISABLE_SUBMENU=y,让所有内核平铺在 GRUB 菜单里,不收进子菜单
卸载的影响只清除「启动系列」设置并重新生成 GRUB 配置。已装的内核、Proxmox 软件源和 /boot 里的救援 ISO 都不会被删除

换内核要重启,新内核起不来就是整机不可用

  • 影响范围:整台机器。换内核必须重启;新内核启动失败,或缺网卡、RAID 卡、ZFS 模块的驱动时,Web 界面和所有服务都不可用,只能靠控制台处理。
  • 前置条件:有本机控制台或虚拟机控制台,能在 GRUB 菜单里选条目;做过系统盘备份;系统更新已装完;没有 RAID 重建、SnapRAID 同步、ZFS 擦洗这类长任务在跑;机器上留有一个已知能启动的 Debian 内核。
  • 怎么回退:重启时在 GRUB 菜单选旧内核。进入系统后,在 系统 → 内核 里把启动系列设回 Debian,或选不设定默认内核,再点更新 GRUB。新内核没验证稳定之前,不要删旧内核。

页面一览 ​

列表每行是一个 GRUB 菜单条目:名称、系列、默认(是不是下次默认启动的)、Default reason(为什么是默认,界面里这项是英文)、启动一次、可删除的。工具栏的按钮:

按钮里面有什么
启动(Boot)设置启动项、Set boot family、启动一次、不设定默认内核、更新 GRUB
垃圾桶删除内核,只对非默认、非恢复模式的条目可用
Proxmox安装 Proxmox 内核、删除 non-Proxmox kernels
Debian安装 Debian 内核、安装 Debian kernel headers
ToolsInstall tool、Remove tool、写入 ISO 到设备(Write ISO to drive)
Docs打开 omv-extras wiki

官方中文界面里有几项没有翻译,直接显示英文。

四种选内核的方式 ​

做法效果什么时候用
设置启动项把某一条固定为默认(grub-set-default),同时取消「启动系列」要钉死一个版本
Set boot family始终启动所选系列里最新的内核,内核更新之后也是。可选项由已装内核生成,如 Proxmox(最新)、Proxmox 6.17、Debian(最新)想跟随一个系列
启动一次只在下次重启启动所选条目(grub-reboot),之后回到默认试新内核;也用来进救援工具
不设定默认内核清除固定和系列,回到 GRUB 的默认:第一个条目,通常是最新版本回退

推荐流程:先用启动一次试新内核,重启后用 uname -r 确认,服务都正常,再用设置启动项或 Set boot family 设成默认。

安装 Proxmox 内核(给 ZFS 用) ​

  1. 先在 系统 → 更新管理(System → Update Management)把系统更新装完,见系统更新。
  2. 系统 → 内核 → Proxmox 菜单 → 安装 Proxmox 内核,在内核版本下拉里选一个(8.1.0 里有 6.14、6.17、7.0,以你界面上的为准),点安装。
  3. 任务输出末尾出现 Please reboot to use the new kernel. 就是成功了。
  4. 重启,再运行 uname -r,应以 -pve 结尾。系统 → 内核 里 默认 一列应落在 Proxmox 条目上。
  5. 只装不重启不算完。 重启进入 pve 内核之后,ZFS 才会用上 Proxmox 的 ZFS 模块:已经装了 ZFS 插件,就在黄色提示条上点应用;还没装,就接着按 ZFS 插件往下走。原因见下文「ZFS 插件怎么选内核模块」。

按脚本源码(omv-installproxmox),安装时它做了这些事:

  • 只接受 amd64。版本参数无效时回退到 6.17。
  • 写入 /etc/apt/sources.list.d/pvekernel.sources,指向 Proxmox 的免费(no-subscription)软件源,并下载它的签名密钥。
  • 先卸载一批固件包:firmware-linux-free、firmware-amd-graphics、firmware-ath9k-htc、firmware-cavium、firmware-siano、firmware-netronome,避免冲突。依赖这些固件的硬件(例如 AMD 显卡)要留意。
  • 临时禁用 DKMS 自动构建,安装 proxmox-kernel-<版本> 和 proxmox-headers-<版本>。
  • 把所装系列设为启动系列(不是钉死某一个具体版本),运行 update-grub;已装 ZFS 插件的话,把 ZFS 模块标为待应用(所以黄色提示条上会出现待应用的变更)。

另外,内核插件的软件包自带 /etc/apt/preferences.d/proxmox.pref,把 ZFS 相关的用户态包(zfsutils-linux、zfs-zed 等)固定到 Proxmox 软件源,优先级 700。

Proxmox 内核由 Proxmox 项目构建,不是 Debian 的,也不是 OMV 的。出了问题,先回到 Debian 内核确认是不是它引起的。如果主板开启了 Secure Boot,本站没有验证过它的表现,请先在不重要的机器上试。

「删除 non-Proxmox kernels」会清空所有 Debian 内核

  • 影响范围:脚本 omv-removekernels 用 apt-get --yes --autoremove purge 清除所有名字含 linux-image、linux-headers 的包,包括 linux-image-amd64,并把 GRUB 默认项改成第一个条目。此后系统更新不会再带来 Debian 内核,机器上只剩 Proxmox 内核。
  • 前置条件:已经重启进入 Proxmox 内核(uname -r 以 -pve 结尾),并稳定运行了一段时间;有系统盘备份和控制台;你确实愿意长期只用 Proxmox 内核。omv-extras 在 OMV 6 时期的 wiki 要求先重启进入 Proxmox 内核再执行,否则会因为仍在使用旧内核而失败。
  • 怎么回退:系统能启动时,用 Debian 菜单的安装 Debian 内核装回 linux-image-amd64。Proxmox 内核也起不来时,GRUB 里已经没有 Debian 内核可退,只能用救援 ISO 或 live U 盘修复或重装。不确定就别点;想腾空间,用垃圾桶按钮一次删一个旧内核。

ZFS 插件怎么选内核模块 ​

ZFS 插件靠内核里的 ZFS 模块工作。它在应用配置时,按当前正在运行的内核决定用哪一种模块提供者,而不是看装了哪些内核(来自 ZFS 插件的 Salt 状态):

正在运行的内核选用的提供者做了什么
amd64,内核版本名里含 pveomv-zfs-provider-pve用 Proxmox 软件源里预编译好的 ZFS 模块;清除 zfs-dkms;写入 /etc/apt/preferences.d/omv-zfs-pve.pref,把 ZFS 相关包和 proxmox-headers-* 固定到 Proxmox 软件源(优先级 700);最后用 modinfo 确认当前内核里有 zfs 模块,没有就让这次应用失败
其他:Debian 内核,以及 arm64omv-zfs-provider-dkms用 DKMS 在本机为当前内核编译 ZFS 模块。amd64 版依赖 linux-headers-amd64;arm64 版要自备当前内核的 headers,缺了应用会报错

两个提供者包互相冲突,同一时间只会装一个。omv-zfs-provider-pve 自己依赖 Proxmox 的内核和 headers 包(6.14、6.17、7.0 三选一),所以它离不开 Proxmox 软件源,这个源正是本插件配置的。

据此,装完 Proxmox 内核后要这样走:

  1. 重启进入 pve 内核,uname -r 以 -pve 结尾。只装不重启,当前运行的仍是 Debian 内核,ZFS 插件会继续按 DKMS 提供者配置。
  2. 在 pve 内核下应用一次 ZFS 配置。装内核时 ZFS 插件已经装好的话,脚本已把它标为待应用,点黄色提示条上的应用就行;ZFS 还没装,就在 pve 内核下装,再应用。到这一步才会换成 omv-zfs-provider-pve。
  3. 反过来,从 pve 内核换回 Debian 内核,下次应用 ZFS 配置时会按上面的规则改回 DKMS 提供者。在 DKMS 模块为当前内核编译好之前,这个内核里没有 ZFS 模块,池用不了。

按源码,ZFS 插件检测到已装 Proxmox 内核、却运行着 Debian 内核时会给出提示,但它是按旧包名 pve-kernel-* 检测的,新版内核包叫 proxmox-kernel-*,这条提示是否出现,本站未核实,不要指望它提醒你。

回到 Debian 内核 ​

  • 还有 Debian 内核时:启动 → Set boot family 选 Debian(最新),或者不设定默认内核,再更新 GRUB。
  • Debian 内核已被删光:Debian 菜单 → 安装 Debian 内核(重新安装 linux-image-amd64,并重置默认项),安装 Debian kernel headers 装 linux-headers-amd64,需要 DKMS 模块(例如 ZFS 的 DKMS 版)时要它。

救援工具 ​

Tools 菜单里可以安装这些启动工具:Clonezilla、Finnix、GParted Live、SystemRescue 和 memtest86+。Install tool 选一个工具,ISO 会下载到 /boot(环境变量 OMV_KERNEL_BOOT_ISO_SUBDIR 可以改放到子目录),并在 GRUB 菜单里加一个条目。ISO 的版本随插件更新。装之前看一下 /boot 的剩余空间:

sh
# 在 OMV 的 shell 里,以 root 身份,只读
df -h /boot

用的时候:

  • 无显示器的机器,不方便在 GRUB 菜单里手选,可以在内核列表里选中这个工具对应的条目,用启动一次,再重启。用完再重启一次,就回到正常系统。不要把它们设为默认启动项,否则 NAS 会一直启动进救援环境,Web 界面也就起不来了。这个用法按源码推断,本站未在实机验证。
  • 写入 ISO 到设备:选一个 ISO 和目标设备,把 ISO 写到 U 盘。界面只列出未使用的磁盘,并明确提示所选磁盘上的所有数据都会被擦除,选之前按型号和序列号核对,见磁盘管理。

救援环境里的口令是公开的默认值

按插件脚本写进 GRUB 条目的启动参数:Finnix 的口令和 SystemRescue 的 root 口令、VNC 口令都是 openmediavault;Clonezilla 启动后会开 SSH 服务;SystemRescue 的参数里还带着 nofirewall。这些环境运行期间,局域网里的人可以凭这个默认口令连进去。只在需要时用,用完立刻回到正常系统。

检查结果 ​

sh
# 在 OMV 的 shell 里,以 root 身份,只读
uname -r
  • 输出是当前正在运行的内核版本。Proxmox 内核以 -pve 结尾。
  • 系统 → 内核 里,默认打勾的行就是下次启动用的内核;Default reason 解释为什么,例如是你固定的,还是跟随启动系列,还是 GRUB 退回到最高版本。
  • 设置了启动系列时,/etc/default/grub.d/omv-kernel-family.cfg 存在。

常见问题 ​

重启后还是旧内核。 先点更新 GRUB,再看默认一列;其次检查 BIOS 是不是从别的磁盘或别的 UEFI 条目启动的。

换内核后网卡不见了。 内核缺驱动,或者安装 Proxmox 内核时卸载的固件包正是你的硬件需要的。重启在 GRUB 里选回旧内核,再设回 Debian。

换内核后 ZFS 池不见了。 当前内核没有对应的 ZFS 模块。回到有模块的内核,或者按 ZFS 插件里的顺序装 Proxmox 内核。

内核列表里看不到 Proxmox 或新装的条目。 点更新 GRUB 重新生成菜单。

/boot 空间不够。 救援 ISO 放在 /boot 里,一个就是几百 MB。先删用不到的工具(Remove tool)或旧内核(垃圾桶按钮)。

参考资料 ​

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