星河 发表于 2023-8-28 10:32

PVE如何找回丢失的VM?

今天我把PVE升级到7.4,但是升级完成后无法启动。我尝试搜索了很长时间但无法解决。
于是我找到了一个U盘在上面安装了新的PVE。在安装过程中确认了将旧 PVE 命名为 pve-OLD-134EEXXX的提示选项。
现在,我可以将旧安装中的驱动器添加为 LVM,但无法访问它里面的数据
现在我想将VM导入到新的PVE中,因为虚拟机中有很多重要数据。我应该怎么操作?
我对LINUX不熟悉,以下是我在搜索时看到的命令,希望有所帮助。
root@pvej:~# lsblk
NAME                        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                           8:0    0 111.8G0 disk
├─sda1                        8:1    01007K0 part
├─sda2                        8:2    0   512M0 part
└─sda3                        8:3    0 111.3G0 part
├─pve--OLD--134EE27A-swap 253:0    0   8G0 lvm
└─pve--OLD--134EE27A-root 253:1    0 103.3G0 lvm
sdb                           8:16   0 931.5G0 disk
sdc                           8:32   157.3G0 disk
├─sdc1                        8:33   11007K0 part
├─sdc2                        8:34   1   512M0 part /boot/efi
└─sdc3                        8:35   156.8G0 part
├─pve-swap                253:2    0   7G0 lvm
└─pve-root                253:3    049.8G0 lvm/
root@pvej:~# vgscan
Found volume group "pve" using metadata type lvm2
Found volume group "pve-OLD-134EE27A" using metadata type lvm2
root@pvej:~# lvscan
ACTIVE            '/dev/pve/swap' inherit
ACTIVE            '/dev/pve/root' inherit
ACTIVE            '/dev/pve-OLD-134EE27A/swap' inherit
ACTIVE            '/dev/pve-OLD-134EE27A/root' [<103.29 GiB] inherit

sxqt 发表于 2023-8-28 10:57

不会linux操作的话,可以试试直接U盘启动PE。然后用LinuxReader之类的工具,把想要的VM文件拷出来。

星河 发表于 2023-8-28 11:14

sxqt 发表于 2023-8-28 10:57
不会linux操作的话,可以试试直接U盘启动PE。然后用LinuxReader之类的工具,把想要的VM文件拷出来。 ...

lvm格式的也能用LinuxReader读取吗

sxqt 发表于 2023-8-28 11:18

本帖最后由 sxqt 于 2023-8-28 11:20 编辑

星河 发表于 2023-8-28 11:14
lvm格式的也能用LinuxReader读取吗

看你安装PVE的时候硬盘选的什么格式,一般都是Ext4吧。

The default file system is ext4. The Logical Volume Manager (LVM) is used when ext4 or xfs is selected.

imyz 发表于 2023-8-28 11:30

好多年前我的 LaCie 5big Pro 的 NASOS 也是崩了,基于 Linux LVM,后来自己摸索,用 PXE 进 Recovery 模式手工 mount,总算是保住了接近 4TB 的数据。有兴趣看下我之前的记录:

https://bbs.pcbeta.com/viewthread-1495201-1-1.html

lk_yeah 发表于 2023-8-28 11:45

如果你能折腾,可以网上搜一下PVE的虚拟化命令,qm开头的,可以导入现有的虚拟机。再就是用sftp工具将虚拟机文件拷出来,重新整好PVE,新建虚拟机将原来虚拟机磁盘挂载上。工具推荐moba,支持多种协议。
唉,为啥要升级版本捏?这要是生产环境,不就完犊子了吗

YoshinoSakura 发表于 2023-8-28 12:56

添加元存储并添加同id虚拟机后qm disk rescan试试?

阿崔 发表于 2023-8-28 13:17

我之前软路由因为飞虫导致主板被烧,被迫在新机器上重装了PVE,基本步骤就是:
1.命令行把原来的conf分区挂载过来
2.命令行把旧的conf里面的虚拟机配置复制过来
3.在GUI里挂载旧的vm磁盘所在的vg
4.在命令行修改虚拟机的conf文件,把所在位置改到对应位置
5.在GUI下面备份旧虚拟机,然后恢复到新的vg下面。
详细每步应该怎么做都可以网上查到。

星河 发表于 2023-8-28 13:27

sxqt 发表于 2023-8-28 11:18
看你安装PVE的时候硬盘选的什么格式,一般都是Ext4吧。

一年多以前装的,记不清了,应该是EXT4

星河 发表于 2023-8-28 13:32

imyz 发表于 2023-8-28 11:30
好多年前我的 LaCie 5big Pro 的 NASOS 也是崩了,基于 Linux LVM,后来自己摸索,用 PXE 进 Recovery 模式 ...

谢谢,参考一下

九天御风 发表于 2023-8-28 13:41

我记得我上次升级蹦了是把硬盘拆出来装到其他电脑上,把虚拟机的那个文件夹整个复制出来了。然后重新安装PVE之后再把整个文件夹放回去,再开机就跟以前一样了。虚拟机什么的都在。

flow 发表于 2023-8-28 14:15

楼主真是胆子大啊, 对PVE不熟就直接搞起来, 的亏PVE是个很耐折腾的环境, 不然真的要哭了

你大概可以这么做
mkdir /mnt/pve_old
mount /dev/pve-OLD-134EE27A/root /mnt/pve_old
ls /mnt/pve_old

看看都有些啥

happysun110 发表于 2023-8-28 15:09

升级前把虚拟机导出一份备份起来才稳妥啊,出现任何情况都大不了重新安装pve然后恢复虚拟机。

或者你可以参考我的方案,pve 说白了也是debian为基础的linux,你可以安装 timeshift 软件来对 pve 系统做(增量)备份,升级前先 timeshift create 一下,然后升级,出现问题时可以随时用 timeshift 恢复pve系统到备份时的状态。

星河 发表于 2023-8-28 16:44

阿崔 发表于 2023-8-28 13:17
我之前软路由因为飞虫导致主板被烧,被迫在新机器上重装了PVE,基本步骤就是:
1.命令行把原来的conf分区挂 ...

mount /dev/pve-OLD-134EE27A/root /mnt/old

昨晚试过上面这个命令,挂载不了

星河 发表于 2023-8-28 16:49

本帖最后由 星河 于 2023-8-28 17:12 编辑

flow 发表于 2023-8-28 14:15
楼主真是胆子大啊, 对PVE不熟就直接搞起来, 的亏PVE是个很耐折腾的环境, 不然真的要哭了

你大概可以这么做 ...

昨晚我试过但是没挂载成功,今天竟然一次挂载成功
root@pvej:/mnt/pve_old# ls -l
total 76
lrwxrwxrwx1 root root   7 May42022 bin -> usr/bin
drwxr-xr-x5 root root4096 Aug 27 19:25 boot
drwxr-xr-x4 root root4096 May42022 dev
drwxr-xr-x 88 root root4096 Aug 27 22:18 etc
drwxr-xr-x2 root root4096 Mar 192022 home
lrwxrwxrwx1 root root   7 May42022 lib -> usr/lib
lrwxrwxrwx1 root root   9 May42022 lib32 -> usr/lib32
lrwxrwxrwx1 root root   9 May42022 lib64 -> usr/lib64
lrwxrwxrwx1 root root    10 May42022 libx32 -> usr/libx32
drwx------2 root root 16384 Jul22022 lost+found
drwxr-xr-x2 root root4096 May42022 media
drwxr-xr-x3 root root4096 Aug 27 21:18 mnt
drwxr-xr-x2 root root4096 May42022 opt
drwxr-xr-x2 root root4096 Mar 192022 proc
drwx------6 root root4096 Aug 27 19:24 root
drwxr-xr-x5 root root4096 May42022 run
lrwxrwxrwx1 root root   8 May42022 sbin -> usr/sbin
drwxr-xr-x2 root root4096 May42022 srv
drwxr-xr-x2 root root4096 Mar 192022 sys
drwxrwxrwt7 root root4096 Aug 27 22:09 tmp
drwxr-xr-x 14 root root4096 May42022 usr
drwxr-xr-x 11 root root4096 May42022 var

星河 发表于 2023-8-28 16:50

happysun110 发表于 2023-8-28 15:09
升级前把虚拟机导出一份备份起来才稳妥啊,出现任何情况都大不了重新安装pve然后恢复虚拟机。

或者你可以 ...

我之前有用过备份,不过只备份了快照到远程挂载的NAS里,能直接恢复吗

星河 发表于 2023-8-28 17:00

九天御风 发表于 2023-8-28 13:41
我记得我上次升级蹦了是把硬盘拆出来装到其他电脑上,把虚拟机的那个文件夹整个复制出来了。然后重新安装PV ...

你说的其它电脑是什么系统,然后怎么复制出来的?据我所知WIN系统不能直接读取LINUX系统的内容

星河 发表于 2023-8-28 18:07

阿崔 发表于 2023-8-28 13:17
我之前软路由因为飞虫导致主板被烧,被迫在新机器上重装了PVE,基本步骤就是:
1.命令行把原来的conf分区挂 ...

谢谢提供思路,对小白来说,每步都很艰辛。。。[睡觉]

星河 发表于 2023-8-28 18:08

本帖最后由 星河 于 2023-8-28 18:25 编辑

flow 发表于 2023-8-28 14:15
楼主真是胆子大啊, 对PVE不熟就直接搞起来, 的亏PVE是个很耐折腾的环境, 不然真的要哭了

你大概可以这么做 ...

我好像找到了虚拟机的磁盘,不过还没找到虚拟机的配置文件,/mnt/pve_old/etc/pve/下面没有。

root@pvej:/mnt/pve_old/var/lib/vz/images# ls
100101102103
root@pvej:/mnt/pve_old/var/lib/vz/images# cd /mnt/pve_old/var/lib/vz/images/100
root@pvej:/mnt/pve_old/var/lib/vz/images/100# ls
vm-100-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/100# ls -l
total 325944
-rw-r----- 1 root root 4295884800 Aug 27 22:07 vm-100-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/100# cd /mnt/pve_old/var/lib/vz/images/101
root@pvej:/mnt/pve_old/var/lib/vz/images/101# ls
vm-101-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/101# ls -ll
total 2151184
-rw-r----- 1 root root 10739318784 Aug 27 22:07 vm-101-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/101# cd /mnt/pve_old/var/lib/vz/images/102
root@pvej:/mnt/pve_old/var/lib/vz/images/102# ls
vm-102-disk-0.raw
root@pvej:/mnt/pve_old/var/lib/vz/images/102# cd /mnt/pve_old/var/lib/vz/images/103
root@pvej:/mnt/pve_old/var/lib/vz/images/103# ls
vm-103-disk-0.raw
root@pvej:/mnt/pve_old/var/lib/vz/images/103# Remote closed!

星河 发表于 2023-8-28 19:56

本帖最后由 星河 于 2023-8-28 19:57 编辑

阿崔 发表于 2023-8-28 13:17
我之前软路由因为飞虫导致主板被烧,被迫在新机器上重装了PVE,基本步骤就是:
1.命令行把原来的conf分区挂 ...

我通过挂载应该已经找到了VM的磁盘了,但是我找不到VM的配置文件,例如100.conf这种,兄弟有办法吗?
root@pvej:/mnt/pve_old# ls -l
total 76
lrwxrwxrwx1 root root   7 May42022 bin -> usr/bin
drwxr-xr-x5 root root4096 Aug 27 19:25 boot
drwxr-xr-x4 root root4096 May42022 dev
drwxr-xr-x 88 root root4096 Aug 27 22:18 etc
drwxr-xr-x2 root root4096 Mar 192022 home
lrwxrwxrwx1 root root   7 May42022 lib -> usr/lib
lrwxrwxrwx1 root root   9 May42022 lib32 -> usr/lib32
lrwxrwxrwx1 root root   9 May42022 lib64 -> usr/lib64
lrwxrwxrwx1 root root    10 May42022 libx32 -> usr/libx32
drwx------2 root root 16384 Jul22022 lost+found
drwxr-xr-x2 root root4096 May42022 media
drwxr-xr-x3 root root4096 Aug 27 21:18 mnt
drwxr-xr-x2 root root4096 May42022 opt
drwxr-xr-x2 root root4096 Mar 192022 proc
drwx------6 root root4096 Aug 27 19:24 root
drwxr-xr-x5 root root4096 May42022 run
lrwxrwxrwx1 root root   8 May42022 sbin -> usr/sbin
drwxr-xr-x2 root root4096 May42022 srv
drwxr-xr-x2 root root4096 Mar 192022 sys
drwxrwxrwt7 root root4096 Aug 27 22:09 tmp
drwxr-xr-x 14 root root4096 May42022 usr
drwxr-xr-x 11 root root4096 May42022 var


root@pvej:/mnt/pve_old/var/lib/vz/images# ls
100101102103
root@pvej:/mnt/pve_old/var/lib/vz/images# cd /mnt/pve_old/var/lib/vz/images/100
root@pvej:/mnt/pve_old/var/lib/vz/images/100# ls
vm-100-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/100# ls -l
total 325944
-rw-r----- 1 root root 4295884800 Aug 27 22:07 vm-100-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/100# cd /mnt/pve_old/var/lib/vz/images/101
root@pvej:/mnt/pve_old/var/lib/vz/images/101# ls
vm-101-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/101# ls -ll
total 2151184
-rw-r----- 1 root root 10739318784 Aug 27 22:07 vm-101-disk-0.qcow2
root@pvej:/mnt/pve_old/var/lib/vz/images/101# cd /mnt/pve_old/var/lib/vz/images/102
root@pvej:/mnt/pve_old/var/lib/vz/images/102# ls
vm-102-disk-0.raw
root@pvej:/mnt/pve_old/var/lib/vz/images/102# cd /mnt/pve_old/var/lib/vz/images/103
root@pvej:/mnt/pve_old/var/lib/vz/images/103# ls
vm-103-disk-0.raw
root@pvej:/mnt/pve_old/var/lib/vz/images/103# Remote closed!

root@pvej:~# find /mnt/pve_old/ -name 100.conf
root@pvej:~# locate 100.conf
-bash: locate: command not found
root@pvej:~# find /mnt/pve_old -name 100.conf
root@pvej:~# find /mnt/pve_old -name 100
/mnt/pve_old/var/lib/rrdcached/db/pve2-vm/100
/mnt/pve_old/var/lib/vz/images/100
root@pvej:~# find /mnt/pve_old -name qemu-server
/mnt/pve_old/var/lib/qemu-server
/mnt/pve_old/usr/lib/qemu-server
/mnt/pve_old/usr/share/doc/qemu-server
/mnt/pve_old/usr/share/qemu-server

NetCobra 发表于 2023-8-28 20:36

正常运行的PVE,虚拟机的配置文件是在/etc/pve/qemu-server里面的

你可以试试看/mnt/pve_old/etc/pve/qemu-server目录里面有没有

星河 发表于 2023-8-28 21:28

NetCobra 发表于 2023-8-28 20:36
正常运行的PVE,虚拟机的配置文件是在/etc/pve/qemu-server里面的

你可以试试看/mnt/pve_old/etc/pve/qemu ...

root@pvej:~# cd /mnt/pve_old/etc/pve/
root@pvej:/mnt/pve_old/etc/pve# ls -l
total 0
root@pvej:/mnt/pve_old/etc/pve#

里面没文件呢

NetCobra 发表于 2023-8-28 22:18

星河 发表于 2023-8-28 14:28
里面没文件呢

eh……那就不知道了,你是不是修改过PVE的设置,把虚拟机放到别的地方了?

nsc117 发表于 2023-8-28 22:30

Linux小白为什么要去折腾呢。。。。看你这么举步维艰好难,8楼是可行的,不过对你来说够呛。

星河 发表于 2023-8-28 23:07

NetCobra 发表于 2023-8-28 22:18
eh……那就不知道了,你是不是修改过PVE的设置,把虚拟机放到别的地方了? ...

没有,我搜索了下,好像配置文件时存在/mnt/pve_old//var/lib/pve-cluster/config.db里面,但我把这个文件复制到当前PVE下面对应的目录以后,PVE整个崩了。。。

星河 发表于 2023-8-28 23:07

nsc117 发表于 2023-8-28 22:30
Linux小白为什么要去折腾呢。。。。看你这么举步维艰好难,8楼是可行的,不过对你来说够呛。 ...

我也很后悔。。。

flow 发表于 2023-8-29 09:52

星河 发表于 2023-8-28 23:07
没有,我搜索了下,好像配置文件时存在/mnt/pve_old//var/lib/pve-cluster/config.db里面,但我把这个文 ...

这个是你老的pve节点的所有配置信息, 又不是某个虚拟机的, 你就这么往新的pve节点里面塞, 吐你一脸太正常了

最后一招, 如果你在这个目录下面还看不到你的虚拟机配置文件的话, 我救不了你了

/mnt/pve_old/etc/pve/nodes/pve/qemu-server 这个是虚拟机的配置文件目录
/mnt/pve_old/etc/pve/nodes/pve/lxc 这个是容器的配置文件目录

最后的最后, 小白不要紧, 大家都是小白过来的, 不过你做每一步想清楚自己在干啥, 备份一定要做好!!!不要网上随便搜到一段命令就拿来直接跑, 折腾到最后神仙都不知道该咋办了

阿崔 发表于 2023-8-29 10:36

星河 发表于 2023-8-28 23:07
没有,我搜索了下,好像配置文件时存在/mnt/pve_old//var/lib/pve-cluster/config.db里面,但我把这个文 ...

我当时是按照这个直接复制过来就好了,https://pve.proxmox.com/wiki/Proxmox_Cluster_File_System_(pmxcfs)
...不过,我看你的问题是是升级完成之后无法启动?那就是说你之前的config.db可能已经损坏了... 那你大概只能sqlite找到配置文件内容,然后在新的系统下面重建这些了。

阿崔 发表于 2023-8-29 10:51

星河 发表于 2023-8-28 23:07
没有,我搜索了下,好像配置文件时存在/mnt/pve_old//var/lib/pve-cluster/config.db里面,但我把这个文 ...

试试装个和你当初升级前版本一致的pve,然后按我给的那个文档里的办法把db复制过去,看看能不能起来。升级成功但是不能启动真的是最恐怖的事情之一,但凡中间有失败,按PVE的升级流程都能回滚回去。不过说真的,用了这么多年PVE别说升级失败不能启动了,连升级失败都没碰上过。。。

星河 发表于 2023-8-29 19:13

flow 发表于 2023-8-29 09:52
这个是你老的pve节点的所有配置信息, 又不是某个虚拟机的, 你就这么往新的pve节点里面塞, 吐你一脸太正常 ...

这俩下面没有的,貌似只有正在运行的PVE才会在这个下面生成配置文件。
真正的配置都存在我上面说的数据库里。
我昨晚已经搞定了,我把之前崩了的PVE-OLD-XXXX改了VGNAME,然后就能启动老PVE了,然后进去备份了虚拟机。最后重新安装了PVE再恢复虚拟机。
页: [1] 2
查看完整版本: PVE如何找回丢失的VM?