启动进入 Emergency Mode、重启后无网络的完整解决方案

适用于:Proxmox VE 家用服务器 / NAS / 软路由一体机
关键词:PVE Emergency Mode、OpenWrt 自动启动、USB 硬盘挂载、UUID、断电恢复网络

一、问题背景

在家庭服务器环境中,常见如下架构:

理想状态应当是:

断电 → 开机 → 自动有网 → 数据完整
不需要登录 PVE、不需要手动修复


二、常见故障现象

1. PVE 启动进入 Emergency Mode

启动时出现类似日志:

Timed out waiting for device /dev/sdd
Dependency failed for /mnt/sdd
You are in emergency mode

现象结果:


2. USB 外接硬盘重插后“变成新盘”

例如:

这是 Linux 的正常行为

/dev/sdX 不是固定标识,只与识别顺序有关。


三、核心原则(必须理解)

❌ 不可靠的做法

✅ 正确且稳定的做法


四、使用 UUID 正确挂载 USB 硬盘(不影响任何数据)

1️⃣ 查看磁盘 UUID

在 PVE 宿主机执行:

lsblk -f

示例输出:

sdb  ext4  f0cbb87d-3102-4144-9482-29ac369e37c0
sdc  ext4  63224029-2ca9-4091-a014-67873eecbc30

📌 UUID 是磁盘的唯一身份标识,与盘符无关


2️⃣ 修改 /etc/fstab(关键步骤)

❌ 错误示例(不要再使用):

/dev/sdd  /mnt/sdd  ext4  defaults  0  2

✅ 正确示例(推荐):

UUID=f0cbb87d-3102-4144-9482-29ac369e37c0  /mnt/disk1  ext4  defaults,nofail,x-systemd.device-timeout=10  0  2
UUID=63224029-2ca9-4091-a014-67873eecbc30  /mnt/disk2  ext4  defaults,nofail,x-systemd.device-timeout=10  0  2

参数说明:

📌 此操作不会格式化磁盘,不会影响现有数据


3️⃣ 挂载验证(无需重启)

mount -a

无错误即表示配置正确。


五、如何确认“原来的 sdd 是哪一块盘”?

在以下场景中:

结论是:

经过修复处理后,PVE可以正常启动,然后启动FNOS后,它确实不会去区分uuid 与原先的硬盘是否对应,只要这两块硬盘都在原来的位置就可以了,无需区分。

原因很简单:


六、解决 OpenWrt 虚拟机重启后无网络的问题(如果仅仅是解决因为硬盘挂载问题而无法启动PVE的问题,则不用看这一步)

1️⃣ 基础设置(必须)

在 PVE 中确认:


2️⃣ 最终保险方案(强烈推荐)

即使以上都配置正确,仍建议加这一条

在 PVE 宿主机执行:

crontab -e

添加(假设 OpenWrt VMID 为 100):

@reboot sleep 90 && qm start 100

为什么这一步非常重要?

这是实际运维环境中常用的“自愈方案”


七、最终验证(建议一定要做)

模拟一次真实停电流程:

  1. 关闭电源
  2. 等 30 秒
  3. 开机
  4. 不登录 PVE
  5. 等 2 分钟
  6. 用手机连接 Wi-Fi

验收标准:


八、总结:最终你将获得什么

完成以上配置后,你的系统将具备:

Leave a Reply