云平台本地系统挂虚机载镜像qcow2操作

在一些使用场景中,直接把虚机镜像文件挂接在本地系统中,也是一个简便的办法。例如。

# guestmount -a ax73c.qcow2 -m /devmapper/vgsz00-lv_root --rw /mnt

如果事先不知道虚机内部分区的路径信息,则可以使用参数-i来让guestmount自己决定使用哪一个挂接点:

# guestmount -a ax73c.qcow2 -i --rw /mnt

接着使用# rpm -qa --dbpath /mnt/var/lib/rpm 查看该虚机安装了哪些rpm包

操作完成后,使用# umount /mnt退出。

mkdir -p /mnt_tmp

guestmount -a ax73c.qcow2 -i --rw /mnt_tmp

[root@test ~]# guestmount -a ax73c.qcow2 -i --rw /mnt_tmp

libguestfs: error: could not create appliance through libvirt.

[root@test ~]# guestmount -a ax73c.qcow2 -i --rw /mnt_tmp

libguestfs: error: could not create appliance through libvirt.

Try running qemu directly without libvirt using this environment variable:

export LIBGUESTFS_BACKEND=direct

Original error from libvirt: Cannot access storage file '/root/ax73c.qcow2' (as uid:107, gid:107): Permission denied [code=38 int1=13]

检查libvirtd 服务是否正常

systemctl status libvirtd

echo 'export LIBGUESTFS_BACKEND=direct' >> .bash_profile

source .bash_profile

[root@test ~]# guestmount -a ax73c.qcow2 -i --rw /mnt_tmp

[root@test ~]# df -lh

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vgsz00-lv_root 30G 4.8G 26G 16% /

devtmpfs 94G 0 94G 0% /dev

tmpfs 94G 16K 94G 1% /dev/shm

tmpfs 94G 27M 94G 1% /run

tmpfs 94G 0 94G 0% /sys/fs/cgroup

/dev/sda1 494M 230M 264M 47% /boot

/dev/mapper/vgsz00-lv_var 20G 730M 20G 4% /var

tmpfs 19G 0 19G 0% /run/user/0

/dev/fuse 30G 5.3G 25G 18% /mnt_tmp

挂载完成后就可以登录到对应目录进行相关配置

完成后再将目录卸载

[root@test ~]# umount /mnt_tmp