在Debian GNU/Linux中使用kvm创建虚拟机
介绍
内核虚拟机(Kernel Virtual Machine,简称KVM)是针对x86(含64位)上的Linux和包含虚拟化扩展(Intel VT或AMD-V)的ARM硬件的完整虚拟化解决方案。它由一个可加载的内核模块kvm.ko组成,提供了核心虚拟化基础架构和处理器专用模块kvm-intel.ko或kvm-amd.ko。
在Debian中,Xen是KVM的替代品。
安装
需进行最小化安装可以只安装QEMU和KVM,但大多数用户还需要libvirt,以方便配置和管理虚拟机 (libvirt-daemon-system - libvirt, virt-manager - libvirt的图形界面)。通常,用户应安装:
1 | $ sudo apt install qemu-system libvirt-daemon-system |
在服务器上安装时,可以添加--no-install-recommends选项,以防止安装无关的图形软件包:
1 | $ sudo apt install --no-install-recommends qemu-system libvirt-clients libvirt-daemon-system |
libvirtd守护进程(在大多数体系结构上位于libvirt守护程序中,在其他体系结构上位于libvirt bin中)将在引导时自动启动,并加载相应的KVM模块KVM-amd或KVM-intel,这些模块随Linux内核Debian包一起提供。
如果要从命令行创建虚拟机,请安装virtinst。
1 | $ apt install virtinst |
为了以普通用户的身份管理虚拟机,需要将该用户添加到libvirt组:
1 | $ adduser <youruser> libvirt |
然后,您应该能够列出您的域,即由libvirt管理的虚拟机:
1 | $ virsh list --all |
特定用户和系统范围的虚拟机
默认情况下,如果virsh作为普通用户运行,它将使用qemu:///sessionURI字符串。这个URI允许virsh只管理属于这个特定用户的一组虚拟机。要管理虚拟机的系统集(即,属于root的虚拟机),virsh应该以root用户运行或添加 qemu:///systemURI :
1 | $ virsh --connect qemu:///system list --all |
为了避免在每个命令上使用--connect标志,可以在LIBVIRT_DEFAULT_URI环境变量中设置URI字符串:
1 | $ export LIBVIRT_DEFAULT_URI='qemu:///system' |
创建虚拟机
创建和管理虚拟机最简单方法是使用GUI应用程序。例如:
- aqemu-AQEMU
- virt-manager-Virtual Machine Manager
或者,您可以使用virtinst通过命令行创建虚拟机。下面是一个创建名为Buster-amd64的Buster虚拟机的示例:
1 | virt-install --virt-type kvm --name buster-amd64 \ |
由于虚拟机尚未建立网络连接,因此需要使用图形界面工具来完成安装。
使用--location选项可以直接在安装时通过url下载iso:
1 | virt-install --virt-type kvm --name buster-amd64 \ |
要使用控制台进行安装,可以告诉virt-install使用串行端口而不是图形界面:
1 | virt-install --virt-type kvm --name buster-amd64 \ |
虚拟机的管理
连接虚拟机
- 安装完成后可以使用
virsh console [name]连接虚拟机,使用此方式连接时,ctrl+]退出虚拟机。 - 使用
arp -a可以查看到虚拟机的ip,可以配置后使用ssh远程。
删除虚拟机
virsh destroy [name]删除虚拟机。
安装过程中如果提示
ERROR Host does not support domain type kvm for virtualization type 'hvm' with architecture 'x86_64'意味着需要开启虚拟化。
本来想在腾讯云服务器上装下试试的,结果腾讯云好像不给开虚拟化 /(ㄒoㄒ)/~~
想要了解更多,查看原文
在Debian GNU/Linux中使用kvm创建虚拟机
https://blog.wty.cool/2022/03/27/create-virtual-machines-using-kvm-in-debian/


