外观
KVM 插件:在 OMV 上跑虚拟机
完成后,你能在 OMV 的界面里创建 Linux 或 Windows 虚拟机,用浏览器打开它的控制台,给它打快照、做备份,而不必另外装一套虚拟化平台。
适合谁
- 这台 NAS 上偶尔要跑 1–2 台轻量虚拟机(例如 Home Assistant OS、一个测试用 Linux),不想为此再买一台机器。
- 机器的 CPU 支持虚拟化,内存够用。
能用容器就别用虚拟机,见 插件还是容器,应用优先走 Compose。
什么时候该换成 Proxmox VE
| 情况 | 建议 |
|---|---|
| 1–2 台轻量虚拟机,偶尔用 | 留在 OMV 的 KVM 插件 |
| 虚拟机多、要稳定的资源隔离,或者虚拟机承载重要业务 | 换 Proxmox VE |
| 要 GPU 或 PCIe 直通 | 换 Proxmox VE。这个插件不提供,omv-extras wiki 说要自己手动折腾 |
| 要集群、在线迁移、高可用、带去重的备份服务器 | 换 Proxmox VE |
| 想让 NAS 更稳,虚拟机出问题不拖累文件服务 | 用 PVE 做宿主机,把 OMV 作为一台虚拟机跑在上面,见 OpenMediaVault:在 PVE 上跑一台轻量 NAS |
姊妹站 Proxmox VE 使用指南 有完整的虚拟化教程。
动手前:网络、存储和备份都可能出事
- 影响范围:装插件会拉进 libvirt、QEMU 等一大批软件包,并依赖 sharerootfs;把 OMV 的网卡改成 br0 网桥会影响整机所有服务,改错就断网;虚拟机磁盘放在系统盘会把系统盘写满;删除虚拟机时可以连磁盘一起删;还原备份会覆盖同名虚拟机;增量备份链里删一个就会删掉整条链。
- 前置条件:CPU 支持虚拟化且 BIOS 里已开启;虚拟机磁盘和 ISO 放在数据盘上,不放系统盘;改网络前人在本机控制台旁;虚拟机的数据另有备份。
- 怎么回退:网络改坏了,用
omv-firstaid恢复,见 改坏网络后怎么救;删除虚拟机和还原备份前,先把现有磁盘复制或备份。
插件信息
| 项 | 内容 |
|---|---|
| 包名 | openmediavault-kvm |
| 来源 | omv-extras。KVM、QEMU、libvirt 本体是第三方软件 |
| OMV 8 状态 | 截至 2026-10-22 的 omv-extras synchrony 软件源为 8.3.5(amd64、arm64) |
| 菜单位置 | 服务 → KVM(Services → KVM):VMs、池(Pools)、卷(Volumes)、ISOs、网络(Networks)、计划(Schedule)、备份(Backup)、监控(Monitor)、设置(Settings)。VMs、ISOs 官方中文无译,显示英文 |
| 依赖 | libvirt、qemu、ovmf、swtpm、novnc 等;依赖 openmediavault-sharerootfs,卸载 sharerootfs 会连带卸载 KVM 插件,见 sharerootfs;推荐安装 openmediavault-cterm |
安装
- 确认 CPU 虚拟化已开启。在 OMV 的 shell(root)里只读检查:
sh
grep -E -c 'vmx|svm' /proc/cpuinfo
ls -l /dev/kvm第一条输出大于 0,第二条能看到 /dev/kvm。否则去 BIOS 里打开虚拟化。 2. 先装 omv-extras,再在 系统 → 插件(System → Plugins)里安装 openmediavault-kvm,硬刷新浏览器。omv-extras wiki 的 OMV 7 文档提过,装这个插件有时需要先启用 backports;OMV 8 默认已启用 backports,是否仍需手动处理以实机为准。
配置与使用
1. 准备存储池
插件把虚拟机磁盘和 ISO 放在池里。先建两个共享文件夹,放在与系统盘分开的 EXT4 数据盘上:
存储器 → 共享文件夹(Storage → Shared Folders)建volumes和isos,见 共享文件夹。libvirt-qemu用户(uid 64055)要能访问这两个目录的路径;用界面创建的默认权限(root:users、2775)可以工作。服务 → KVM → 池添加一个池:名称和文件夹同名,类型选 Directory,路径选刚建的文件夹。- 选中池,点 State → Start,状态列显示
Running才算启动成功。 - 对
isos重复一遍。选中isos池后可以用 Download virtio iso 下载 Windows 虚拟机用的驱动镜像。
2. 选一种网络
| 方式 | 虚拟机能否访问 OMV 上的共享 | 虚拟机的 IP 是否在局域网里 |
|---|---|---|
| Default 网络(NAT,虚拟子网) | 能 | 不在,在 NAT 子网里 |
| Macvtap | 不能 | 在 |
| br0 网桥(OMV 的网卡换成网桥) | 能 | 在 |
| 独立的物理网卡 | 能 | 在 |
- Default:在
服务 → KVM → 网络选中 default,State → Start 即可。 - Macvtap:
网络里添加 macvtap 网络,选 OMV 当前使用的网卡,再 State → Start。 - br0 网桥:要在
网络 → 接口(Network → Interfaces)里创建 Bridge,用它替换 OMV 当前使用的网卡。关键点:删除旧接口后,先不要点黄色提示条上的应用,先建好网桥再一起应用;网桥会影响所有服务,已配置的 WireGuard 等要改用新的适配器。完整步骤和回退见 网桥:给虚拟机和容器用。 - 8.3.1 起,网络页还能选转发模式(NAT、Routed、Open、Isolated)、macvtap 模式,以及在已有宿主网桥上建「桥接网络」;Docker 管理的网桥不会出现在选择器里。
3. 创建虚拟机
服务 → KVM → VMs → Add new VM。表单要点(默认值取自 8.x 表单,以界面为准):
| 区域 | 字段 | 说明 |
|---|---|---|
| Settings | VM name | 不要有空格,不要重名 |
| OS | 选与要装的系统最接近的预设,默认 debian13 | |
| UEFI | 默认关;Windows 11 需要开,并同时开 Secure boot | |
| CPUs / Memory | 默认 1 个 CPU、1 GiB 内存。不要超过宿主机的 CPU 和内存 | |
| TPM | 默认关;Windows 11 需要开 | |
| 高级选项 | 架构、CPU 型号(默认 host)、音频、VNC(默认开)、Spice(默认开) | |
| Storage Volume | Pool / Format / Size / Bus | 默认池 default、格式 qcow2(按用量增长)、4 G、总线 virtio。要保证池是你的 volumes 池,大小按需要改 |
| Optical Drive | Optical disk | 选 isos 池里的系统 ISO |
| Network | Model / Network | 模型 virtio,网络选上面启动的网络;用 br0 时选 Bridge 模型并填 br0 |
保存后虚拟机的 XML 配置已经生成。启动前如果要加东西(例如 Windows 的第二块光驱放 virtio 驱动),选中虚拟机用 Optical 按钮添加。VMs 页还有 Appliances(8.2.5 起),可以一键装 Home Assistant OS 等现成镜像。
Windows 11 的要求:UEFI + Secure boot + TPM、至少 2 个 CPU、4 GB 内存、64 GB 磁盘;安装时从 virtio ISO 加载磁盘驱动。
4. 启动、控制台与快照
- 启动:选中虚拟机,State → Start。
- 控制台:Console → Start 创建浏览器控制台,列表里出现 noVNC URL 和 Spice-html5 URL 链接,点开即用(8.0.7 起端口自动选择)。也可以用 VNC 客户端连 5900、Spice 客户端连 5901。这些端口没有加密,不要暴露到公网,远程访问用 VPN。
- 快照:选中虚拟机,Snapshots → Create。存在快照时,卸载磁盘、编辑 XML 之类的操作会被禁用,删除快照后恢复。
- 克隆:Advanced → Clone,会复制磁盘。
5. 备份与恢复
服务 → KVM → 计划(Schedule)里创建备份任务:
| 字段 | 说明 |
|---|---|
| VM Name | 选虚拟机 |
| Path | 备份写到哪。选另一块盘上的目录,不要放在虚拟机磁盘所在的盘上 |
| Power off | 备份前关机,之后再开,一致性最好 |
| Keep | 保留最近几份,0 表示全部保留 |
| Incremental | 8.3.0 起的增量或差异备份,用 libvirt checkpoint,只备份变化的块 |
| Full backup interval | 每 N 次备份重新做一次完整备份,限制增量链的长度 |
| Same format / Compress | 使用相同磁盘格式;压缩会明显变慢 |
备份(Backup)页列出已有备份,也可以从这里立刻重复一次备份、还原。增量备份的链删掉其中一份,整条链都会失效,插件的确认框会提醒。
备份放哪、口令怎么保管
- 放哪:备份目录必须在另一块盘或另一台机器的挂载上;虚拟机磁盘和备份在同一块盘上,盘坏了两份都没。
- 口令:插件备份不做加密,没有口令;备份里是完整磁盘,包含虚拟机内的所有密码,要物理保管。
- 虚拟机内部的数据另有备份,见 备份策略。
做一次恢复测试
- 对一台不重要的测试虚拟机做一次备份(可以先让它关机)。
- 在
备份页选这份备份,点还原。如果界面允许指定虚拟机名字(wiki 的旧版说明可以),选一个不同的名字,避免覆盖原机;不允许改名就换到测试机上做。 - 启动还原出来的虚拟机,登录进去,确认系统和数据正常,网络也能工作;如果两台机器用同样的静态 IP,先改掉一台。
- 确认无误后删除还原出来的测试虚拟机,及其磁盘。
- 记下备份与还原的耗时,写进 恢复演练 的记录里。
检查结果
- 池和网络的状态是运行中(
Running或Active)。 - 虚拟机能启动,控制台能打开,虚拟机能联网。
- 重启 OMV 后池、网络和设为开机启动的虚拟机自动恢复;若虚拟机没起来,到
服务 → KVM → 设置(Settings)调高 Start delay(0–300 秒,默认 0),给存储留够就绪的时间。 - 备份任务按计划产生新文件,备份目录里能看到。
备份与维护
- 监控:8.2 起有
监控页,默认每 10 秒采集,原始数据保留 24 小时,汇总保留 7 天,存在/var/lib/openmediavault/kvm/monitor.db。 - 更新频繁:8.2 到 8.3 变化很大(virtiofs、增量备份、可命名快照、启动顺序),更新前看 changelog。
- 文档旧的地方:omv-extras wiki 的 KVM 页是 OMV 7 的文档,仍写有独立的 Restore 标签页和备份清单文件;8.3.0 起还原是备份页里的按钮,具体以界面为准。
- 卸载:先停掉虚拟机并备份,卸载会清除插件配置,不要卸载 sharerootfs。
常见问题
装完提示没有 /dev/kvm。 BIOS 没开虚拟化,或是在不支持嵌套虚拟化的虚拟机里装 OMV。
池启动失败,或虚拟机无法访问磁盘。 检查 libvirt-qemu 对池路径的访问权限;池页的权限修复菜单(8.2 起)可以帮忙,名称以界面为准。
虚拟机能联网,但访问不了 OMV 的共享。 用了 Macvtap。换 Default 或 br0。
浏览器控制台打不开。 先看 Console 是否已 Start;Start 按钮灰了时,改一下端口再改回来可激活。
虚拟机很慢。 CPU、内存分配不要超出宿主机;磁盘放在 SSD 的池上。
参考资料
- 插件源码:openmediavault-kvm
- omv-extras wiki:KVM Plugin For OMV7(OMV 8 页是占位,2025-12-23)
- libvirt 存储类型:libvirt.org/storage.html
- Proxmox VE 使用指南:proxmox.einverne.info