Skip to content

Virsh

virsh 是 libvirt 的命令行管理工具,用于管理 KVM/QEMU 虚拟机。以下命令默认由 root 用户执行,并管理系统级 qemu:///system 虚拟机。

Virsh 安装与卸载

安装

bash
apt update
apt install -y qemu-system-x86 libvirt-daemon-system libvirt-clients virt-install
systemctl enable --now libvirtd
virsh --connect qemu:///system list --all

卸载

bash
apt purge -y qemu-system-x86 libvirt-daemon-system libvirt-clients virt-install
apt autoremove --purge -y

卸载软件包不会自动删除已有的虚拟机磁盘。

虚拟机实例安装与卸载

安装

使用 Debian 13 网络安装源创建虚拟机:

bash
virt-install \
  --connect qemu:///system \
  --name debian13 \
  --virt-type kvm \
  --memory 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/debian13.qcow2,size=20,format=qcow2 \
  --network network=default,model=virtio \
  --location https://deb.debian.org/debian/dists/trixie/main/installer-amd64/ \
  --os-variant debian13 \
  --graphics none \
  --console pty,target_type=serial \
  --extra-args 'console=ttyS0'

虚拟机名称、CPU、内存和磁盘大小可按需调整。安装过程使用串口控制台,按 Ctrl + ] 退出。

卸载

关闭虚拟机,确认状态和磁盘路径:

bash
virsh shutdown debian13
virsh domstate debian13
virsh domblklist debian13

只删除虚拟机定义并保留磁盘:

bash
virsh undefine debian13

同时删除虚拟机磁盘

以下命令会删除虚拟机定义、NVRAM 和由 libvirt 管理的所有存储卷,操作不可恢复:

bash
virsh undefine debian13 --remove-all-storage --nvram

自定义路径或不受 libvirt 存储池管理的磁盘可能不会被删除,需要根据 domblklist 的结果单独确认。

虚拟机管理

bash
# 查看所有虚拟机
virsh list --all

# 查看基本信息
virsh dominfo debian13

# 查看 IP 地址
virsh domifaddr debian13 --source lease

# 启动
virsh start debian13

# 重启
virsh reboot debian13

# 正常关机
virsh shutdown debian13

# 强制断电,不会删除虚拟机
virsh destroy debian13

# 进入串口控制台,通过 Ctrl + ] 退出
virsh console debian13

# 启用开机自启
virsh autostart debian13

# 禁用开机自启
virsh autostart debian13 --disable

参考

基于 MIT 许可发布