Ubuntu 22.04 之 KVM 安裝手札
?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 虛擬化引擎。你的反饋對我們至關重要。