pve如何挂载原系统的硬盘
原来的pve升级崩了之后,重装系统,但是我原来的虚拟机都在安装在nvme硬盘上,挂载nvme硬盘也不行,尝试挂载raw 的虚拟硬盘,也找不到路径,挂载提示错误,请教大家,是哪里出问题了。真心求教,能挂载整个硬盘最好。你可能没有学习过相关的东西所以无法正确使用相关命令,我来简单讲一下吧。
首先mount - mount a filesytem
也就是说mount命令是挂载文件系统,不是所谓挂载磁盘。
从你的lsblk结果来看,nvme已经被正确识别,且其上的LVM卷也正确识别了。
那么你需要做的是使用mount 挂载LVM上面的文件系统,这些文件系统建立在LVM的逻辑卷上,这些LVM卷建立在NVME的不同分区之上。
LINUX中内核使用device mapper为磁盘块设备创建 /dev/dm0, /dev/dm1 .... 这些设备文件, 然后使用id,uuid,partiionid, idskseq 等创建软连接(可以简单理解为快捷方式),所以你能在/dev目录中找到很多此类软连接连接到 /dev/dmX,
如 /dev/mapper, /dev/disk, /dev/pve 都是方便使用而创建的。
废话这么多,到底如何挂载文件系统呢?
首先需要确认LVM一正确加载
使用 pvs -a查看当前的设备,正确加载是应当能够看到类似这样的
PV VGFmtAttr PSize PFree
/dev/nvme0n1p2 --- 0 0
/dev/nvme0n1p3 pve lvm2 a--<118.00g 0
然后使用 pvdisplay 查看当前的LVM物理卷.
最重要的是使用 lvdisplay 查看当前的LVM逻辑卷.
--- Logical volume ---
LV Path /dev/pve/vm-102-disk-1
其中的LV path就是你要挂载的路径
准备好一切,你就可以挂载了,但是,请住手!
新安装proxmox,但之前的vm在另外的盘的情况请使用以下方法,而不是自行挂载和乱搞文件系统。
进入datacenter -> storage -> add lvm 这样在现有的系统中添加以前的LVM卷。
如果重装pve导致虚拟机配置都丢失了,就使用差不多或相同的配置新建虚拟机,然后添加磁盘。
重建完成后不急着开机,找到虚拟机ID, 例如101, 然后修改 /etc/pve/qemu-server/101.conf 这里以101为例。
将相关磁盘路径修改为刚在 datacenter中加入lvm的相关路径,这一步不了解的话很容易弄不对。多想想。
另外proxmox 9中虚拟机 ->hardware -> add 新增了 import hard disk, 如果前面datacenter那里弄对了,
使用导入硬盘,选择原有nvme中的VM磁盘,是最简单的。
最最重要的是,操作之前一定做好备份,无论交代多少次,总有小伙子犯错。 rad.io 发表于 2025-12-12 12:05
你可能没有学习过相关的东西所以无法正确使用相关命令,我来简单讲一下吧。
首先mount - mount a filesy ...
谢谢,但是没看明白,怎么才能挂载 太麻烦了,我之前搞坏了重装是直接默认VM全部丢失,但我有定期备份文件恢复就行了 闲痴 发表于 2025-12-12 15:04
太麻烦了,我之前搞坏了重装是直接默认VM全部丢失,但我有定期备份文件恢复就行了 ...
有备份,但是时间较早的,里面有写东西丢了,我就尝试把原来的虚拟硬盘直接挂载,恢复原来的系统! 原系统是跑在LVM上的,所以会有点麻烦。。。。也就是逻辑磁盘。。。
建议重建。 好吧,我现在以你需要从旧的VM中拷贝出来重要文件为需求出发。
那么我们要做的就是正确挂载就的VM的盘。proxmox LVM thin pool中的逻辑卷是raw格式,所以不要尝试直接挂载,无法正确的挂载。
这里我以113号VM为例,找到lvm thin pool中逻辑卷的路径
--- Logical volume ---
LV Path /dev/pve/vm-113-disk-0
LV Name vm-113-disk-0
VG Name pve
LV UUID txuueu-DJvJ-Y4IO-KYPF-X9SH-ukq2-8iaAP3
LV Write Access read/write
LV Creation host, time pve1, 2021-11-03 22:48:46 +0800
LV Pool name data
LV Status available
# open 0
LV Size 8.00 GiB
Mapped size 70.00%
Current LE 2048
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 1024
Block device 252:10
查看分区信息
root@pve1:~# fdisk -l /dev/pve/vm-113-disk-0
Disk /dev/pve/vm-113-disk-0: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disklabel type: **
Disk identifier: 4981DF38-8AB4-4FE7-8E85-1AD4310C1B75
Device Start EndSectors Size Type
/dev/pve/vm-113-disk-0p1 2048 4095 2048 1M BIOS boot
/dev/pve/vm-113-disk-0p2 409621012472097152 1G Linux filesystem
/dev/pve/vm-113-disk-0p3 2101248 16777182 14675935 7G Linux filesystem
注意关键信息 sector size 512, partition start position 比如 4096 2101248
在我的例子中,/dev/pve/vm-113-disk-0p2 是ext4 /boot分区,所以直接挂载
先计算 offset = 4095 x 512 = 2097152
mkdir -p /root/113
mount -o loop,offset=2097152 /dev/pve/vm-113-disk-0 /root/113
ls /root/113
就可以看到/boot的内容了。
先卸载 umount /root/113
同样计算下一个分区的offset = 2101248 x 512 = 1075838976
尝试挂载
root@pve1:~# mount -o loop,offset=1075838976 /dev/pve/vm-113-disk-0 /root/113
mount: /root/113: unknown filesystem type 'LVM2_member'.
这样不行的,这个分区是LVM member,那么就需要使用loopback设备了。
首先查看PVE主机中lo设备
root@pve1:~# ls /dev/lo* -dl
lrwxrwxrwx 1 root root 28 Dec 11 09:18 /dev/log -> /run/systemd/journal/dev-log
brw-rw---- 1 root disk7, 0 Dec 11 09:18 /dev/loop0
brw-rw---- 1 root disk7, 1 Dec 11 09:18 /dev/loop1
brw-rw---- 1 root disk7, 2 Dec 11 09:18 /dev/loop2
brw-rw---- 1 root disk7, 3 Dec 11 09:18 /dev/loop3
brw-rw---- 1 root disk7, 4 Dec 11 09:18 /dev/loop4
brw-rw---- 1 root disk7, 5 Dec 11 09:18 /dev/loop5
brw-rw---- 1 root disk7, 6 Dec 11 09:18 /dev/loop6
brw-rw---- 1 root disk7, 7 Dec 11 09:18 /dev/loop7
crw-rw---- 1 root disk 10, 237 Dec 11 09:18 /dev/loop-control
那么我们选择loop15以避免和现有设备冲突
losetup -o 1075838976 /dev/loop15 /dev/pve/vm-113-disk-0
这时候使用pvs -a 可以看到/dev/loop15上的LVM卷被内核发现了。
pvdisplay 可以看到physical volume
root@pve1:~# pvs -a
PV VG FmtAttr PSize PFree
/dev/loop15 ubuntu-vg lvm2 a-- <7.00g 0
/dev/sda2 --- 0 0
/dev/sda3 pve lvm2 a--<558.38g 15.99g
lvdisplay可以看到逻辑卷
root@pve1:~# lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID KrZi3v-mH1u-8BQF-WOxk-Ot1I-MrsB-zuff1J
LV Write Access read/write
LV Creation host, time ubuntu-server, 2021-09-29 12:47:47 +0800
LV Status available
# open 0
LV Size <7.00 GiB
Current LE 1791
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:11
轻松mount
root@pve1:~# mount /dev/ubuntu-vg/ubuntu-lv /root/113
root@pve1:~# ls 113
bin cdrometc lib lib64 lost+foundmntprocrun srv sysusr
bootdev homelib32libx32media optrootsbinswap.imgtmpvar
赶紧复制重要文件,别忘记清理工作。
umount /root/113
losetup -d /dev/loop15
页:
[1]