qemu是一种虚拟机软件,用于在一个操作系统(宿主操作系统)中模拟运行另一个操作系统(目标操作系统)。qemu运行在X86体系结构中模拟另一个体系结构(当然也包括X86),前者称为宿主体系结构,后者称为目标体系结构。与同类虚拟机软件(VmWare,Boch等)相比,qemu的一个突出的特点是,它可以模拟众多的体系结构,这为跨平台开发提供的很大的便利。qemu具有两种工作模式:
系统模式:模拟一个完整的硬件系统,包括CPU和各种外部设备。用户在这种模式下可以安装和运行一个操作系统,还可以在宿主操作系统中对目标操作系统做调试。
用户模式:在宿主体系结构中运行目标体系结构的进程。用户在这种模式下可以方便地做交叉编译和交叉调试。
本文主要介绍一个在LFS中安装并配置qemu的实例。
一、安装qemu软件包
首先下载qemu及其相关的支撑软件包。
: gzip压缩算法函数库。源代码:zlib-1.2.3.rar,官网一直连不上,但在LFS的LiveCD中可以找到。
(Simple DirectMedia Layer):用于对音频、键盘、鼠标、游戏杆、3D硬件、2D帧缓冲进行底层控制的函数库。qemu使用libsdl产生虚拟机窗口。源代码:。
:qemu虚拟机软件包。源代码:
首先编译并安装zlib和libsdl,然后再编译安装qemu。编译和安装方法是众所周知的“./configure;make;make install”三步曲。
二、安装kvm软件包
纯粹用qemu来运行虚拟机,其模拟速度比其它虚拟机软件(例如VmWare)较慢。早期的qemu采用kqemu软件包加速模拟。后来,随着KVM合并进入Linux内核源码树,qemu开始转向直接使用内核提供的KVM来提升其模拟速度。从发布的0.12.0版本开始,qemu停止了对kqemu的兼容。KVM(Kernel-based Virtual Machine)是Linux支持虚拟机技术的内核模块,KVM可以充分利用CPU提供的虚拟化扩展(virtualization extensions )特性,以提高虚拟机软件的模拟速度。例如,KVM可以利用Intel CPU提供的Intel VT的特性或AMD CPU提供的AMD-V特性。当然,对于不支持虚拟化扩展特性的CPU,KVM就没有任何实际效果,例如Intel的ATOM CPU。
kvm-kmod是KVM内核模块软件包。如果当前运行的内核已经打开KVM相关的配置选项(执行grep KVM /boot/config-...予以验证),就不需要安装kvm-kmod软件包,因为相关的内核模块已经集成到内核中。否则,需要安装kvm-kmod包,具体会安装三个内核模块:kvm.ko,kvm-intel.ko(用于支持Intel VT特性)和kvm-amd.ko(用于支持AMD-V特性)。源代码:。
三、运行虚拟机
考虑到主要使用LFS命令行界面,所以需要在没有图形界面的条件下启动qemu,这要求在qemu命令行上加上-vnc选项。此外,为了测试运行qemu,还要让虚拟机有一个虚拟硬盘,从qemu的官网上下载一个并解开即可(虚拟硬盘镜像文件:)。执行下面命令行启动虚拟机:
qemu linux-0.2.img -vnc :1
其中,linux-0.2.img是一个硬盘镜像文件。qemu也提供相关的工具用来制作硬盘镜像文件,然后启动虚拟机后再挂上光盘,就可以在该硬盘镜像文件中安装操作系统了。-vnc选项用于启动一个VNC服务程序(用于远程桌面控制),如果有VNC客户端通过网络连接,该服务程序会将qemu的虚拟机窗口界面的VGA输出重定向到客户端。例如,用Windows中的RealVNC客户端连接,然后就可以看到虚拟机中运行的Linux了。-vnc选项的参数格式是“主机:显示编号d”,表示允许指定主机(主机名或IP)通过TCP端口5900+d连接VNC服务程序。如果主机部分省略则表示允许任何主机连接。所以:-vnc :1表示允许任何主机通过端口5901端口连接VNC服务程序。
参考文献:
2.
如果觉得《qemu运行Linux虚拟机 安装qemu虚拟机》对你有帮助,请点赞、收藏,并留下你的观点哦!