Linux KVM 虚拟机配置教程
坑边闲话:KVM (Kernel-based Virtual Machine) 是一个基于 Linux 内核的开源虚拟化技术,它在 2006年 由 Avi Kivity 和他的团队开发,并于 2007年 合并到 Linux 内核中,成为主流虚拟化解决方案之一。KVM 使用较为方便,生态非常良好,本文介绍如何在 Linux 上配置并使用 KVM 虚拟机,同时会介绍 Intel VT-D、AMD-V、IOMMU 等硬件功能。
1. 初始化 Linux 系统·
在开始之前,读者需要有一个支持裸机安装的 Linux 系统,本文以 Debian 12 为例。强烈建议使用最小化安装程序,因为有些新手可能非常依赖图形化界面配置虚拟机,导致迟迟无法深入理解技术细节,学到最后发现只是学了一个类似 VMware Workstation Pro 的软件。GUI 是用户友好型发明,但是对于学习技术、了解细节并不友好。
1.1 调整 Console 界面字体大小·
最小化安装的 Linux 没有桌面环境,只有一个 console tty,因此建议执行以下命令,将界面字体设置为 Termius
,并按照自己的喜好和视力设置一个合适的字体大小。
1 | sudo dpkg-reconfigure console-setup |
2560x1600 分辨率的 16 英寸显示器,建议选择 Termius 最大号字体。
1.2 确定 CPU 是否支持硬件虚拟化·
1 | lscpu | grep Virtualization |
1.3 安装 KVM·
如果根据 debian12-init 这篇文章进行了安装,则无需安装下列任何软件,因为安装 cocipit-machines
时,已经把与 KVM 虚拟机相关的组件都安装好了。否则,请根据下列内容执行。
1 | sudo apt install bridge-utils |
如果要使用 Linux 图形化桌面,可以再安装一组图形化工具以方便日常查看,实现类似 VMware Workstation 的效果。命令如下:
1 | sudo apt install virt-manager virt-viewer |
2. 启动 KVM 并创建虚拟机·
首先启动 libvirtd
守护进程:
1 | sudo systemctl enable --now libvirtd |
可以通过以下命令检查 KVM 是否已经安装并正常工作:
1 | sudo virsh list --all |
virsh
是一个强大的命令行工具,用于管理虚拟机。你可以通过它来创建、启动、停止、查看虚拟机等。
启动虚拟机:
1 | sudo virsh start <vm_name> |
停止虚拟机
1 | sudo virsh shutdown <vm_name> |
创建虚拟机
1 | sudo virt-install --name <vm_name> --ram <size> --vcpus <num> --disk <path> --cdrom <iso_path> --network network=default --graphics vnc |
查看虚拟机的状态
1 | sudo virsh dominfo <vm_name> |
virt-install
:用于命令行安装和创建虚拟机的工具,可以通过指定多个参数来创建虚拟机,例如 CPU、内存、磁盘和 ISO 镜像等。
3. 创建虚拟交换机·
1 | sudo nmcli connection modify br0 ipv4.method manual ipv4.addresses 10.4.1.21/16 ipv4.gateway 10.4.1.10 |
4. 使用 XML 模板定义虚拟机配置·
1 | <disk type='block' device='disk'> |
由于 Ryzen 7840HS 有 Linux 硬件兼容性问题,因此后续的实验暂时搁置。