当创建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