Skip to main content

Ubuntu 20.04 安装 KVM

· 4 min read
Alan

原文 How to Install KVM on Ubuntu 20.04

检查是否支持

如果以下命令返回值大于0,表示当前系统支持虚拟化:

egrep -c '(vmx|svm)' /proc/cpuinfo

检查是否支持KVM加速:

sudo kvm-ok

如果kvm-ok返回错误, 尝试安装 cpu-checker 解决:

sudo apt install cpu-checker

上述检测完成后, 重新打开终端, 开始准备安装KVM。

安装KVM

安装KVM包

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

授权用户

安装完成后默认, 只有 libvirtkvm 用户组的用户可以运行虚拟机, 可以使用以下命令把指定用户添加到 libvirtkvm 用户组:

sudo adduser "username" libvirt
sudo adduser "username" kvm

如果想从用户组删除用户, 把命令adduser替换成deluser即可.

验证安装情况

使用virsh命令验证安装成功:

virsh list --all

或者使用 systemctl 命令检查服务状态:

sudo systemctl status libvirtd

如果虚拟化私服没有运行, 使用以下命令启动虚拟化服务:

sudo systemctl enable --now libvirtd

创建虚拟机

GUI

使用GUI用户界面管理创建管理虚拟机:

sudo apt install -y virt-manager

Ubuntu系统执行以上命令, 安装完 virt-manager 之后,就可以使用该工具通过可视化界面创建虚拟机了。

可以在另外一台Ubuntu工作机器上安装 virt-manager 工具, 然后远程连接(SSH)到安装虚拟机服务的机器上, 以远程方式管理虚拟机.

virt-manager是一个开源项目, 其他Linux发行版安装参考:

yum install virt-manager (Fedora)
apt-get install virt-manager (Debian)
emerge virt-manager (Gentoo)
pkg_add virt-manager (OpenBSD)

CLI

使用命令行创建虚拟机

sudo virt-install --name=Fedora33 \
--description='Fedora 33' \
--ram=2048
--vcpus=2
--disk path=/data/vm/fedora-33-ws.qcow2,size=15 \
--cdrom /data/vm/fedora-33.iso \
--graphics vn

参数解释:

选项描述
--nameThe name you give to the VM
--descriptionA short description of the VM
--ramThe amount of RAM you wish to allocate to the VM
--vcpusThe number of virtual CPUs you wish to allocate to the VM
--diskThe location of the VM on your disk (if you specify a qcow2 disk file that does not exist, it will be automatically created)
--cdromThe location of the ISO file you downloaded
--graphicsSpecifies the display type

其他命令

显示虚拟机

virsh list 命令格式:

domains 指的是虚拟机

  NAME
list - list domains

SYNOPSIS
list [--inactive] [--all] [--transient] [--persistent] [--with-snapshot] [--without-snapshot] [--with-checkpoint] [--without-checkpoint] [--state-running] [--state-paused] [--state-shutoff] [--state-other] [--autostart] [--no-autostart] [--with-managed-save] [--without-managed-save] [--uuid] [--name] [--table] [--managed-save] [--title]

DESCRIPTION
Returns list of domains.

OPTIONS
--inactive list inactive domains
--all list inactive & active domains
--transient list transient domains
--persistent list persistent domains
--with-snapshot list domains with existing snapshot
--without-snapshot list domains without a snapshot
--with-checkpoint list domains with existing checkpoint
--without-checkpoint list domains without a checkpoint
--state-running list domains in running state
--state-paused list domains in paused state
--state-shutoff list domains in shutoff state
--state-other list domains in other states
--autostart list domains with autostart enabled
--no-autostart list domains with autostart disabled
--with-managed-save list domains with managed save state
--without-managed-save list domains without managed save
--uuid list uuid's only
--name list domain names only
--table list table (default)
--managed-save mark inactive domains with managed save state
--title show domain title

常用命令:

virsh list # 显示运行的虚拟机
virsh list --all # 显示所有虚拟机

启动/关闭虚拟机

virsh start VirtualMachineName # 启动名为 VirtualMachineName 的虚拟机
virsh shutdown VirtualMachineName # 关闭名为 VirtualMachineName 的虚拟机