昨天家里的 PVE 小主机出了点问题。
一开始只是发现 Docker 服务突然停止,后来才发现不只是 Docker,整个 PVE 主机都发生过重启。原本运行得好好的 iStoreOS、Docker、Portainer 和一些业务服务,也因此受到了影响。
本来以为是系统或者硬盘出了问题,没想到一番折腾下来,最后发现罪魁祸首竟然是一个不起眼的电源适配器。
这次排查过程还挺曲折,记录一下。
一、PVE 突然重启,日志却找不到明显原因
最开始发现 Docker 服务不正常,我登录 PVE 查看了一下状态。
通过 last -x 可以看到系统确实发生过重启。再往前翻日志,发现某个时间点之后日志就突然中断了,随后进入了新一轮启动记录。
这就有点奇怪了。
如果是正常关机,通常能看到关机流程;如果是系统崩溃,有时也能在日志中找到一些线索。但这次并没有发现特别明确的异常。
我又检查了内核日志、watchdog、温度以及其他相关信息,也没有找到能够直接确定原因的证据。
当时还怀疑过是不是硬盘出了问题,毕竟 PVE 系统和虚拟机都在这块盘上。
但仅凭这些日志,还不能确定故障原因。
二、担心硬盘出问题,先把备份保存下来
考虑到系统运行不稳定,而且硬盘也准备送去保修,我先把 /var/lib/vz/dump/ 目录中的备份文件下载到了 Windows 电脑。
最后找到了两个备份:
vzdump-lxc-102-2026_11_02-05_00_02.tar.zstvzdump-qemu-104-2026_11_02-05_06_13.vma.zst
这两个文件分别对应:
- CT 102:原来运行 Docker、Portainer 和业务服务的 LXC 容器。
- VM 104:iStoreOS 虚拟机,负责给 PVE 内部虚拟机提供网络。
有了这两个备份,至少不用担心原来的服务完全无法恢复。
硬盘健康度又非常低,我不得不进行备份。

三、没有备用硬盘,就在 Windows 上临时搭建 PVE
当时手头没有其他硬盘,只有一台 Windows 电脑。
为了尽快把服务恢复起来,我决定使用 VMware Workstation,在 Windows 里面再安装一套 PVE。
整个过程并不复杂:
- 下载 PVE ISO 镜像。
- 在 VMware 中创建虚拟机。
- 分配 CPU、内存和虚拟硬盘。
- 安装 PVE。
- 配置网络,让 Windows 能够访问 PVE 管理页面。
刚开始使用的是 NAT 网络,发现 Windows 物理机无法直接访问 PVE 的管理地址。
后来改成桥接模式,让 PVE 和 Windows 处于同一个局域网网段,终于可以正常访问了。
这一步也算是解决了临时恢复环境的问题。
四、恢复 iStoreOS,又遇到了网络问题
按照原来的架构,应该先恢复 VM 104,也就是 iStoreOS。
因为它负责给内部虚拟机提供网络,如果它没有恢复,后面的业务服务可能无法正常联网。
恢复 VM 104 后,启动时又遇到了一个报错:
cannot prepare PCI pass-through, IOMMU not present
原因是原来的 iStoreOS 配置了 PCI 设备直通,而现在的 PVE 是运行在 VMware 里面的,没有原来那套物理硬件直通环境。
于是检查了 VM 104 的配置,发现原来只有一张虚拟网卡配置,之前的 PCI 直通设备也无法继续使用。
接着又检查了 iStoreOS 内部网络,发现它原来配置了多张网卡:
- LAN 使用
br-lan,地址是192.168.3.101。 - WAN 原本绑定
eth3,使用 DHCP 获取地址。
但现在 VMware 环境中并没有原来的网卡结构,所以网络配置也需要重新调整。
后来通过检查网络和路由信息,确认 iStoreOS 已经能够 Ping 通家庭路由器,但 DNS 和默认路由仍然存在问题。
这部分其实就是在尝试把原来的物理 PVE 网络结构迁移到 VMware 环境中。
五、恢复 CT 102,又出现了只读文件系统错误
网络问题还在排查时,我又尝试恢复 CT 102。
恢复过程一开始看起来很正常,备份文件也已经开始解压。
但是进行到最后,突然出现大量报错:
Read-only file system
其中还包括:
Cannot change ownership
Cannot change mode
最后恢复任务失败:
TASK ERROR: unable to restore CT 102
从日志来看,备份数据已经读取了约 24GiB,但写入容器文件系统时出现了只读错误。
这下又开始怀疑是不是 VMware 虚拟磁盘、PVE 的 LVM Thin Pool,或者文件系统出了问题。
当时准备继续检查磁盘空间、存储状态和内核日志。
如果只看这些现象,很容易把问题归结到系统或者硬盘上。
六、最后发现:真正的问题是电源适配器老化
折腾了这么一圈,最后还是回到了最开始的问题:为什么 PVE 会突然重启?
重新考虑硬件供电之后,才发现原来的电源适配器已经使用了很长时间。
原适配器规格是:
12V 2.5A
而且之前就注意到一个现象:电源适配器即使空载,指示灯也会规律地忽明忽暗,有点像呼吸灯。
当时没有把这个现象和 PVE 重启联系起来。
最终排查下来,确认是电源适配器老化导致供电不稳定。
于是换成了一个绿联的:
12V 5A 电源适配器。
更换之后,之前遇到的异常问题就恢复正常了。

原本以为是硬盘、PVE 系统或者文件系统出了问题,结果最后只是一个电源适配器。
七、这次排查的一点经验
这次经历让我有一个比较深的感受:
遇到服务器异常,不要一上来就只盯着软件和系统。
尤其是小主机这种设备,电源适配器虽然不起眼,但它直接影响整台机器的稳定运行。
如果出现下面这些情况,可以把供电问题也纳入排查范围:
- 主机无明显原因突然重启。
- 系统日志突然中断,没有正常关机记录。
- 服务偶尔异常,但又找不到稳定复现的原因。
- 电源适配器指示灯异常闪烁。
- 更换电源后,之前的问题明显消失。
当然,遇到文件系统只读、磁盘 I/O 错误等情况,还是应该检查存储本身,不能直接认定就是电源问题。
这次也算是给自己提了个醒:服务器稳定运行,不只是 CPU、内存、硬盘和系统的问题,供电同样重要。
有时候,折腾半天的系统故障,最后可能只是一个几十块钱的电源适配器。






























