Skip to content

虚拟化 ​

使用 KVM/QEMU 运行虚拟机,通过 libvirt 管理,使用 virt-install 安装系统。

以下以 x86_64 宿主机为例,需在 BIOS/UEFI 中启用硬件虚拟化;宿主机本身是虚拟机时,还需上层平台开启嵌套虚拟化。

安装环境 ​

bash
apt update
apt install -y qemu-system-x86 libvirt-daemon-system libvirt-clients virt-install
systemctl enable --now libvirtd

检查 KVM 设备及系统级 libvirt 连接:

bash
ls -l /dev/kvm
virsh --connect qemu:///system list --all

配置网络 ​

虚拟机使用 libvirt 的 default NAT 网络。先查看状态:

bash
virsh --connect qemu:///system net-list --all

若 default 已定义但未启动,执行:

bash
virsh --connect qemu:///system net-start default

设置网络随宿主机启动:

bash
virsh --connect qemu:///system net-autostart default

安装虚拟机 ​

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

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'

示例分配 2 个虚拟 CPU、2 GiB 内存和 20 GiB 磁盘,名称及资源按需调整。宿主机需能访问安装源;重复创建时使用不同名称和磁盘路径。

安装使用串口控制台,按 Ctrl + ] 退出。重新连接:

bash
virsh --connect qemu:///system console debian13

虚拟机管理 ​

bash
# 查看所有虚拟机
virsh --connect qemu:///system list --all

# 查看基本信息
virsh --connect qemu:///system dominfo debian13

# 查看 IP 地址
virsh --connect qemu:///system domifaddr debian13 --source lease

# 启动
virsh --connect qemu:///system start debian13

# 重启
virsh --connect qemu:///system reboot debian13

# 正常关机
virsh --connect qemu:///system shutdown debian13

# 强制断电,不会删除虚拟机
virsh --connect qemu:///system destroy debian13

# 进入串口控制台,通过 Ctrl + ] 退出
virsh --connect qemu:///system console debian13

# 启用开机自启
virsh --connect qemu:///system autostart debian13

# 禁用开机自启
virsh --connect qemu:///system autostart debian13 --disable

删除虚拟机 ​

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

bash
virsh --connect qemu:///system shutdown debian13
virsh --connect qemu:///system domstate debian13
virsh --connect qemu:///system domblklist debian13

等待 domstate 显示虚拟机已关闭后,再执行删除。只删除虚拟机定义并保留磁盘:

bash
virsh --connect qemu:///system undefine debian13

同时删除虚拟机磁盘

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

bash
virsh --connect qemu:///system undefine debian13 --remove-all-storage --nvram

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

卸载环境 ​

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

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

基于 MIT 许可发布