一、安装环境
操作平台:VMware Workstation 17 Pro
虚拟机操作系统:RockyLinux 8.9
虚拟化引擎:Intel VT-x 打开
二、安装依赖包
[root@localhost ~]# yum install -y gcc gcc-c++ make autoconf automake libtool zlib-devel libaio-devel pixman-devel glib2 glib2-devel python38 git
[root@localhost ~]# git clone https://kkgithub.com/skvadrik/re2c
[root@localhost ~]# cd re2c
[root@localhost re2c]# ./autogen.sh
[root@localhost re2c]# ./configure
[root@localhost re2c]# make
[root@localhost re2c]# make install
[root@localhost re2c]# cd
[root@localhost ~]#
[root@localhost ~]# clone https://kkgithub.com/ninja-build/ninja.git
[root@localhost ~]# cd ninja
[root@localhost ~]# ./configure.py --bootstrap
[root@localhost ~]# cp ninja /usr/bin
[root@localhost ~]# ninja --version
[root@localhost ~]# ninja --version
1.12.0.git
[root@localhost ~]#
三、安装QEMU
获取QEMU源码包,可以从QEMU官网上下载QEMU源码的tar包,以命令行下载5.0.0版本的QEMU为例:
[root@localhost ~]# wget https://download.qemu.org/qemu-5.0.0.tar.xz
[root@localhost ~]# tar xJf qemu-5.0.0.tar.xz
[root@localhost ~]# cd qemu-5.0.0/
[root@localhost qemu-5.0.0]# ./configure
[root@localhost qemu-5.0.0]# make && make install
====================================================
这个过程大约需要等待1小时,硬件性能越好编译安装越快
====================================================
[root@node1 qemu-8.2.0]# yum -y install python38
Last metadata expiration check: 0:28:20 ago on Sun 14 Jan 2024 09:27:35 AM CST.
Dependencies resolved.
==========================================================================================================================================================================================================================================================
Package Architecture Version Repository Size
==========================================================================================================================================================================================================================================================
Installing:
python38 x86_64 3.8.17-2.module+el8.9.0+1418+f0d66789 服务器托管网 appstream 80 k
Installing dependencies:
python38-libs 服务器托管网 x86_64 3.8.17-2.module+el8.9.0+1418+f0d66789 appstream 8.3 M
python38-pip-wheel noarch 19.3.1-7.module+el8.9.0+1418+f0d66789 appstream 1.0 M
python38-setuptools-wheel noarch 41.6.0-5.module+el8.9.0+1418+f0d66789 appstream 303 k
Installing weak dependencies:
python38-pip noarch 19.3.1-7.module+el8.9.0+1418+f0d66789 appstream 1.7 M
python38-setuptools noarch 41.6.0-5.module+el8.9.0+1418+f0d66789 appstream 666 k
Enabling module streams:
python38 3.8
Transaction Summary
==========================================================================================================================================================================================================================================================
Install 6 Packages
Total download size: 12 M
Installed size: 44 M
Downloading Packages:
(1/6): python38-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64.rpm 476 kB/s | 80 kB 00:00
(2/6): python38-pip-wheel-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch.rpm 1.3 MB/s | 1.0 MB 00:00
(3/6): python38-pip-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch.rpm 1.2 MB/s | 1.7 MB 00:01
(4/6): python38-setuptools-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch.rpm 1.2 MB/s | 666 kB 00:00
(5/6): python38-setuptools-wheel-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch.rpm 1.3 MB/s | 303 kB 00:00
(6/6): python38-libs-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64.rpm 2.1 MB/s | 8.3 MB 00:03
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 2.5 MB/s | 12 MB 00:04
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : python38-setuptools-wheel-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch 1/6
Installing : python38-pip-wheel-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch 2/6
Installing : python38-libs-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 3/6
Installing : python38-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 4/6
Running scriptlet: python38-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 4/6
Installing : python38-setuptools-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch 5/6
Running scriptlet: python38-setuptools-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch 5/6
Installing : python38-pip-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch 6/6
Running scriptlet: python38-pip-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch 6/6
Verifying : python38-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 1/6
Verifying : python38-libs-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 2/6
Verifying : python38-pip-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch 3/6
Verifying : python38-pip-wheel-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch 4/6
Verifying : python38-setuptools-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch 5/6
Verifying : python38-setuptools-wheel-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch 6/6
Installed:
python38-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 python38-libs-3.8.17-2.module+el8.9.0+1418+f0d66789.x86_64 python38-pip-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch
python38-pip-wheel-19.3.1-7.module+el8.9.0+1418+f0d66789.noarch python38-setuptools-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch python38-setuptools-wheel-41.6.0-5.module+el8.9.0+1418+f0d66789.noarch
Complete!
[root@node1 qemu-8.2.0]#
在RockyLinux 8.9版本的系统环境中,不建议编译安装5.0.0以上版本的QEMU,一些源码包编译过程对编译环境要求较为苛刻,需要安装很多依赖包,由于操作系统的差异以及依赖包的版本迭代,编译环境与源码包的开发环境有较大的不同,导致编译失败,过程中需要不断地手动纠错,如果你对该软件的开发环境不熟悉,出现报错时建议直接更换源码包版本继续尝试,这是最节省时间的做法,一点点经验之谈。博主尝试安装过5.2.0和8.2.0版本,均以失败告终。
编译安装完成以后,就可以看到系统可以使用很多qemu相关的命令了
[root@localhost ~]# qemu- # 输入qemu后按两次tab键
qemu-aarch64 qemu-i386 qemu-mips64el qemu-ppc64abi32 qemu-sparc32plus qemu-system-lm32 qemu-system-nios2 qemu-system-sh4eb qemu-trace-stap
qemu-aarch64_be qemu-img qemu-mipsel qemu-ppc64le qemu-sparc64 qemu-system-m68k qemu-system-or1k qemu-system-sparc qemu-x86_64
qemu-alpha qemu-io qemu-mipsn32 qemu-pr-helper qemu-storage-daemon qemu-system-microblaze qemu-system-ppc qemu-system-sparc64 qemu-xtensa
qemu-arm qemu-keymap qemu-mipsn32el qemu-riscv32 qemu-system-aarch64 qemu-system-microblazeel qemu-system-ppc64 qemu-system-tricore qemu-xtensaeb
qemu-armeb qemu-m68k qemu-nbd qemu-riscv64 qemu-system-alpha qemu-system-mips qemu-system-riscv32 qemu-system-unicore32
qemu-cris qemu-microblaze qemu-nios2 qemu-s390x qemu-system-arm qemu-system-mips64 qemu-system-riscv64 qemu-system-x86_64
qemu-edid qemu-microblazeel qemu-or1k qemu-sh4 qemu-system-cris qemu-system-mips64el qemu-system-rx qemu-system-xtensa
qemu-ga qemu-mips qemu-ppc qemu-sh4eb qemu-system-hppa qemu-system-mipsel qemu-system-s390x qemu-system-xtensaeb
qemu-hppa qemu-mips64 qemu-ppc64 qemu-sparc qemu-system-i386 qemu-system-moxie qemu-system-sh4 qemu-tilegx
[root@localhost ~]#
[root@localhost ~]# which qemu-img
/usr/local/bin/qemu-img
查看qemu版本
[root@localhost ~]# qemu-img -V
qemu-img version 5.0.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
四、创建及使用虚拟机
第一步:检查硬件是否支持虚拟化,如果有输出则表示硬件有虚拟化支持
[root@localhost ~]# egrep -o 'vmx|svm' /proc/cpuinfo
vmx
vmx
第二步:QEMU使用KVM来提升虚拟机性能,如果不启用KVM会导致性能损失。要使用KVM,首先要检查硬件是否有虚拟化支持,如果kvm_intel
/kvm_amd
、KVM模块被显示出来,则KVM模块已经加载。
[root@localhost ~]# lsmod | grep kvm
kvm_intel 344064 0
kvm 962560 1 kvm_intel
irqbypass 16384 1 kvm
第三步:使用qemu-img create
命令创建虚拟机镜像。虚拟机镜像用来模拟虚拟机的磁盘,在启动虚拟机之前需要创建镜像文件
[root@localhost ~]# qemu-img create -f qcow2 /opt/openEuler.qcow2 30G
Formatting '/opt/openEuler.qcow2', fmt=qcow2 size=32212254720 cluster_size=65536 lazy_refcounts=off refcount_bits=16
-f
选项用于指定镜像的格式,qcow2
格式是QEMU最常用的镜像格式。openEuler.qcow2
是镜像文件的名字,存放在/opt
目录下,30G
是镜像文件大小。
可以使用qemu-img info
命令查看虚拟磁盘信息,创建出来的虚拟磁盘不会立即分配所有空间
[root@localhost ~]# ls -lh /opt/openEuler.qcow2
-rw-r--r--. 1 root root 193K Jan 14 13:56 /opt/openEuler.qcow2
[root@localhost ~]#
[root@localhost ~]# qemu-img info /opt/openEuler.qcow2
image: /opt/openEuler.qcow2
file format: qcow2
virtual size: 30 GiB (32212254720 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
镜像文件创建完成后,可使用qemu-system-x86
来启动x86架构的虚拟机:
[root@localhost ~]# qemu-system-x86_64 /opt/openEuler.qcow2
VNC server running on ::1:5900
此时虚拟机已经启动了,开放了一个vnc端口“5900”,我们新建一个窗口,查看端口监听状态
[root@localhost ~]# ss -tulnp | grep 5900
tcp LISTEN 0 1 127.0.0.1:5900 0.0.0.0:* users:(("qemu-system-x86",pid=57236,fd=11))
tcp LISTEN 0 1 [::1]:5900 [::]:* users:(("qemu-system-x86",pid=57236,fd=9))
默认监听在本机环回地址上“127.0.0.1”,还需要安装一个vnc工具,来连接虚拟机
[root@localhost ~]# yum -y install tigervnc
安装完成以后,在桌面就会出现这样一个图标,鼠标点击它打开
输入IP:Port
,点击Connect
因为/opt/openEuler.qcow2
虚拟磁盘中并未给虚拟机安装操作系统,所以会提示“No bootable device”,无可启动设备。
第四步:准备操作系统镜像,以openEuler为例
[root@localhost ~]# wget -P /opt https://mirrors.ustc.edu.cn/openeuler/openEuler-20.03-LTS/ISO/x86_64/openEuler-20.03-LTS-x86_64-dvd.iso
[root@localhost ~]# ls -lh /opt/openEuler-20.03-LTS-x86_64-dvd.iso
-rw-r--r--. 1 root root 4.2G Mar 26 2020 /opt/openEuler-20.03-LTS-x86_64-dvd.iso
第五步:启动带有cdrom的虚拟机
[root@localhost ~]# qemu-system-x86_64 -m 2048 -enable-kvm /opt/openEuler.qcow2 -cdrom /opt/openEuler-20.03-LTS-x86_64-dvd.iso
VNC server running on ::1:5900
-m
指定虚拟机内存大小,默认单位是MB, -enable-kvm
使用KVM进行加速,-cdrom
添加openEuler的安装镜像。可使用vnc工具连接虚拟机进入控制台,安装操作系统,安装完成后重起虚拟机便会从硬盘(/opt/openEuler.qcow2
)启动。
系统安装中…
安装完成后点击“Reboot
”重启
虚拟机自动从虚拟磁盘启动
进入系统后,查看ip
地址,ping
外网试试
在虚拟机vnc控制台中,执行关机命令
# shutdown -h
vnc控制台自动退出,宿主机命令行恢复等待输入状态
之后再启动这台虚拟机只需要执行:
# qemu-system-x86_64 -m 2048 -enable-kvm /opt/openEuler.qcow2
五、安装图形化界面管理虚机
命令行启动虚拟机比较繁琐,适合开发者,但对于普通用户来说,采用图形界面管理虚拟机则更为方便。采用图形界面管理QEMU虚拟机需要安装virt-manager
,RHEL 系列的发行版只需要执行命令:
[root@localhost ~]# yum -y install virt-manager
安装完成后,在桌面应用程序中会出现这样一个图标,这个就是virt-manager
:
鼠标单击它打开,通过这个图形化工具,也可以用来管理QEMU/KVM虚拟机,但是通过qemu-system-x86_64
命令手动创建的虚拟机默认是看不到的
或者通过命令行输入“virt-manager
”回车,也可以打开它
我们可以通过它来新建一个虚拟机,这个就不展开操作了
参阅
QEMU 1: 使用QEMU创建虚拟机 – 码农教程
ninja简介及安装_ninja安装-CSDN博客
CentOS安装QEMU详细教程 – 小四LINUX
CentOS/Redflag 7.3安装qemu 5.0记录 – wswang – 博客园
qemu-system-x86_64方式创建KVM虚拟机-CSDN博客
qemu-img命令详解-CSDN博客
qemu-img详解_笔记大全_设计学院
QEMU – Arch Linux 中文维基
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net