先关掉虚拟机:virsh shutdown 虚拟机名字。然后删配置和磁盘:virsh undefine 虚拟机名字 --remove-all-storage。注意先virsh list --all确认名字别搞错,删了就找不回来啦!
如何在 KVM 中通过 virsh 命令删除虚拟机?
-
确认虚拟机状态:
virsh list --all检查目标虚拟机名称及状态(若运行需先关闭) -
关闭虚拟机:
virsh shutdown <虚拟机名称>若强制关闭:virsh destroy <虚拟机名称> -
删除虚拟机配置:
virsh undefine <虚拟机名称>若需同时删除存储:virsh undefine --domain <虚拟机名称> --remove-all-storage -
手动清理残留文件(如未自动删除): 根据原磁盘路径执行:
rm -f /var/lib/libvirt/images/<虚拟机名称>.qcow2
注意事项:
- 操作前务必确认虚拟机名称
- 永久性删除前建议快照备份
- 检查关联虚拟网络/存储池
更多回答
如何在 KVM 中通过 virsh 命令删除虚拟机?
- 关闭虚拟机:若虚拟机正在运行,先执行
virsh destroy <虚拟机名称>强制关闭,或virsh shutdown <虚拟机名称>正常关机。 - 删除虚拟机配置:执行
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
此命令将彻底删除虚拟机配置、磁盘文件及快照,避免残留数据占用空间。需谨慎操作,确保数据已备份!
在 KVM 中通过 virsh 命令删除虚拟机需遵循以下步骤:
-
确认虚拟机状态:
virsh list --all找到目标虚拟机的名称(如
vm_name)。 -
若虚拟机在运行,先关闭:
virsh destroy vm_name # 强制停止(类似断电)若需正常关机,使用
virsh shutdown vm_name(需虚拟机支持ACPI)。 -
删除虚拟机配置:
virsh undefine vm_name默认保留虚拟磁盘文件。若需同时删除关联存储,添加
--storage <磁盘路径>或--remove-all-storage参数。 -
手动清理磁盘文件(如未自动删除):
rm -f /path/to/vm_disk.qcow2
注意事项:
- 操作需 root 权限或通过
sudo执行。 undefine前建议备份虚拟机配置(virsh dumpxml vm_name > backup.xml)。- 若使用 LVM/网络存储,需单独处理存储资源。
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别