外观
磁盘或文件系统不见了
适用范围
存储器 → 磁盘(Storage → Disks)里少了一块盘。存储器 → 文件系统(Storage → File Systems)里某个文件系统的状态是「丢失」(Missing),或者没有「已挂载」标记。存储器 → 共享文件夹(Storage → Shared Folders)里某个共享文件夹的状态是「不可用」(Unavailable)。- 重启之后数据盘没有自动挂上。
- 在 shell 里手工挂载的盘,在共享文件夹的「设备」下拉列表里选不到。
不适用:RAID 阵列降级但磁盘仍在,见RAID 降级;文件系统还在、但变成只读,见文件系统变成只读。
开始排查前
没搞清原因之前,不要创建文件系统、擦除或重新分区
影响范围:「看不到」或「看起来是空的」的磁盘,上面往往仍然有完整的数据。对它执行创建文件系统、擦除(Wipe)、重新分区,数据会永久丢失。
前置条件:先确认硬件还在、按型号和序列号确认是哪一块盘,再动手。注意 OMV 8.5.2 起,创建文件系统的候选列表不再列出「非空」的磁盘。你的盘没出现在候选列表里,通常说明它上面已经有数据或分区信息,应当使用挂载而不是创建。
回退办法:本页的检查全部是只读的,不需要回退。一旦在盘上写入了新的文件系统,旧数据无法通过界面找回,只能靠备份或专业的数据恢复,而且不保证成功。
排查步骤
1. 先分清是哪一层不见了
| 层次 | 在哪里看 | 「不见了」的表现 |
|---|---|---|
| 磁盘(硬件) | 存储器 → 磁盘、lsblk | 整块盘不在列表里 |
| 文件系统 | 存储器 → 文件系统 | 状态是「丢失」(提示「文件系统不存在」),或没有已挂载标记 |
| 共享文件夹 | 存储器 → 共享文件夹 的状态列 | 「不可用」,悬停提示是目录不存在、非目录或未找到数据库记录 |
三层依次依赖:共享文件夹靠文件系统,文件系统靠磁盘。从最底层开始查。
2. 磁盘(硬件层)
sh
# 在 OMV 的 shell 里执行(只读)
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL,SERIAL,TRAN
ls -l /dev/disk/by-id/
dmesg -T | grep -iE 'ata[0-9]+|nvme|usb|sd[a-z]|I/O error|reset'lsblk里就没有这块盘:硬件层的问题。关机后重新插拔数据线和电源,换接口、换线。外接 USB 硬盘盒还要检查供电,见外接 USB 硬盘的正确用法。- 热插拔之后界面没有更新:
存储器 → 磁盘的工具栏有扫描新设备(Scan for new devices)按钮,会弹出确认框,检测需要一点时间,可能要多刷新几次。 - 日志里有
I/O error, dev sdX, sector ...:磁盘或线缆有问题。OMV 8.5.10 起,内核报这类块设备 I/O 错误时会发告警邮件,前提是邮件通知可用,并且「杂项」(Miscellaneous)通知项开着。SMART 的检查方法见S.M.A.R.T.:监控硬盘健康。 - 多块 USB 盘只出现了一块:官方排障页提到,部分 USB 桥接芯片(以 JMicron 为主)会给所有盘报告相同的序列号,使系统分不清它们。OMV 已经自带 udev 规则来绕开这个问题,不需要自己改系统的 udev 文件。规则覆盖不到你的盒子时,按官方说明提交信息,并参考硬盘接口、HBA 与 USB 硬盘盒。
3. 文件系统层
盘在,但文件系统状态是「丢失」:数据库里有这个文件系统的挂载记录,但系统找不到对应的设备。
sh
# 在 OMV 的 shell 里执行(只读)
lsblk -f
blkid
findmnt -l -o TARGET,SOURCE,FSTYPE,OPTIONS | grep -E 'TARGET|/srv/'blkid里能看到这块盘的 UUID 和文件系统类型,且与界面上的设备对得上:文件系统没问题,只是没挂载,看第 4 步。blkid里没有这块盘,或者没有文件系统类型:文件系统没有被识别,可能是分区表或文件系统损坏。停止操作,不要创建或擦除,先读文件系统变成只读里的「先复制数据」的做法,必要时用救援系统检查。- UUID 变了:这块盘被重新格式化过,原来的记录自然对不上。
- 这块盘是别的东西的成员:软件 RAID 看
cat /proc/mdstat;LUKS 加密卷要先解锁,见LUKS 磁盘加密;ZFS 池要先导入,见ZFS 插件;Btrfs 多设备文件系统需要所有成员盘都在,可用btrfs filesystem show查看。
4. 盘回来了,但没有挂载
OMV 的 monit 对每个已配置的文件系统检查挂载点,连续 2 个检查周期(默认每 30 秒一个周期)都没挂载,就会执行一次 mount。这依赖「监测 - 文件系统」通知项,它默认是开启的。所以硬件恢复后,等一两分钟通常会自动挂上。想立刻确认或手动挂载:
sh
# 在 OMV 的 shell 里执行;<挂载点> 例如 /srv/dev-disk-by-uuid-<UUID>
mountpoint <挂载点>
mount <挂载点>mount <挂载点> 使用的是 /etc/fstab 里 OMV 已经写好的条目,不会改动配置。挂载失败时,journalctl -k -b 里通常有原因,多半是文件系统本身有错误,见文件系统变成只读。
5. 共享文件夹显示「不可用」
共享文件夹等于「文件系统 + 相对路径」。悬停在「不可用」上,会看到原因:
| 提示 | 含义 | 处理 |
|---|---|---|
| 目录不存在 | 所在的文件系统没挂载,或者相对路径下的目录被删了 | 先让文件系统挂上;目录确实被删了,就恢复或改共享文件夹的路径 |
| 非目录 | 路径指向的是一个文件 | 修正路径 |
| 未找到数据库记录 | 它所在文件系统的挂载记录没了,例如在文件系统页点过「卸载」 | 用 存储器 → 文件系统 的挂载(Mount)重新挂载这个文件系统,再回来查看 |
不可用期间,用到这个共享文件夹的 SMB、NFS、容器等服务都会受影响,文件系统恢复之后逐项确认。
6. 在 shell 里手工挂载的盘选不到
官方排障页的要求是:只通过 OMV 的界面挂载数据盘,不要用命令行或其他工具挂载。界面挂载时才会生成数据库记录,共享文件夹的设备下拉列表才有这块盘。已经手工挂了的,先卸载,再用 存储器 → 文件系统 的挂载重新做。
「卸载」不是刷新
在 OMV 里,文件系统页的卸载(Unmount)会卸掉文件系统,同时删除它在配置数据库里的挂载记录。被共享文件夹引用的文件系统,这个按钮会被禁用。不要为了「刷新状态」去点它,也不要在盘暂时离线时删除引用它的共享文件夹,否则盘回来之后要重新挂载、重建共享。
确认恢复
存储器 → 磁盘列出了全部磁盘;存储器 → 文件系统里文件系统可用并已挂载;共享文件夹的状态是可用。- 用到这些共享的服务(SMB、NFS、容器)恢复正常,随机打开几个文件确认内容完整。
- 重启一次,确认数据盘能自动挂载。
- 发生过掉盘的,补做一次 SMART 检查,并确认备份可用。
仍未解决
附上:lsblk -f、blkid 的输出,dmesg 里与这块盘相关的行,smartctl -a /dev/<磁盘> 的输出,磁盘的连接方式(SATA、USB 还是 HBA),以及这块盘是否属于 RAID、LUKS 或 ZFS。序列号、UUID 分享前酌情遮盖,读如何有效求助。
参考资料
- OMV 官方文档:Troubleshooting(手工挂载的盘选不到、JMicron 序列号问题)、FAQ
- 本站:OMV 的存储模型:从磁盘到共享、挂载已有数据的硬盘、共享文件夹:OMV 共享的基本单位