外观
OpenMediaVault:在 PVE 上跑一台轻量 NAS
OpenMediaVault(下文简称 OMV)是基于 Debian 的开源 NAS 系统,给你一套管理磁盘、文件系统、共享和用户的 Web 界面。
在 PVE 上它有一个别的 NAS 系统没有的优势:它不强制 ZFS,所以直通不是前提。这让它成为「在虚拟机里跑 NAS」这件事上门槛最低的选项。
适合谁
| 你的情况 | OMV 合不合适 |
|---|---|
| 只想要 SMB/NFS 共享,内存紧张 | 很合适,2 GB 内存就能跑 |
| 想在虚拟磁盘上跑,不折腾直通 | 很合适,这是它相对 TrueNAS 最大的优势 |
| 想要 ZFS 的校验、快照、压缩 | 不合适。OMV 的 ZFS 靠第三方插件,不如 TrueNAS 原生 |
| 想要一体化的应用生态(相册、影音) | 不合适。OMV 的插件体系比较克制,应用要靠 Docker 自己搭 |
| 要托管极重要且无备份的数据 | 任何跑在虚拟机里的 NAS 都不合适,见下文 |
NAS 虚拟机是一个额外的故障层
你最重要的数据现在依赖两层:PVE 和 OMV。这意味着 PVE 出问题 → NAS 停 → 所有依赖它的服务停。
开始之前,确认这些数据在这台机器之外还有一份。 本站反复强调的那句话在这里尤其适用:冗余(RAID / ZFS)防硬盘坏,备份防其他一切。见备份与恢复。
第一步:决定存储方案
这是整篇文章最重要的决定,它会影响备份、快照和迁移能力,装完再改要搬数据。
| 方案 | OMV 的数据盘是什么 | 冗余由谁负责 |
|---|---|---|
| A. 虚拟磁盘 | PVE 存储上的一块虚拟磁盘 | PVE(宿主机的 ZFS / RAID) |
| B. 直通物理盘 | 直通进来的物理磁盘或整张 HBA | OMV(mdadm / 文件系统层) |
方案 A:虚拟磁盘(多数人该选这个)
OMV 看到的是一块普通的虚拟磁盘,宿主机负责底层冗余。
| 优点 | 能打快照、能迁移、vzdump 能备份到数据;不需要 IOMMU,不挑硬件 |
| 代价 | 两层文件系统(宿主机 ZFS/LVM + OMV 的 ext4);OMV 看不到物理盘的 SMART |
不要做双层冗余
宿主机已经是 ZFS 镜像时,不要在 OMV 里再把两块虚拟磁盘组 mdadm RAID1。那会让可用容量再砍一半,而且不提供任何额外保护——底层已经镜像过了。
宿主机做冗余,OMV 只管共享,这是方案 A 的正确形态。
物理盘的健康监控归宿主机
OMV 在虚拟磁盘上看到的 SMART 是假的(或者根本没有)。磁盘健康必须在 PVE 宿主机上监控,见健康检查清单。
别因为 OMV 界面上一片绿就以为盘是好的——它根本看不到真实的盘。
方案 B:直通物理盘
OMV 直接管理物理磁盘,能看到真实的 SMART,也能自己组 mdadm 阵列。
| 优点 | 真实 SMART;磁盘可以整块拔到别的机器上读 |
| 代价 | 不能打快照、不能迁移;直通盘上的数据完全不在 vzdump 备份里;需要 IOMMU(HBA 直通) |
两种做法:
- 整盘映射:
qm set <vmid> -scsi1 /dev/disk/by-id/<磁盘ID>。简单,但 SMART 透传不完整。 - HBA 整卡直通:需要一张独立的 HBA 卡且它在一个干净的 IOMMU 分组里。SMART 完整,代价是前提条件苛刻。前提与风险见硬件直通。
直通磁盘时必须按序列号确认目标
/dev/sdb 这类名字会随插拔顺序漂移,今天的 sdb 明天可能是别的盘。把错误的盘映射进虚拟机,OMV 在里面建文件系统就会抹掉上面的数据。
始终用 by-id 路径,并先三重确认:
sh
# 在宿主机执行:按容量、型号、序列号确认
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL,SERIAL
ls -l /dev/disk/by-id/确认目标盘没有挂载点、不是系统盘、上面没有你还要的数据,再继续。这一步没有撤销键。
第二步:资源规划
OMV 很省。不要按 TrueNAS 的标准给它。
| 项 | 建议 | 说明 |
|---|---|---|
| vCPU | 1–2 | 纯文件共享很闲。要跑 Docker 再加 |
| 内存 | 2 GB 起,4 GB 宽裕 | 不用 ZFS 插件的话真的不需要更多 |
| 系统盘 | 16–32 GB 虚拟磁盘 | 见下面的警示 |
| 数据盘 | 单独一块,方案 A 或 B | |
| 气球驱动 | 方案 A 可以开;装了 ZFS 插件就关掉 | ZFS 和内存回收配合不好 |
OMV 的系统盘不能拿来存数据
这是 OMV 和其他 NAS 系统最大的差异之一。安装程序会占用整块系统盘,而且 OMV 默认不允许把系统盘当作数据盘共享出去。
所以至少要两块盘:一块装系统,一块存数据。虚拟磁盘也算。
给系统盘分 2 TB 然后指望剩余空间能用来存东西,是新手最常见的返工。有插件能绕开这个限制,但不推荐——它会让系统盘写满时的故障变得更麻烦。
第三步:下载并校验 ISO
从 OpenMediaVault 官网获取安装镜像,并记下官方公布的校验值。
在本地电脑校验:
sh
# macOS / Linux
shasum -a 256 openmediavault_*.iso版本跟着 Debian 走
OMV 的大版本跟随 Debian:OMV 6 基于 Debian 11 Bullseye,OMV 7(Sandworm)基于 Debian 12 Bookworm,之后的版本继续跟进。
当前的稳定版本号和对应的 Debian 代号以官网为准,不要照抄任何教程里写死的版本。
校验通过后上传到 PVE:节点 → local → ISO Images → Upload。
第四步:创建虚拟机
完整的选项解释见创建第一个虚拟机。这里只列和默认不同的地方。
| 标签页 | 字段 | 填什么 |
|---|---|---|
| General | Name | omv,勾上 Start at boot |
| OS | Guest OS | Linux,版本按 OMV 对应的 Debian 选 |
| System | Machine / BIOS | q35 + OVMF (UEFI);方案 B 走 HBA 直通时 q35 是必须的 |
| System | SCSI Controller | VirtIO SCSI single |
| System | Qemu Agent | 勾上(装完系统要在 OMV 里补装软件包) |
| Disks | Bus | SCSI,勾 Discard 和 IO thread |
| Disks | Disk size | 16–32 GB,这是系统盘 |
| CPU | Type | host |
| Memory | Memory | 2048–4096 |
| Network | Model | VirtIO (paravirtualized) |
不要勾 Start after created,还要先加数据盘。
加数据盘
方案 A:虚拟机 → Hardware → Add → Hard Disk,Bus 选 SCSI,容量按需,同样勾上 Discard 和 IO thread。
方案 B:按上面的警示确认好序列号之后,在宿主机执行:
sh
# 在宿主机执行,<磁盘ID> 用 ls -l /dev/disk/by-id/ 查到的完整名字
qm set <vmid> -scsi1 /dev/disk/by-id/<磁盘ID>确认一下写进去的是什么:
sh
qm config <vmid> | grep scsi第五步:安装 OMV
挂载 ISO,启动,打开 Console。OMV 的安装器是 Debian 的文本安装器,一路按提示走。几个要注意的点:
| 步骤 | 注意 |
|---|---|
| 网络配置 | 默认走 DHCP。装完再在界面里改静态 IP |
| 主机名 / 域名 | 域名可以填 local 或你的内网域名 |
| root 密码 | 这是 Linux 的 root 密码,不是 Web 界面的密码 |
| 选择安装磁盘 | 选那块 16–32 GB 的系统盘 |
| 软件源镜像 | 国内可以选地理位置近的镜像,装完能改 |
选错安装磁盘会抹掉数据盘
安装器会清空所选磁盘的全部内容。方案 B 下数据盘就挂在旁边,选错了数据直接没。
分辨方法:系统盘是你刚建的那块 16–32 GB 的,数据盘容量明显更大。按容量核对,不要只看设备名。
最稳妥的做法:先只挂系统盘把 OMV 装完,装完关机再加数据盘。 多花两分钟,彻底消除选错的可能。
安装完成后会自动重启。回到 Hardware → CD/DVD Drive 把 ISO 弹出(改成 Do not use any media),否则下次又从光盘启动。
第六步:第一次登录
OMV 的 Web 界面和 PVE 不一样:
| PVE | OMV | |
|---|---|---|
| 地址 | https://<ip>:8006 | http://<ip>(80 端口,http) |
| 默认账号 | 安装时设的 root | admin |
| 默认密码 | 安装时设的 | openmediavault |
不知道 IP 的话,在 PVE 的 Console 里用 root 登录,执行 ip -4 addr。
默认密码必须立刻改
admin / openmediavault 是公开的默认凭据,任何能访问你内网的人都知道。
登录后第一件事:右上角用户菜单 → 修改密码。然后在 系统 → 用户 里确认没有其他遗留账号。
在此之前,不要把这台机器暴露到任何不可信的网络。
装 guest agent
在 OMV 的 Console 或 SSH 里(它就是一个 Debian):
sh
# 在 OMV 虚拟机内部执行
apt update
apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent装完回 PVE 的 Summary 页面,应该能看到 OMV 的 IP。
这一步不是可选的
没有 guest agent,vzdump 的快照模式拿不到文件系统冻结——备份相当于在 NAS 运行中直接拔电,恢复出来可能要修文件系统。对一台存数据的机器来说这不能接受。
第七步:建共享
OMV 的配置有固定顺序,跳步会找不到选项。
每一步之后都要点「应用」
改完配置,界面顶部会出现一条黄色的待应用变更提示。必须点它的「应用」按钮,配置才会真正写入系统。
这是 OMV 新手最常见的困惑:「共享建好了但电脑上看不见」——十有八九就是没点应用。
1. 擦除磁盘(如果需要)
存储 → 磁盘,选中数据盘。如果它上面有旧的分区表,先 擦除 (Wipe)。
擦除不可撤销
按容量和型号确认这是数据盘,不是系统盘。
2. 建文件系统
存储 → 文件系统 → 创建:
- 选数据盘。
- 文件系统类型:ext4 是稳妥的默认选择。
- 建好之后要点「挂载」,挂载了才能往下走。
方案 A 下不要选 BTRFS 或加 mdadm
宿主机已经在做冗余和校验了,OMV 这层用最简单的 ext4 就好。多加一层复杂度只会让排查变难。
3. 建共享文件夹
存储 → 共享文件夹 → 创建。选刚才挂载的文件系统,给个名字和相对路径。
4. 建用户
用户管理 → 用户 → 创建。
不要用 admin 访问共享
admin 是 Web 界面的管理员。给每个实际使用的人(或设备)建独立的普通用户,共享权限单独授予。这样某个凭据泄露时影响范围可控。
5. 启用 SMB 并添加共享
服务 → SMB/CIFS:
- 先在 设置 里把服务启用。
- 再到 共享 标签页 添加,选上面建的共享文件夹。
- 回到共享文件夹的权限 / ACL,给你的用户读写权限。
- 点应用。
需要 NFS 的话在 服务 → NFS 里做,流程类似。
检查结果
从另一台电脑验证,不要在 OMV 自己里面测:
- 能连上:Windows 资源管理器输入
\\<omv-ip>,macOS 用 Finder 的「连接服务器」输入smb://<omv-ip>,用刚建的普通用户登录。 - 能写:拷一个文件进去。
- 能读:把它拷回来,打开确认内容完整。
- 权限对:换一个没授权的账号试,应该被拒绝。能进去说明权限配错了。
- 重启后还在:在 PVE 里把 OMV 虚拟机 Shutdown 再 Start,确认共享自动恢复。这一步能发现「文件系统没设开机挂载」这类问题。
- PVE 能看到 IP:
虚拟机 → Summary里有 IP,说明 guest agent 正常。
六项都过,这台 NAS 才算可用。
备份与维护
方案 B 的数据不在 PVE 备份里
vzdump 只备份 PVE 存储上的虚拟磁盘。直通进去的物理盘,PVE 完全看不到,也不会备份。
用方案 B 时,数据的备份必须由 OMV 自己负责(服务 → rsync 定时同步到另一台机器),或者用别的方案。不要以为「PVE 备份了这台虚拟机」就等于数据安全了。
方案 A 下 vzdump 能备到数据,但数据盘几百 GB 时全量备份会很慢很占空间。更实际的组合是:
| 备什么 | 怎么备 | 频率 |
|---|---|---|
| OMV 系统盘(配置、用户、共享定义) | PVE 的 vzdump | 每天 |
| 数据 | OMV 的 rsync 任务同步到另一台机器 | 按数据重要性 |
更新
OMV 在 系统 → 更新管理 里做更新,底层就是 Debian 的 apt。
大版本升级前先打快照
OMV 的大版本升级(跟随 Debian)是发行版升级,可能出问题。方案 A 下这件事很轻松:升级前在 PVE 里打个快照,出问题一键回滚。
这也是「NAS 跑在虚拟机里」相对物理机的一个真实优势。方案 B 有直通设备时不能打快照,就享受不到这个好处了。
关于 omv-extras
omv-extras 是社区维护的第三方插件仓库,Docker、Compose、ZFS 等能力都来自它。
它不是官方组件
安装方式是执行一个远程脚本。装之前确认你是从 omv-extras 的官方页面拿到的地址,不要照抄论坛帖子或教程里的链接——这类地址一旦被替换,你交出去的是 root 权限。
本站不提供可直接复制的安装命令,请以 omv-extras 官方说明为准。装之前先打快照。
常见问题
装完之后网页打不开。 在 PVE 的 Console 里用 root 登录,跑 OMV 自带的修复工具:
sh
# 在 OMV 虚拟机内部执行
omv-firstaid它提供了配置网络接口、重置 Web 界面密码等选项,是 OMV 失联时的标准救援手段。
这是虚拟机相对物理 NAS 的优势
在 PVE 里,就算 OMV 的网络配置改崩了,你依然能从 Web UI 的 Console 进去跑 omv-firstaid。物理机的话就得接显示器了。
改了静态 IP 之后失联。 同上,omv-firstaid 里选配置网络接口。
共享建好了但电脑上看不到。 按顺序查:顶部的应用变更点了吗 → SMB 服务启用了吗 → 共享文件夹的 ACL 给对应用户授权了吗。第一条占绝大多数。
存储 → 磁盘 里看不到数据盘。 方案 A:确认 PVE 里加的磁盘 Bus 是 SCSI,且虚拟机完整重启过(Stop 再 Start,不是客户机内部 reboot)。 方案 B:在宿主机 qm config <vmid> | grep scsi 确认映射写进去了。
磁盘能看到,但建不了文件系统。 盘上有旧分区表,先在 存储 → 磁盘 里擦除。
OMV 里看不到 SMART。 方案 A 下这是正常的——它面对的是虚拟磁盘。物理盘健康请在 PVE 宿主机上监控。
想跑 Docker 应用。 通过 omv-extras 装 Docker 和 Compose 插件。但要想清楚:如果你的主要目的是跑容器,在 PVE 上单独开一台 Docker 虚拟机通常比堆在 NAS 里更好管——出问题时互不牵连。见 Linux 客户机。