在Debian GNU/Linux中使用kvm创建虚拟机

在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应用程序。例如:

  1. aqemu-AQEMU
  2. virt-manager-Virtual Machine Manager

或者,您可以使用virtinst通过命令行创建虚拟机。下面是一个创建名为Buster-amd64的Buster虚拟机的示例:

1
2
3
4
virt-install --virt-type kvm --name buster-amd64 \
--cdrom ~/iso/Debian/debian-10.0.0-amd64-netinst.iso \
--os-variant debian10 \
--disk size=10 --memory 1024

由于虚拟机尚未建立网络连接,因此需要使用图形界面工具来完成安装。

使用--location选项可以直接在安装时通过url下载iso:

1
2
3
4
virt-install --virt-type kvm --name buster-amd64 \
--location http://deb.debian.org/debian/dists/buster/main/installer-amd64/ \
--os-variant debian10 \
--disk size=10 --memory 1024

要使用控制台进行安装,可以告诉virt-install使用串行端口而不是图形界面:

1
2
3
4
5
6
7
virt-install --virt-type kvm --name buster-amd64 \
--location ~/iso/Debian/debian-10.0.0-amd64-netinst.iso \
--os-variant debian10 \
--disk size=10 --memory 1024 \
--graphics none \
--console pty,target_type=serial \
--extra-args "console=ttyS0"

虚拟机的管理

连接虚拟机

  1. 安装完成后可以使用 virsh console [name] 连接虚拟机,使用此方式连接时,ctrl+]退出虚拟机。
  2. 使用 arp -a 可以查看到虚拟机的ip,可以配置后使用ssh远程。

删除虚拟机

virsh destroy [name]删除虚拟机。

安装过程中如果提示
ERROR Host does not support domain type kvm for virtualization type 'hvm' with architecture 'x86_64'意味着需要开启虚拟化。

本来想在腾讯云服务器上装下试试的,结果腾讯云好像不给开虚拟化 /(ㄒoㄒ)/~~


想要了解更多,查看原文

作者

孤独小狼

发布于

2022-03-27

更新于

2022-03-27

许可协议

评论