描述
可以通过qemu-nbd工具映射qcow2文件到本地设备,然后mount到本地目录进行查看或者修改;
步骤:
1、安装相关软件kpartx、qemu-nbd
apt-get intall kpartx
2、加载内核模块 nbd
modprobe nbd max_part=8
查看nbd模块的加载:
lsmod |grep nbd
3、映射qcow2文件到本地设备
qemu-nbd -c /dev/nbd0 /home/test.qcow2
映射之前:
[root@host1 ~]# ll /dev/nbd
nbd0 nbd10 nbd12 nbd14 nbd16 nbd18 nbd2 nbd21 nbd23 nbd25 nbd27 nbd29 nbd30 nbd4 nbd6 nbd8
nbd1 nbd11 nbd13 nbd15 nbd17 nbd19 nbd20 nbd22 nbd24 nbd26 nbd28 nbd3 nbd31 nbd5 nbd7 nbd9
映射之后:
[root@host1 ~]# ll /dev/nbd
nbd0 nbd0p2 nbd1 nbd11 nbd13 nbd15 nbd17 nbd19 nbd20 nbd22 nbd24 nbd26 nbd28 nbd3 nbd31 nbd5 nbd7 nbd9
nbd0p1 nbd0p3 nbd10 nbd12 nbd14 nbd16 nbd18 nbd2 nbd21 nbd23 nbd25 nbd27 nbd29 nbd30 nbd4 nbd6 nbd8
可以看到多了nbd0p1、nbd0p2、nbd0p3三个设备,对应test.qcow2镜像文件在虚拟机中的三个分区;
4、挂载分区设备到本地目录
mount /dev/nbd0p3 /mnt/test
可以依次挂载三个分区,以找到自己想要的查看的目录;
笔者自己的test.img有三个分区,分别对应启动分区、swap分区和根分区;
5、卸载、解映射
umount /mnt/test
qemu-nbd -d /dev/nbd0
注意事项
如果使用qcow2启动了虚拟机,则该qcow2文件会随时发生变化,因为虚拟机在运行中,任何对虚拟机的修改都会反应到镜像文件中;因此如果修改了qcow2文件做备份或者release,请注意不要使用运行中的镜像文件。