MoleSDN
NAS 远程访问

OMV 装 KVM 虚拟机教程:在 NAS 上跑 Windows 10 / OpenWrt(5 部曲④)

在 OMV NAS 上装 KVM 虚拟化跑 Windows 10 / OpenWrt / Linux 测试机:装 OMV-Extras、装 KVM 插件、建池、上传 ISO、配置网络、创建虚拟机。bridge NAT vs macvtap 对比讲清。OMV 5 部曲第 ④ 篇。

OMV 装 KVM 虚拟机教程:在 NAS 上跑 Windows 10 / OpenWrt(5 部曲④)

这是 OMV 5 部曲的第 ④ 篇

💡 OMV 5 部曲进度

前三篇把 OMV 跑起来、能存数据、能异地访问。这一篇进入「玩起来」的部分——让你的 NAS 同时多扮演几个角色

  • 在 NAS 里跑一台 OpenWrt 当家里的软路由
  • 在 NAS 里跑一台 Windows 10 当远程办公电脑
  • 在 NAS 里跑一台 Linux 测试机 折腾 Web 服务

一台机器顶过去三台,省电省地省钱——这就是虚拟化的价值。


你需要准备什么

说明
一台跑着 OMV 的 NAS 没装好的看 ① 系统安装
CPU 支持硬件虚拟化 Intel VT-x 或 AMD-V。BIOS 里要开启——10 年内的 CPU 基本都支持
至少 8GB 内存 跑 Windows 10 虚拟机推荐预留 4G 内存给它
一块独立或较大数据盘 KVM 的虚拟磁盘文件占空间,Win10 装好至少 30G
系统安装 ISO 镜像 要跑哪个系统就备哪个 ISO(Win10 / OpenWrt 等)

⚠️ CPU 不支持虚拟化或 BIOS 里没开 VT-x/AMD-V,KVM 插件可以装但跑不了虚拟机。开机进 BIOS 找 Intel VT-x / Intel Virtualization Technology / AMD SVM 类似选项,改成 Enabled。


关键概念(快速过一下)

KVM 是什么

KVM(Kernel-based Virtual Machine) 是 Linux 内核自带的虚拟化模块——它把你的物理 CPU 切片成虚拟 CPU,让多个虚拟机能在同一台物理机上跑。

KVM 配套通常和这几个一起工作:

  • QEMU — 模拟虚拟硬件(虚拟网卡、虚拟磁盘控制器)
  • libvirt — 提供统一的管理 API
  • virt-manager — 图形化管理工具

在 OMV 里这些都由 OMV-Extras 的 KVM 插件统一封装——你只需要在 Web 界面点点点,不需要碰命令行。

OMV-Extras 是什么

OMV 官方只装基础包。OMV-Extras 是社区维护的扩展插件库,提供 KVM、Docker、ZFS 等额外功能。第 ④ ⑤ 两篇都要用到它。


第一步:安装 OMV-Extras

SSH 登录 OMV(用 root 账户),执行:

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

安装 OMV-Extras

脚本会从 GitHub 下载安装包并自动配置。国内网络环境下,GitHub 下载经常失败——表现为脚本卡在某一步、最终报错。

GitHub 下载失败

第一种处理(换网络重试)

挂代理或换网络环境(手机热点也行),重新跑上面那条 wget 命令。多数情况下挂代理就能装上

第二种处理(手动下载 + 离线装)

OMV-Extras GitHub Releases 页 找最新的 openmediavault-omvextrasorg_latest_all6.deb(OMV 6 用 all6、OMV 7 用 all7),下载到你电脑。

用 SFTP 工具(WinSCP 是最常用的)把 deb 包传到 OMV:

WinSCP 上传 deb

传输完成

然后在 OMV 上执行:

apt install ./openmediavault-omvextrasorg_latest_all6.deb

apt install 离线安装

装完后刷新 OMV Web 后台,系统 → omv-extras 出现新菜单:

omv-extras 菜单

勾选 Docker repo 或其他需要的仓库,保存 + 应用。


第二步:安装 KVM 插件

系统 → 插件,搜索 kvm,找到 openmediavault-kvm 安装:

KVM 插件

⚠️ OMV 6 上装 KVM 插件可能报错「依赖不可用」。这是因为 KVM 部分依赖在 Backports 里。处理方法:

系统 → omv-extras → 内核 → 启用 Proxmox KernelBackports,再回去装 KVM 插件。

参考社区帖:https://forum.openmediavault.org/index.php?thread/48013-unable-to-install-kvm-plugin/

启用 Backports

装好之后,服务 菜单里出现 KVM 项:

KVM 服务出现


第三步:创建池(虚拟机的「专属仓库」)

「池」是 KVM 用来放 ISO 镜像和虚拟磁盘文件的专属文件夹——你可以理解为 KVM 的工作目录。

服务 → KVM → 池 → 创建

创建池

字段:

  • 名称:起个名(如 vm-pool
  • 路径:选数据盘上的某个目录(如 /srv/dev-disk-by-uuid-xxx/kvm/

💡 池要放在数据盘上,不要放系统盘。虚拟机磁盘文件动辄几十 G,系统盘根本装不下。

池创建完成


第四步:上传系统 ISO 到池里

把要装的虚拟机系统 ISO(如 Windows10.isoopenwrt.img)上传到刚建的池目录里。两种方法:

方法 A:用 WinSCP / FileZilla 通过 SFTP 上传

直接拖文件到池目录。适合一次性传,不需要额外配置。

SFTP 上传 ISO

方法 B:把池目录加到 SMB 共享

如果你已经按 ② 共享文件系统配置 把池目录配成了 SMB 共享,那就直接从 Windows 资源管理器复制文件过去。这种方式速度更快(千兆网络 100MB/s+),适合传几个 G 的大镜像。

SMB 上传 ISO

上传完成后回 KVM 池里能看到这个 ISO 文件。


第五步:配置虚拟网络

虚拟机要联网,需要先建一个虚拟网络。服务 → KVM → 网络 → 创建

两种网络类型,选择完全决定虚拟机能否被外部访问:

类型 工作方式 外部可访问虚拟机? 适用场景
bridge NAT OMV 创建一个虚拟网桥,虚拟机走 NAT 出网 ❌ 外部不能主动连虚拟机 纯客户端用途(虚拟机里跑浏览器、装软件测试)
macvtap 虚拟机用独立 MAC 直接接入物理网络 ✅ 外部可主动访问 虚拟机要对外提供服务(PT 下载、Web 服务、OpenWrt 软路由)

网络类型选择

⚠️ macvtap 的隐藏限制:虚拟机和 OMV 主机之间是隔离的——虚拟机里能 ping 通家里的路由器,但 ping 不到 OMV 主机本身。如果你想用「OMV 主机走虚拟机里的 OpenWrt 上网」这种思路,macvtap 是不行的,需要别的方案(涉及多网卡或 vlan,本文不展开)。

绝大多数家用场景选 macvtap——简单直接、虚拟机可对外访问,适合跑 OpenWrt 软路由、PT 下载机、家庭影音服务器。


第六步:创建卷(虚拟机的虚拟硬盘)

「卷」就是虚拟机用的虚拟硬盘文件。服务 → KVM → 卷 → 创建

创建卷

字段:

  • 名称:如 win10-disk1
  • :选刚建的 vm-pool
  • 容量Windows 10 建议 40G+、OpenWrt 1G 够、Linux 测试 20G。后期可以扩,但不能缩——所以保守起步
  • 格式
格式 特点 推荐
qcow2 支持快照、动态扩容、空间利用率高 通用首选
raw 性能最好、占位静态、不支持快照 对性能敏感(数据库虚拟机)

新人一律选 qcow2


第七步:创建虚拟机

服务 → KVM → 虚拟机 → 创建

创建虚拟机

字段:

  • 名称:如 win10-vm
  • OS 类型:选 Windows 10(或 Linux 通用)
  • CPU 数量:1-4 个虚拟 CPU,看你 OMV 主机的物理核数留余量
  • 内存:Win10 推荐 4096 MB,OpenWrt 256-512 MB 即可
  • 网络:选第五步建的那个
  • :选第六步建的那个
  • 启动光盘:选上传的 ISO 文件

虚拟机详细配置

保存 + 应用。回虚拟机列表,点击「启动」开机。

启动虚拟机


第八步:用 VNC 看虚拟机画面

虚拟机启动了,但 NAS 没接显示器——怎么看到虚拟机界面?答案是 VNC 远程控制

OMV 的 KVM 插件给每个虚拟机分配了一个 VNC 端口。在虚拟机详情页能看到「VNC 端口」字段(如 5900)。

下载一个 VNC 客户端:

打开 VNC Viewer,输入 <NAS IP>:5900 连接:

VNC 看到 Win10 安装界面

接下来就是常规的 Windows 10 / OpenWrt 安装流程——选盘、选语言、设置账户、装驱动。装完之后这个虚拟机就跟一台独立物理机一样使用了。


进阶玩法

在 OMV 上跑 OpenWrt 当家里的软路由

这是 NAS 玩家最常见的虚拟机用法之一。要点:

  • 网络类型选 macvtap,让 OpenWrt 直接拿到家里网段的 IP
  • 卷给 1G 够了,OpenWrt 镜像不大
  • 装完后把家里路由器改成桥接 / AP 模式,让 OpenWrt 接管 DHCP 和上网

在 OMV 上跑 Windows 10 当远程办公主机

  • 配合 ③ 异地访问 把 OMV 接入虚拟内网
  • 在 Win10 虚拟机里启用远程桌面,远程时连虚拟机的内网 IP
  • 这样你的「办公主机」 24h 在线、能耗低、不占工位

具体远程桌面怎么配,参考 Windows 异地远程桌面教程——把那篇里的「公司电脑」换成「OMV 里的 Win10 虚拟机」即可。


常见问题

问题 1:KVM 插件装不上 / 报依赖缺失

启用 OMV-Extras 里的 Proxmox KernelBackports,再重装 KVM 插件。

问题 2:虚拟机开机后没画面 / VNC 连不上

按顺序排查:

  1. 虚拟机真的在跑吗:列表里状态是「运行中」吗?还是「已停止」/「错误」?
  2. VNC 端口对吗:在虚拟机详情页查端口号,不同虚拟机端口不同
  3. NAS 防火墙是否拦了 VNC 端口:默认 KVM 用的 5900-5910 这一段是放行的,自定义防火墙规则可能拦到
  4. CPU 是否开了 VT-x/AMD-V:BIOS 没开虚拟化,KVM 会启动失败

问题 3:虚拟机性能特别差(比物理机慢几倍)

  • CPU 没开 VT-x/AMD-V:BIOS 里开
  • 内存分配太少:Win10 至少 4G,给 2G 必卡
  • 存储用了 NTFS 数据盘:KVM 在 NTFS 上跑的 qcow2 性能很差,推荐池放在 ext4 / btrfs 盘上
  • 网络选了 bridge NAT 但虚拟机里跑高带宽业务:换 macvtap

问题 4:macvtap 虚拟机能上外网,但 OMV 主机访问不到它

这是 macvtap 的设计限制,不是 bug。处理方法:

  • 业务从外面网段访问虚拟机(推荐)
  • 改用 bridge NAT 网络(但虚拟机也访问不到外部)
  • 多网卡方案:OMV 主机用一个网口,macvtap 虚拟机用另一个

家用场景一般不需要 OMV 主机直接访问虚拟机,从外面访问就够了。

问题 5:虚拟机磁盘满了,能扩容吗?

可以。在 服务 → KVM → 卷 找到那个卷,编辑容量改大。注意是 qcow2 才能扩,raw 不行。扩完后还要进虚拟机系统里扩分区(Windows 用磁盘管理、Linux 用 fdisk+resize2fs)。

反过来缩容不支持——这就是为什么前面建议保守起步。


总结与延伸

到这里你的 OMV NAS 就升级成了家里的虚拟化平台

  • 一台机器跑多个角色(路由器 + 远程办公主机 + Web 测试机)
  • 每个虚拟机隔离独立,互不影响
  • 比买多台物理机省电、省地、省钱

OMV 5 部曲继续读

虚拟机里的 Windows 也要异地访问?

虚拟机里的 Win10 可以完全像一台独立物理机配远程桌面 + MoleSDN,参考 Windows 异地远程桌面教程。OMV 主机和 Win10 虚拟机可以同时接入同一个 MoleSDN 服务域,从外面分别访问。

家用宽带 + 移动网络组合下,普通直连有时打不通——超级鼹鼠 / 智能路由 / 可靠洞洞 这几个进阶能力专门为这类场景设计。还没用过 MoleSDN?先看 快速上手,全程 1 分钟。

祝折腾愉快。