qemu基础知识、编译、安装以及虚拟机创建

0.qemu和kvm的区别

​ 首先KVM(Kernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机成为一个Hypervisor(虚拟机监控器)。

​ 在支持VMX(Virtual Machine Extension)功能的x86处理器中,Linux在原有的用户模式和内核模式中新增加了客户模式,并且客户模式也拥有自己的内核模式和用户模式,虚拟机就是运行在客户模式中。

​ KVM模块的职责就是打开并初始化VMX功能,提供相应的接口以支持虚拟机的运行。

​ QEMU(quick emulator)本身并不包含或依赖KVM模块,而是一套由Fabrice Bellard编写的模拟计算机的自由软件。

​ QEMU虚拟机是一个纯软件的实现,可以在没有KVM模块的情况下独立运行,但是性能比较低。

​ QEMU有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化以及I/O设备的虚拟化。

​ QEMU是一个用户空间的进程,需要通过特定的接口才能调用到KVM模块提供的功能。

​ 从QEMU角度来看,虚拟机运行期间,QEMU通过KVM模块提供的系统调用接口进行内核设置,由KVM模块负责将虚拟机置于处理器的特殊模式运行。

​ QEMU使用了KVM模块的虚拟化功能,为自己的虚拟机提供硬件虚拟化加速以提高虚拟机的性能。

​ KVM只模拟CPU和内存,因此一个客户机操作系统可以在宿主机上跑起来,但是你看不到它,无法和它沟通。于是,有人修改了QEMU代码,把他模拟CPU、内存的代码换成KVM,而网卡、显示器等留着,因此QEMU+KVM就成了一个完整的虚拟化平台。

​ KVM只是内核模块,用户并没法直接跟内核模块交互,需要借助用户空间的管理工具,而这个工具就是QEMU。

​ KVM和QEMU相辅相成,QEMU通过KVM达到了硬件虚拟化的速度,而KVM则通过QEMU来模拟设备。

​ 对于KVM来说,其匹配的用户空间工具并不仅仅只有QEMU,还有其他的,比如RedHat开发的libvirt、virsh、virt-manager等,QEMU并不是KVM的唯一选择。

​ 所以简单直接的理解就是:QEMU是个计算机模拟器,而KVM为计算机的模拟提供加速功能。

1.编译与安装

$cd qemu-2.0.0 			#如果使用的是git下载的源码,执行cd qemu
$./configure --enable-kvm --enable-debug --enable-vnc --enable-werror  --target-list="x86_64-softmmu"
$make -j8
$sudo make install
  • –enable-vnc:启用 VNC。
  • –enable-kvm:编译 KVM 模块,使 Qemu 可以利用 KVM 来访问硬件提供的虚拟化服务。
  • –enalbe-werror:编译时,将所有的警告当作错误处理。
  • –target-list:选择目标机器的架构。默认是将所有的架构都编译,但为了更快的完成编译,指定需要的架构即可

安装好之后,会生成如下应用程序:

  • ivshmem-client/server:这是一个 guest 和 host 共享内存的应用程序,遵循 C/S 的架构。
  • qemu-ga:这是一个不利用网络实现 guest 和 host 之间交互的应用程序(使用 virtio-serial),运行在 guest 中。
  • qemu-io:这是一个执行 Qemu I/O 操作的命令行工具。
  • qemu-system-x86_64:Qemu 的核心应用程序,虚拟机就由它创建的。
  • qemu-img:创建虚拟机镜像文件的工具,下面有例子说明。
  • qemu-nbd:磁盘挂载工具。

2.创建虚拟机

2.1使用qemu-img创建虚拟机镜像

​ 虚拟机镜像用来模拟虚拟机的硬盘,在启动虚拟机之前需要创建镜像文件。

qemu-img create -f qcow2 test-vm-1.qcow2 10G

-f 选项用于指定镜像的格式,qcow2 格式是 Qemu 最常用的镜像格式,采用来写时复制技术来优化性能。

test-vm-1.qcow2 是镜像文件的名字,10G是镜像文件大小。

2.2使用 qemu-system-x86 来启动 x86 架构的虚拟机

qemu-system-x86_64 test-vm-1.qcow2

因为 test-vm-1.qcow2 中并未给虚拟机安装操作系统,所以会提示 “No bootable device”,无可启动设备。

  • 启动 VM 安装操作系统镜像
qemu-system-x86_64 -m 2048 -enable-kvm test-vm-1.qcow2 -cdrom ./uniontechos-server-20-1020e-amd64-20210611-174435

-m 指定虚拟机内存大小,默认单位是 MB,

-enable-kvm 使用 KVM 进行加速,

-cdrom 添加 fedora 的安装镜像。

可在弹出的窗口中操作虚拟机,安装操作系统,安装完成后重起虚拟机便会从硬盘 ( test-vm-1.qcow2 ) 启动。

  • 之后再启动虚拟机只需要执行:
qemu-system-x86_64 -m 2048 -enable-kvm test-vm-1.qcow2

qemu-img 支持非常多种的文件格式,可以通过 qemu-img -h 查看

其中 raw 和 qcow2 是比较常用的两种,raw 是 qemu-img 命令默认的,qcow2 是 qemu 目前推荐的镜像格式,是功能最多的格式。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QEMU是一个开源的虚拟机监视器和模拟器,可以用于模拟多种硬件平台,包括ARM。以下是使用300字回答如何编译安装QEMU用于ARM模拟的步骤: 首先,需要下载QEMU的源代码。可以从官方网站或Git仓库获取最新版本的源代码。 接下来,需要确保系统上安装了必要的编译工具和依赖项。这些依赖项包括GCC编译器、make工具和C库等。可以使用包管理器来安装它们,例如在Debian或Ubuntu上可以使用apt-get命令。 然后,进入QEMU源代码目录,开始进行配置和编译。可以使用以下命令进行配置: $ ./configure --target-list=arm-softmmu --prefix=/usr/local 这将配置QEMU来模拟ARM处理器,并将安装目录设定为/usr/local。 完成配置后,可以使用以下命令开始编译安装QEMU: $ make $ sudo make install 这将对QEMU进行编译,并将其安装在指定的目录中。可能需要等待一段时间,具体时间取决于系统的性能和网络连接速度。 编译安装完成后,可以通过运行以下命令来验证QEMU是否正常工作: $ qemu-system-arm --version 如果成功安装,应该会显示QEMU的版本信息。 现在,您可以使用QEMU来模拟ARM处理器并运行ARM二进制文件。例如,可以使用以下命令来运行一个ARM可执行文件: $ qemu-system-arm -cpu cortex-a53 -machine virt -nographic -kernel path/to/kernel.img 以上是在300字中回答如何编译安装QEMU用于ARM模拟的简要步骤。实际过程可能因系统环境和配置而有所不同,建议查阅QEMU的官方文档以获取更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘仕豪

IT发展快就是因为有开源精神

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值