草庐IT

Ubuntu 22.04 之 KVM 安装手札

James Kiarie 2023-03-28 原文
​KVM 是 基于内核的虚拟机Kernel-based Virtual Machine 的首字母缩写,这是一项集成在内核中的开源虚拟化技术。它是一种类型一(裸机)的管理程序hypervisor,可以使内核能够作为一个裸机管理程序bare-metal hypervisor。

在 KVM 之上可以运行 Windows 和 Liunx 虚拟机。每个虚拟机都独立于其它虚拟机和底层操作系统(宿主机系统),并拥有自己的 CPU、内存、网络接口、存储设备等计算资源。

本文将介绍在 Ubuntu 22.04 LTS(Jammy Jellyfish)中如何安装 KVM 。在文末,我们也将演示如何在安装 KVM 完成之后创建一台虚拟机。

1、更新 Ubuntu 22.04

在一切开始前,打开终端并通过如下命令更新本地的软件包索引:

$ sudo apt update

2、检查虚拟化是否开启

在进一步行动之前,首先需要检查你的 CPU 是否支持 KVM 虚拟化,确保你系统中有 VT-x( vmx)英特尔处理器或 AMD-V(svm)处理器。

你可以通过运行如下命令,如果输出值大于 0,那么虚拟化被启用。否则,虚拟化被禁用,你需要启用它:

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

SVM-VMX-Flags-Cpuinfo-linux

根据上方命令输出,你可以推断出虚拟化功能已经启用,因为输出结果大于 0。如果虚拟化功能没有启用,请确保在系统的 BIOS 设置中启用虚拟化功能。

另外,你可以通过如下命令判断 KVM 虚拟化是否已经在运行:

$ kvm-ok
运行该命令之前,请确保你已经安装了 cpu-checker 软件包,否则将提示未找到该命令的报错。

直接就在下面,你会得到如何解决这个问题的指示,那就是安装 cpu-checker 包。

KVM-OK-Command-Not-Found-Ubuntu

随后,通过如下命令安装 cpu-checker 软件包:

$ sudo apt install -y cpu-checker
接着再运行 kvm-ok 命令,如果 KVM 已经启动,你将看到如下输出:

$ kvm-ok

KVM-OK-Command-Output

3、在 Ubuntu 22.04 上安装 KVM

随后,通过如下命令在 Ubuntu 22.04 中安装 KVM 以及其他相关虚拟化软件包:

$ sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils
以下为你解释刚刚安装了哪些软件包:

  • qemu-kvm – 一个提供硬件仿真的开源仿真器和虚拟化包
  • virt-manager – 一款通过 libvirt 守护进程,基于 QT 的图形界面的虚拟机管理工具
  • libvirt-daemon-system – 为运行 libvirt 进程提供必要配置文件的工具
  • virtinst – 一套为置备和修改虚拟机提供的命令行工具
  • libvirt-clients – 一组客户端的库和API,用于从命令行管理和控制虚拟机和管理程序
  • bridge-utils – 一套用于创建和管理桥接设备的工具

4、启用虚拟化守护进程(libvirtd)

在所有软件包安装完毕之后,通过如下命令启用并启动 libvirt 守护进程:

$ sudo systemctl enable --now libvirtd
$ sudo systemctl start libvirtd
你可以通过如下命令验证该虚拟化守护进程是否已经运行:

$ sudo systemctl status libvirtd

Libvirtd-Status-Ubuntu-Linux

另外,请将当前登录用户加入 kvm​ 和 libvirt 用户组,以便能够创建和管理虚拟机。

$ sudo usermod -aG kvm $USER
$ sudo usermod -aG libvirt $USER
$USER 环境变量引用的即为当前登录的用户名。你需要重新登录才能使得配置生效。

5、创建网桥(br0)

如果你打算从本机(Ubuntu 22.04)之外访问 KVM 虚拟机,你必须将虚拟机的网卡映射至网桥。virbr0 网桥是 KVM 安装完成后自动创建的,仅做测试用途。

你可以通过如下内容在 /etc/netplan​ 目录下创建文件 01-netcfg.yaml 来新建网桥:

$ sudo vi /etc/netplan/01-netcfg.yaml
network:
ethernets:
enp0s3:
dhcp4: false
dhcp6: false
# add configuration for bridge interface
bridges:
br0:
interfaces: [enp0s3]
dhcp4: false
addresses: [192.168.1.162/24]
macaddress: 08:00:27:4b:1d:45
routes:
- to: default
via: 192.168.1.1
metric: 100
nameservers:
addresses: [4.2.2.2]
parameters:
stp: false
dhcp6: false
version: 2
保存并退出文件。

注:上述文件的配置是我环境中的,请根据你实际环境替换 IP 地址、网口名称以及 MAC 地址。

你可以通过运行 netplan apply 命令应用上述变更。

$ sudo netplan apply
你可以通过如下 ip​ 命令,验证网桥 br0:

$ ip add show

Network-Bridge-br0-ubuntu-linux

6、启动 KVM 虚拟机管理器

当 KVM 安装完成后,你可以使用图形管理工具 virt-manager​ 创建虚拟机。你可以在 GNOME 搜索工具中搜索 Virtual Machine Manager 以启动。

点击搜索出来的图标即可:

Access-Virtual-Machine-Manager-Ubuntu-Linux

虚拟机管理器界面如下所示:

Virtual-Machine-Manager-Interface-Ubuntu-Linux

你可以点击 “文件File” 并选择 “新建虚拟机New Virtual Machine”。你也可以点击下图所示的图标:

New-Virtual-Machine-Icon-Virt-Manager

在弹出的虚拟机安装向导将看到如下四个选项:

  • 本地安装介质(ISO 镜像或 CDROM)
  • 网络安装(HTTP、HTTPS 和 FTP)
  • 导入现有磁盘镜像
  • 手动安装
本文使用已下载的 ISO 镜像,你可以选择自己的 ISO 镜像,选择第一个选项,并点击 “向前Forward”。

Local-Install-Media-ISO-Virt-Manager

下一步中,点击 “浏览Browse” 选择 ISO 镜像位置。

Browse-ISO-File-Virt-Manager-Ubuntu-Linux

在下一个窗口中点击 “浏览本地Browse local” 选取本机中 ISO 镜像。

Browse-Local-ISO-Virt-Manager

如下所示,我们选择了 Debian 11 ISO 镜像,随后点击 “打开Open”。

Choose-ISO-File-Virt-Manager

当 ISO 镜像选择后,点击 “向前Forward” 进入下一步。

Forward-after-browsing-iso-file-virt-manager

接着定义虚拟机所用内存大小以及 CPU 核心数,并点击 “向前Forward” 。

Virtual-Machine-RAM-CPU-Virt-Manager

下一步中,输入虚拟机磁盘空间,并点击 “向前Forward” 继续。

Storage-for-Virtual-Machine-KVM-Virt-Manager

如你需要将虚拟机网卡连接至网桥,点击 “选择网络Network selection” 并选择 br0 网桥。

Network-Selection-KVM-Virtual-Machine-Virt-Manager

最后,点击 “完成Finish” 按钮结束设置虚拟机。

Choose-Finish-to-OS-Installation-KVM-VM

稍等片刻,虚拟机的创建过程将开始。

Creating-Domain-Virtual-Machine-Virt-Manager

当创建结束时,虚拟机将开机并进入系统安装界面。如下是 Debian 11 的安装选项。在这里你可以根据需要进行系统安装。

Virtual-Machine-Console-Virt-Manager

小结

至此,本文向你演示了如何在 Ubuntu 22.04 上 安装 KVM 虚拟化引擎。你的反馈对我们至关重要。

有关Ubuntu 22.04 之 KVM 安装手札的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  7. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  8. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  9. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  10. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

随机推荐