QEMU搭建X86_64 + Ubuntu虛擬系統(tǒng)環(huán)境
本文記錄一下學(xué)習(xí)和使用QEMU虛擬工具的過程,初次嘗試,如有錯誤請各位大佬幫忙指正。
提示:不推薦在低版本的Ubuntu中操作,QEMU需要很多依賴所用到的版本比較高,低版本ubuntu系統(tǒng)無法一鍵安裝或者升級到對應(yīng)的高版本的依賴,需要手動下載安裝,期間可能會遇到各種問題,建議還是用20或以上的版本,避免很多麻煩。
當(dāng)前環(huán)境:
Workstation 16 Pro、Ubuntu20.04
一、qemu介紹
QEMU 是一個通用的開源機(jī)器仿真器和虛擬化器。
當(dāng)用作機(jī)器仿真器時,QEMU 可以在另一臺機(jī)器(例如您自己的 PC)上運(yùn)行為一臺機(jī)器(例如 ARM 板)制作的操作系統(tǒng)和程序。通過使用動態(tài)平移,它實(shí)現(xiàn)了非常好的性能。
當(dāng)用作虛擬器時,QEMU 通過直接在主機(jī) CPU 上執(zhí)行客戶機(jī)代碼來實(shí)現(xiàn)接近本機(jī)的性能。QEMU 在 Xen hypervisor 下執(zhí)行或使用 Linux 中的 KVM 內(nèi)核模塊時支持虛擬化。使用 KVM 時,QEMU 可以虛擬化 x86、服務(wù)器和嵌入式 PowerPC、64 位 POWER、S390、32 位和 64 位 ARM 以及 MIPS 客戶機(jī)。
QEMU是一個支持跨平臺虛擬化的虛擬機(jī),QEMU的優(yōu)勢是可以跨指令集,VMware和Virtualbox之類的工具通常只能在x86計算機(jī)上虛擬出一個x86計算機(jī),而QEMU支持在x86上虛擬出一個ARM計算機(jī)
二、查看環(huán)境
1.編譯工具
$ gcc -v # gcc版本不低于7.40
$ dpkg -l | grep glib # 查看glib
2.查看系統(tǒng)是否支持KVM
開啟處理器中的虛擬化 Intel VT-x/EPT或AMD-V/RVI(V)選項,若使用主機(jī),請在BIOS中設(shè)置;若使用虛擬機(jī),可以在虛擬機(jī)軟件中設(shè)置:
開啟后可以通過命令檢查是支持KVM:
$ grep -E '(vmx|svm)' /proc/cpuinfo # cpu虛擬化支持
$ lsmod|grep kvm # 查看Linux內(nèi)核是否已安裝KVM內(nèi)核模塊
3.修復(fù)主機(jī)不支持KVM嵌套虛擬化
配置完重啟虛擬機(jī)可能會遇到不支持嵌套虛擬化的提示如
可以參考這個教程:https://blog.csdn.net/Officialcareer/article/details/120800562
但是仍然無法解決我的這個錯誤。
虛擬機(jī)訪問物理資源時一定是需要通過VMM去建立一個虛擬的Ring0權(quán)限的,二內(nèi)核隔離開啟后, 默認(rèn)會啟動hybrid-v, 這個東西和虛擬機(jī)是沖突的,所以我就想會不會時Windows升級的過程中默認(rèn)開啟了內(nèi)核隔離功能,當(dāng)我打開Windows安全中心>設(shè)備安全性>內(nèi)核隔離,果然是打開的,然后我就關(guān)閉了內(nèi)核隔離,重啟了電腦:
成功進(jìn)入虛擬機(jī)!
三、qemu安裝
1.安裝依賴
apt-get update
# 下載依賴項
apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
apt-get install libaio-dev libbluetooth-dev libbrlapi-dev libbz2-dev
apt-get install libnfs-dev libiscsi-dev
# 實(shí)際編譯時還需要這個依賴
sudo apt-get install ninja-build
2.下載qemu源碼
2.1 從git克隆 QEMU / QEMU · GitLab
git clone https://gitlab.com/qemu-project/qemu.git
git下載qemu成功后會產(chǎn)生一個cd進(jìn)入到qemu目錄下,ls查看所有文件如下,其中configure命令是之后要用到的
2.2 官網(wǎng)下載
qemu-5.1.0.tar.xz
# 解壓Qemu源碼
$ xz -d qemu-5.1.0.tar.xz
$ tar xvf qemu-5.1.0.tar
3.編譯qemu
對編譯不太熟悉的同學(xué)可以看看這篇文章
3.1 創(chuàng)建一個工作空間來編譯:
以官網(wǎng)下載的源碼為例
$ cd qemu-5.1.0
# Prepare a native debug build.
$ mkdir -p bin/debug/native
$ cd bin/debug/native
# Return to the QEMU root directory.
$ cd ../../..
3.2 編譯解釋
configure為shell腳本,用于生成Makefile,其使用方法可使用如下命令查看:
./configure --help
–enable-kvm:
編譯KVM模塊,是qemu可利用KVM來訪問硬件提供的虛擬化服務(wù)
–enable-vnc:
啟動VNC(遠(yuǎn)程控制工具軟件)
拓展:VNC(https://blog.csdn.net/CH_sir/article/details/107784528)
–target-list:
目標(biāo)機(jī)器的構(gòu)架,默認(rèn)是將所有架構(gòu)都編譯,為了更快完成編譯,指定需要的架構(gòu)即可。
3.3 開始編譯
這里選擇x86_64-softmmu
$ cd bin/debug/native
$ ../../../configure --enable-kvm --enable-debug --enable-vnc --target-list="x86_64-softmmu"
$ make -j8
$ make install
# 通過指令查看編譯是否成功
$ qemu-system-x86_64 -M help
四、安裝linux操作系統(tǒng)
4.1 無圖形界面安裝
(1).操作系統(tǒng)鏡像下載
Ubuntu鏡像下載地址
這里下載的版本是ubuntu-20.04.5-live-server-amd64.iso
(2).創(chuàng)建虛擬硬盤
利用qemu-img指令可以創(chuàng)建1個空的虛擬硬盤,便于后面安裝的時候?qū)⑾到y(tǒng)安裝到虛擬硬盤上
進(jìn)入到工作空間/qemu/bin/debug/native目錄下
使用以下命令創(chuàng)建虛擬硬盤
qemu-img create ubuntu-20.04.5-amd64.img 10G
在當(dāng)前目錄下會生成ubuntu20.04.5-amd64.img這樣一個文件
(3).虛擬機(jī)安裝
將上面的鏡像文件ubuntu-20.04.5-live-server-amd64.iso 放 在/qemu/bin/debug/native該目錄下然后使用以下命令安裝:
qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm ubuntu-20.04.5-amd64.img -cdrom ubuntu-20.04.5-live-server-amd64.iso
-m 2048 —— 給客戶機(jī)分配2G內(nèi)存(也可以輸入“2G”);
-smp 2 —— 指定客戶機(jī)為對稱多處理器結(jié)構(gòu)并分配2個CPU;
–enable-kvm —— 允許kvm(速度快很多)
-cdrom * —— 分配客戶機(jī)的光驅(qū)
ps:輸入上述命令會直接進(jìn)入安裝界面,如果命令行卡在那里(沒有報錯),大概率是沒有正常安裝,檢查命令中的參數(shù)是否正確,**(如無特殊需求,建議只用這幾個基本參數(shù)就好)**然后重新執(zhí)行安裝命令。
正在安裝的截圖:
Ubuntu無圖形界面安裝步驟參考
(4).再次打開創(chuàng)建的虛擬機(jī)
啟動虛擬機(jī)輸入命令如下:(不再加載iso鏡像)
qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm ubuntu-20.10-desktop-amd64.img
第一次用此命令開啟虛擬機(jī)可能會有點(diǎn)慢,需要耐心等待
至此通過QEMU工具安裝無界面Ubuntu x86_64虛擬系統(tǒng)完成!接下來嘗試帶圖形UI的Ubuntu
4.2 制作一個有圖形界面的虛擬系統(tǒng)
(1).操作系統(tǒng)鏡像下載
下載Ubuntu桌面版ubuntu-20.04.4-desktop-amd64.iso
(2).創(chuàng)建虛擬硬盤
emu-img create -f qcow2 test-vm-2.qcow2 10G
(3).安裝ubuntu20.04圖形界面的系統(tǒng)
qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm test-vm-2.qcow2 -cdrom ubuntu-20.04.4-desktop-amd64.iso
(4).再次打開創(chuàng)建的虛擬機(jī)
重新啟動有點(diǎn)慢,需要耐心等待
qemu-system-x86_64 -m 2048 -smp 2 --enable-kvm test-vm-2.qcow2
五、可能遇到的問題
1.編譯qemu時提示缺少GCC-7.4
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7
gcc-7 --version
如果仍無法解決:
下載gcc-7.4的tar.gz安裝包文章來源:http://www.zghlxwxcb.cn/news/detail-446275.html
apt-get remove gcc # 刪除原有的gcc
tar -zxvf gcc-7.4.0.tar.gz # 解壓tar.gz
cd gcc-7.4.0
# 創(chuàng)建一個build目錄,在該目錄下編譯,避免污染源碼。
mkdir build
cd build
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
make install
gcc -v # 查看gcc版本
參考文章
https://blog.csdn.net/Officialcareer/article/details/120800562
https://blog.csdn.net/M82_A1/article/details/98946271
https://www.cnblogs.com/bakari/p/7858029.html文章來源地址http://www.zghlxwxcb.cn/news/detail-446275.html
到了這里,關(guān)于QEMU搭建X86_64 + Ubuntu虛擬系統(tǒng)環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!