QEMU初识
本文最后更新于:5 个月前
简介
QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。
安装
使用包管理安装
1 |
|
使用源码安装
1 |
|
安装相关库
1 |
|
配置
通过 ./configure --help
的查看编译时的选项, --target-list
选项为可选的模拟器,默认全选。--target-list
中的 xxx-soft
和 xxx-linux-user
分别指系统模拟器和应用程序模拟器, 生成的二进制文件名字为qemu-system-xxx
和 qemu-xxx
本文使用如下配置:
1 |
|
接着进行编译
1 |
|
直接make
会很慢,第一次编译时默认安装说有模拟器,编译了三四个小时。加上-j8
可以进行多线程编译
创建与使用
创建虚拟镜像
使用虚拟镜像来模拟虚拟机的硬盘,在启动虚拟机之前需要创建一个镜像文件
1 |
|
-f
选项用于指定镜像的格式,qcow2
格式是QEMU最常用的镜像格式,采用写时复制技术来优化性能。qmtest.img
是镜像文件的名字,10G
是镜像文件大小。
镜像文件创建完成后,可使用qemu-system-x86
来启动x86
架构的虚拟机:
1 |
|
qmtest.img中还未安装操作系统,所以会提示“No bootable device”的错误。
准备操作系统镜像
下载需要的Linux发行版镜像文件,https://launchpad.net/ubuntu/+cdmirrors, 找到想要下载的镜像,这里以交通大学的镜像为例
右击链接复制地址:https://ftp.sjtu.edu.cn/ubuntu-cd/20.10/ubuntu-20.10-live-server-amd64.iso
1 |
|
检查KVM是否可用
QEMU使用KVM来提升虚拟机性能,如果不启用KVM会导致性能损失。要使用KVM,首先要检查硬件是否有虚拟化支持:
1 |
|
如果有输出则表示硬件有虚拟化支持。其次要检查kvm模块是否已经加载:
1 |
|
如果kvm_intel/kvm_amd
、kvm
模块被显示出来,则kvm
模块已经加载。最后要确保qemu在编译的时候使能了KVM
,即在执行configure
脚本的时候加入了–enable-kvm
选项。
启动虚拟机安装操作系统
1 |
|
-m
指定虚拟机内存大小,默认单位是MB,-enable-kvm
使用KVM进行加速,-cdrom
添加fedora的安装镜像。可在弹出的窗口中操作虚拟机,安装操作系统,安装完成后重起虚拟机便会从硬盘(qmtest.img)启动。之后再启动虚拟机只需要执行:
1 |
|
退出qemu
在运行qemu后,关闭图形界面但是终端仍然是处于qemu环境中,可以直接关闭终端退出。如果不想关闭终端,可以另外打开一个终端kill进程
1 |
|
如果记不清全称,可以输入大概名称回车后会列出相关的进程
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!