原文 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
授权用户
安装完成后默认, 只有 libvirt 和 kvm 用户组的用户可以运行虚拟机, 可以使用以下命令把指定用户添加到 libvirt 和 kvm 用户组:
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
参数解释:
选项 | 描述 |
---|---|
--name | The name you give to the VM |
--description | A short description of the VM |
--ram | The amount of RAM you wish to allocate to the VM |
--vcpus | The number of virtual CPUs you wish to allocate to the VM |
--disk | The location of the VM on your disk (if you specify a qcow2 disk file that does not exist, it will be automatically created) |
--cdrom | The location of the ISO file you downloaded |
--graphics | Specifies 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 的虚拟机