PVE虚拟机硬盘的raw和qcow2格式的KVM镜像文件如何挂载
2020-07-04 13:57:30    11    0    0
emengweb

当创建kvm虚拟机后忘记密码、某些文件丢失或损坏无法继续使用虚拟机,宿主机挂载镜像来解决这样的难题。

1 raw格式

方法一

对于未分区镜像文件直接使用loop:

第一步:

file image.img 查看什么格式

第二步:
mount -o loop p_w_picpath.img /mnt/p_w_picpath

lxc容器在这一步,已经可以直接挂载文件到指定位置了

已分区的镜像文件:
如果已知分区的起始位置
mount -o loop,offset=32256 p_w_picpath.img /mnt/p_w_picpath
方法二:

使用losetup + kpartx
losetup /dev/loop0 p_w_picpath.img
kpartx -a /dev/loop0
mount /dev/mapper/loop0p1 /mnt/p_w_picpath
kpartx命令的作用,是让Linux内核读取一个设备上的分区表,然后生成代表相应分区的设备。
kpartx -l p_w_picpathfile 可以查看一个映像文件中的分区,使用 kpartx -a p_w_picpathfile 命令后,就可以通过 /dev/mapper/loop0pX (其中X是 分区号)来访问映像。

2 qcow2格式
对于qcow2格式需要使用qemu-nbd这个工具,如果没有请用yum安装.
modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 p_w_picpath.img
mount /dev/nbd0p1 /mnt/p_w_picpath

3 如果是LVM格式的镜像:
vgscan
vgchange -ay
mount /dev/VolGroupName/LogVolName /mnt/p_w_picpath

4 最后使用结束需释放资源:
umount /mnt/p_w_picpath
vgchange -an VolGroupName
killall qemu-nbd
kpartx -d /dev/loop0
losetup -d /dev/loop0

 

上一篇: nohup命令提示无法执行的解决方法 nohup: command not found

下一篇: 最快的 google drive 拷贝工具 - 支持TG Bot机器人部署

11 人读过
comments powered by Disqus
文档导航