PVE 崩溃恢复ZFS存储上的虚拟机

玩机教程 > Proxmox VE/PVE (26) 2025-10-13 12:01:46

1. 查看磁盘是否还在ZFS

先决条件:PVE崩溃后重装系统并成功挂载之前的ZFS存储,PVE崩溃后挂载ZFS存储操作参考:PVE 系统崩溃重装 ZFS阵列挂载

1.1 WEB查看

PVE 崩溃后导入ZFS虚拟机_图示-da2376e53f8248369b2742c5d91f4b73.png

1.2 PVE Shell命令查看

zfs list

输出参考;

root@pve:~# zfs list
NAME               USED  AVAIL  REFER  MOUNTPOINT
r5                32.5G  5.90G   128K  /r5
r5/vm-100-disk-0  32.5G  33.4G  4.97G  -
root@pve:~# 

 

1.3 查看zfs存存储磁盘在pve的值

pvesm list r5

参数: r5 - 对应zfs存储名

输出参考:

root@pve:~# pvesm list r5
Volid            Format  Type             Size VMID
r5:vm-100-disk-0 raw     images    34359738368 100

重要提示:

操作zfs相关磁盘使用数据集路径,也就是zfs list 输出的路径,如上面的磁盘路径为:r5/r5/vm-100-disk-0

操作qm相关设置使用pvmsm路径,参考上面的:r5:vm-100-disk-0

2.创建空白虚拟机

空白虚拟机参考:

空白定义:无需系统操作安装资源,无需磁盘

PVE 崩溃后导入ZFS虚拟机_图示-3a8dea9ee6564a41bd5d470d57f453d8.png

 

3. 恢复ZFS存储上的虚拟机

3.1 方案一:附加磁盘空白虚拟机

3.1.1 导入磁盘到虚拟机

如果你想把 vm-100-disk-0 挂载到另一个虚拟机(如 VM 110)作为数据盘:

qm set 110 -sata0 r5:vm-100-disk-0

执行输出参考:

root@pve:~# qm set 110 -sata0 r5:vm-100-disk-0
update VM 110: -sata0 r5:vm-100-disk-0

💡 若提示“disk is already in use”,可先解除占用(见下文3.1.2)

3.1.2 处理“磁盘被占用”问题(可选)

提示:该步骤为上一步执行失败,提示了磁盘被占用/“disk is already in use”才操作,否则跳过该步骤

如果上一步qm set提示磁盘已被使用(即使 VM 不存在),可能是因为 PVE 的元数据未清理:

# 查看磁盘占用情况 pvesm命令

pvesm queryusedby r5:vm-100-disk-0

如果返回空或旧 VMID,可手动清除:

# 强制释放(谨慎操作)

pvesm free r5:vm-100-disk-0

 

执行完成后到web界面查看虚拟机信息

PVE 崩溃后导入ZFS虚拟机_图示-3cc33ad3ceeb4004a8fee89432f5581c.png

 

3.1.3 更改磁盘名称或归属(推荐操作)

如果你不想继续用 vm-100-disk-0 这个名字,可以重命名 ZFS 数据集:

1.关闭虚拟机
2.执行zfs存储上的数据集(dataset name)重命名

(相当于文件系统里面的文件重命名)

zfs rename r5/vm-100-disk-0 r5/vm-110-disk-0
3. 更新虚拟机中硬盘映射

执行了第2步骤后,虚拟机的配置参考如下:

PVE 崩溃后导入ZFS虚拟机_图示-df136b03872842c9a6e8907812278cc7.png

发现虚拟机配置并没有修改,然后查看当前的zfs存储和pve对应的关系

root@pve:~# zfs list
NAME               USED  AVAIL  REFER  MOUNTPOINT
r5                32.5G  5.90G   128K  /r5
r5/vm-110-disk-0  32.5G  33.4G  4.99G  -
root@pve:~# pvesm list r5
Volid            Format  Type             Size VMID
r5:vm-110-disk-0 raw     images    34359738368 110
root@pve:~# 

可以看到名称已经在zfs数据集生效,pvesm生效,唯独虚拟机配置未生效。此时如果启动虚拟机将无法启动!!!

更新步骤:

在虚拟机110硬件中选当前的硬盘,点分离。分离后虚拟机暂时无硬盘

pve执行硬盘设置

qm set 110 -sata0 r5:vm-110-disk-0

执行参考

root@pve:~# qm set 110 -sata0 r5:vm-110-disk-0
update VM 110: -sata0 r5:vm-110-disk-0
root@pve:~#

更新后查看硬件信息

PVE 崩溃后导入ZFS虚拟机_图示-a1d4a5902b94418ab58274304d0ca7b0.png

 

ok,搞定

 

3.1.4 设置引导顺序

PVE 崩溃后导入ZFS虚拟机_图示-d65ebb41ef924a5aa40412579342f511.png

 

3.2 方案二:恢复原 VM(若配置已丢失)

 

如果你希望恢复 VMID 100,并且你知道原始配置(CPU、内存、网卡等),可以手动重建虚拟机配置。

⚠️ 注意:虚拟机配置文件通常位于 /etc/pve/qemu-server/100.conf,如果该文件不存在,则需要重建。

手动创建配置文件

cat > /etc/pve/qemu-server/100.conf <<EOF
bootdisk: sata0
cores: 2
memory: 2048
net0: virtio=AA:BB:CC:DD:EE:FF,bridge=vmbr0
sata0: r5:vm-100-disk-0,size=32G
# 或者如果使用的是 qcow2 文件(存储类型为 Directory)
# ide0: local:100/vm-100-disk-0.qcow2,size=32G
onboot: 1
ostype: l26
EOF

🔁 参数说明:

  • sata0: r5:vm-100-disk-0,size=32G:指向你的 ZFS 磁盘(pve shell执行 pvesm list r5 可以查看),size 可选,但建议写上。
  • r5 是你的 ZFS 池名,请根据实际修改。
  • net0 的 MAC 地址可省略或随机生成。

保存后,在 Web 界面刷新,应能看到 VM 100。

 

4.开机校验

PVE 崩溃后导入ZFS虚拟机_图示-bd6ae9a66dd04b8f81d9a8fa239c1502.png

虚拟机成功启动,且数据存在。

提示:由于网卡mac新虚拟机没设置,随机生成,所以ip发生了变化

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
1. 查看磁盘是否还在ZFS先决条件:PVE崩溃后重装系统并成功挂载之前的ZFS存储,PVE崩溃后挂载ZFS存储操作参考:WEB查看 PVE Shell命令查看
1 qemu-img 转换并导出磁盘镜像如果你只想导出磁盘本身(比如转成 RAW 或 QCOW2 文件),可以使用 qemu-img convert。1. 1
情况说明在pve 7.2.7 版本,给一个Windows虚拟机原本4核心,增加到6核心。增加后重启电脑发现Windows 虚拟机还是只有4核心。
概述模拟pve系统盘挂了,恢复数据盘环境说明pve 版本8.4.1测试环境为VMware虚拟机内部虚拟机配置:CPU 4核内存 8GB硬盘1:100G (系统盘
PVE将img格式镜像导入为虚拟机磁盘,常用于黑群晖引导,某些软路由镜像等。pve导入img镜像到虚拟机磁盘命令为:qm importdisk 100 /var
PVE备份操作选择虚拟机-&gtl;备份-&gtl;模式选择停止-&gtl;备份模式说明:停止:完整备份(速度慢,完整备份,类似Windows的克隆,虚拟机删除后可恢复,也可用作基础系统模板)快照:
概述PVE 有两个存储 A / B将硬盘存放于A的虚拟机磁盘移动到B存储。 移动虚拟机硬盘1.关闭虚拟机2.选择需要移动的硬盘
概述pve 在Windows环境下使用VMware练手教程 VMware虚拟机创建 创建虚拟机一路到最后即可,系统选择Linux,虚拟机配置参考然后就是有个cp
proxmox VE(PVE) 虚拟机CPU睿频问题最近搭建了一颗I7 8700T ES@1.6GHz(睿频3.6GHz) CPU的PVE平台。在pve上安装了window 10 (CPU是以H...
一.什么是Hyper-V Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware和Citrix开源Xen一样的基于hypervisor的技术。这
mongodb数据库备份(mongodump)/恢复(mongorestore)
1.模拟磁盘故障接着上一篇《》,将安装完成的raidz其中一块硬盘去掉去掉一块硬盘发现健康状态已经变为DEGRADED了,并且提示了其中一块硬盘UNAVAIL虽
1.添加硬盘添加3块级以上大小相同的硬盘 2.创建ZFS RAIDZPVE没有自带RAID实现,但是通过ZFS整列可以实现类似RAID5效果。 选pve-&gtl;磁盘
转自群晖官网有多种工具可恢复从 Synology NAS 意外删除的数据
底层虚拟化系统选那个?PVE,Unraid,ESXi 还是黑/白群晖