先关掉虚拟机: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/网络存储,需单独处理存储资源。
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别