如何在 KVM 中通过 virsh 命令删除虚拟机?

问题浏览数Icon
33
问题创建时间Icon
2025-05-24 21:21:00
回答 | 共 3 个
作者头像
sunshine001

如何在 KVM 中通过 virsh 命令删除虚拟机?

  1. 关闭虚拟机:若虚拟机正在运行,先执行 virsh destroy <虚拟机名称> 强制关闭,或 virsh shutdown <虚拟机名称> 正常关机。
  2. 删除虚拟机配置:执行 virsh undefine <虚拟机名称> 删除虚拟机定义文件。若需同时删除关联的磁盘文件,添加 --remove-all-storage 参数。

延伸知识点:virsh undefine 的存储管理选项

virsh undefine 默认仅删除虚拟机配置文件(位于 /etc/libvirt/qemu/),不会清理磁盘文件。通过以下参数可管理存储:

  • --remove-all-storage:删除配置文件中定义的所有关联磁盘文件。
  • --storage <卷名称>:仅删除指定存储卷。
  • --delete-snapshots:同时删除与虚拟机关联的快照元数据。

示例

virsh undefine myvm --remove-all-storage --delete-snapshots

此命令将彻底删除虚拟机配置、磁盘文件及快照,避免残留数据占用空间。需谨慎操作,确保数据已备份!

作者头像
icebai99

先关掉虚拟机:virsh shutdown 虚拟机名字。然后删配置和磁盘:virsh undefine 虚拟机名字 --remove-all-storage。注意先virsh list --all确认名字别搞错,删了就找不回来啦!

作者头像
liulixing351
  1. 确认虚拟机状态virsh list --all 检查目标虚拟机名称及状态(若运行需先关闭)

  2. 关闭虚拟机virsh shutdown <虚拟机名称> 若强制关闭: virsh destroy <虚拟机名称>

  3. 删除虚拟机配置virsh undefine <虚拟机名称> 若需同时删除存储: virsh undefine --domain <虚拟机名称> --remove-all-storage

  4. 手动清理残留文件(如未自动删除): 根据原磁盘路径执行: rm -f /var/lib/libvirt/images/<虚拟机名称>.qcow2

注意事项

  • 操作前务必确认虚拟机名称
  • 永久性删除前建议快照备份
  • 检查关联虚拟网络/存储池