
libvirt 默认的存储池位于/var/lib/libvirt/images如果是在自己的PC上装个虚拟机玩玩通常根分区不会很大磁盘空间马上就告急了。本文描述了一种将现存虚拟机磁盘文件移动到其它位置的方法。1、首先关闭正在运行的虚拟机[rootUA-HA ~]# virsh shutdown UAKVM2[rootUA-HA ~]# virsh list --allId Name State----------------------------------------------------- UAKVM2 shut off2、列出所有存储池[rootUA-HA ~]# virsh pool-listName State Autostart-------------------------------------------default active yes3、查看 default 存储池的信息[rootUA-HA ~]# virsh pool-info defaultName: defaultUUID: 3599dd8a-edef-4c00-9ff5-6d880f1ecb8bState: runningPersistent: yesAutostart: yesCapacity: 17.50 GiBAllocation: 7.67 GiBAvailable: 9.82 GiB4、检查并确认default存储池的路径[rootUA-HA ~]# virsh pool-dumpxml default |grep -i path/var/lib/libvirt/images5、检查并确认存储池中的虚拟磁盘[rootUA-HA ~]# virsh vol-list default |grep /var/lib/libvirt/imagesUAKVM2.qcow2 /var/lib/libvirt/images/UAKVM2.qcow2[rootUA-HA ~]#[rootUA-HA ~]# virsh vol-list defaultName Path------------------------------------------------------------------------------UAKVM2.qcow2 /var/lib/libvirt/images/UAKVM2.qcow26、停止存储池[rootUA-HA ~]# virsh pool-destroy defaultPool default destroyed7、编辑default存储池的配置[rootUA-HA ~]# virsh pool-edit default将path/var/lib/libvirt/images/path改为指定的路径我的home位于独立的分区剩余空间比较巨大干脆就把它给移到 home 分区里去了/home/images退出编辑器后配置自动生效。8、启动存储池[rootUA-HA ~]# virsh pool-start defaultPool default started9、确认存储池的路径[rootUA-HA ~]# virsh pool-dumpxml default |grep -i path/home/images10、在虚拟机可以运行之前需要先建立好相关的目录并且把虚拟磁盘文件移动过去[rootUA-HA ~]# mkdir /home/images[rootUA-HA ~]# mv /var/lib/libvirt/images/UAKVM2.qcow2 /home/images11、编辑虚拟机配置[rootUA-HA ~]# virsh edit UAKVM2修改虚拟磁盘的定义指向新的位置12、启动虚拟机确认虚拟机运行正常[rootUA-HA kvmpool]# virsh start UAKVM2Domain UAKVM2 started