将 kvm 虚拟机的虚拟磁盘移出根分区
libvirt 默认的存储池位于 /var/lib/libvirt/images
,如果是在自己的PC上装个虚拟机玩玩,通常根分区不会很大,磁盘空间马上就告急了。本文描述了一种将现存虚拟机磁盘文件移动到其它位置的方法。
1、首先关闭正在运行的虚拟机
[root@UA-HA ~]# virsh shutdown UAKVM2 [root@UA-HA ~]# virsh list --all Id Name State ---------------------------------------------------- - UAKVM2 shut off
2、列出所有存储池
[root@UA-HA ~]# virsh pool-list Name State Autostart ------------------------------------------- default active yes
3、查看 default 存储池的信息
[root@UA-HA ~]# virsh pool-info default Name: default UUID: 3599dd8a-edef-4c00-9ff5-6d880f1ecb8b State: running Persistent: yes Autostart: yes Capacity: 17.50 GiB Allocation: 7.67 GiB Available: 9.82 GiB
4、检查并确认default存储池的路径
[root@UA-HA ~]# virsh pool-dumpxml default |grep -i path <path>/var/lib/libvirt/images</path>
5、检查并确认存储池中的虚拟磁盘
[root@UA-HA ~]# virsh vol-list default |grep "/var/lib/libvirt/images" UAKVM2.qcow2 /var/lib/libvirt/images/UAKVM2.qcow2 [root@UA-HA ~]# [root@UA-HA ~]# virsh vol-list default Name Path ------------------------------------------------------------------------------ UAKVM2.qcow2 /var/lib/libvirt/images/UAKVM2.qcow2
6、停止存储池
[root@UA-HA ~]# virsh pool-destroy default Pool default destroyed
7、编辑default存储池的配置
[root@UA-HA ~]# virsh pool-edit default
将 <path>/var/lib/libvirt/images</path>
改为指定的路径,我的home位于独立的分区,剩余空间比较巨大,干脆就把它给移到 home 分区里去了
<path>/home/images</path>
退出编辑器后配置自动生效。
8、启动存储池
[root@UA-HA ~]# virsh pool-start default Pool default started
9、确认存储池的路径
[root@UA-HA ~]# virsh pool-dumpxml default |grep -i path <path>/home/images</path>
10、在虚拟机可以运行之前,需要先建立好相关的目录,并且把虚拟磁盘文件移动过去
[root@UA-HA ~]# mkdir /home/images [root@UA-HA ~]# mv /var/lib/libvirt/images/UAKVM2.qcow2 /home/images
11、编辑虚拟机配置
[root@UA-HA ~]# virsh edit UAKVM2
修改虚拟磁盘的定义,指向新的位置
<disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/home/images/UAKVM2.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'> </disk>
12、启动虚拟机,确认虚拟机运行正常
[root@UA-HA kvmpool]# virsh start UAKVM2 Domain UAKVM2 started
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?