在 Linux 上运行 Windows
——红旗服务器系统虚拟化技术(Qemu篇)
本文将对 Qemu 虚拟机软件进行从技术角度的详细介绍,引导刚刚上手的欧洲天体主义运动 Linux 用户在 Linux 之上,通过 Qemu 架设基于 Windows 的虚拟服务器。
Qemu 的官方主页在:fabrice.bellard.free.fr/qemu/
开发者邮件列表位于: /mailman/listinfo/qemu-devel
Qemu 的几个主要特性如以下:
●广泛的平台支持:
红旗目前在 Red Flag DC Server 5.0 中为 x86 以及 x86_64 两个平台的 Qemu 版本,但是依
Qemu 的官方主页在:fabrice.bellard.free.fr/qemu/
开发者邮件列表位于: /mailman/listinfo/qemu-devel
Qemu 的几个主要特性如以下:
●广泛的平台支持:
红旗目前在 Red Flag DC Server 5.0 中为 x86 以及 x86_64 两个平台的 Qemu 版本,但是依
然可以在 x86 或者 x86_64 上,通过 Qemu 运行原本在 PPC/Sparc/ARM 上运行的操作系统。
●两种运行模式支持:
完整硬件虚拟模式:这个模式与常规的虚拟机类似,在这个模式中,Qemu 完全模拟了计算机的硬件。
用户虚拟模式:在用户虚拟模式中,用户可以在一种平台的 Linux 下运行另一种平台下的可执行文件。
●虚拟过程完全在用户空间中运行,通过 qvm86/kqemu 模块保证高运行效率。
Red Flag DC 5 中,为 x86 平台上为 qemu 提供了一个名为 qvm86 模块的加速层以外,该模块将机器码直接交给物理 CPU,而不是虚拟后的 CPU 来执行。对硬件的直接读写,代
●两种运行模式支持:
完整硬件虚拟模式:这个模式与常规的虚拟机类似,在这个模式中,Qemu 完全模拟了计算机的硬件。
用户虚拟模式:在用户虚拟模式中,用户可以在一种平台的 Linux 下运行另一种平台下的可执行文件。
●虚拟过程完全在用户空间中运行,通过 qvm86/kqemu 模块保证高运行效率。
Red Flag DC 5 中,为 x86 平台上为 qemu 提供了一个名为 qvm86 模块的加速层以外,该模块将机器码直接交给物理 CPU,而不是虚拟后的 CPU 来执行。对硬件的直接读写,代
码转换缓冲等技术也都保证了足够高的运行效率。rapturous
除此以外没有任何驻留于内核(ring0)级别的代码,这样可以保证系统稳定,高效地运行。
●最大的硬件兼容性
Qemu 可以使用硬件级的内存管理单元(MMU),但同时也通过软件进行模拟内存管理操作,使操作系统的兼容性得到了最大的发挥。
目前,主流的 Linux、Windows、Unix/Minix 都可以在该虚拟机上运行,详细的兼容列表可以从下面的 URL 获得:
fabrice.bellard.free.fr/qemu/ossupport.html
Qemu 所包含的文件:
除此以外没有任何驻留于内核(ring0)级别的代码,这样可以保证系统稳定,高效地运行。
●最大的硬件兼容性
Qemu 可以使用硬件级的内存管理单元(MMU),但同时也通过软件进行模拟内存管理操作,使操作系统的兼容性得到了最大的发挥。
目前,主流的 Linux、Windows、Unix/Minix 都可以在该虚拟机上运行,详细的兼容列表可以从下面的 URL 获得:
fabrice.bellard.free.fr/qemu/ossupport.html
Qemu 所包含的文件:
1. qemu-Qemu 的主执行文件,通常用户模拟与物理主机相同架构的虚拟机
2. qemu-img小工具,用于创建、转换、编辑镜像文件。
3. qemu-ppc,用于模拟其它平台的操作系统,这里以 ppc 为代表。
4. qemu-system-ppc,用户模式的虚拟程序,这里以 ppc 为代表。
linux操作系统镜像Qemu 为每个平台单独使用一个执行文件程序模拟,用户通过 rpm -ql qemu 或者Qemu,后面用 tab 键补齐,可以看到其他平台上的模拟程序,这里仅仅是以 ppc 来代表其他平台的模拟情况。
利用 Qemu 来运行 Windows,我们首先需要在磁盘上建立一个文件镜像,qemu 将会将这个镜像作为一个分区,Windows 将会安装到这个“虚拟的分区中。
首先,在 Red Flag DC Server 5.0 中打开终端(Terminal),然后在其中执行 qemu-img:
# qemu-img
qemu-img version 0.7.0, Copyright (c) 2004 Fabrice Bellard
usage: qemu-img command [command options]
Qemu disk image utility
....(此处省略具体参数)...
Supported format: vpc bochs dmg cloop vmdk qcow cow raw
qemu-img 是 Qemu 的镜像管理工具,我们主要关注其支持所支持的镜像格式。
对于用户来说,首要需要了解的格式是 raw 和 qcow 格式,raw 格式是一种”直读直写”的格式,不具备特殊的特性,但如其名一样,它容易被其他程序所读,比如,用户直接可以以回环(loop)设备来将它 mount 到一个目录里。
而 qcow 格式是 Qemu 的专用格式,有一些高级的特性,可以对它进行加密和压缩,以节省磁盘空间并保证数据安全,但一旦损坏将很难恢复。
除此以外,Qemu 还支持其它虚拟机,如从前提到过的 Virtual PC,java实用教程pdfVMWare 的 vpc, vmdk 格式,支持 bochs 和 Mac OS X 上所使用的 dmg 格式,用户可以在其间随意进行选择或者转换,仅需要使用appletv是什么东西 qemu-img 即可。
在这里,建立一个 5G 的 winhd.img 来创建镜像:
# qemu-img create winhd.img 5G
Formating 'winhd.img', fmt=raw, size=5242880 kB
#
完成后将回到 Bash 提示符,此时将 Windows 安装光盘插入光驱。
如果用户希望使用 qvm86 加速模块,该模块可以使系统运行速度大幅度提高,需要在终端下运行:
# modprobe qvm86
但是 qvm86 模块不能使用多个 CPU,所以只能在支持单个 CPU 的 up 内核上使用。
然后通过下面的命令行启动虚拟机,以从光盘引导:
#qemu -cdrom /dev/cdrom -hda winhd.img -boot d -enable-audio -win2k-hack
其中 -cdrom 和 -hda 后面分别跟上光驱和镜像文件的路径;-boot 后面可以通过跟上 a 从软盘引导,b 从引导,d 从光驱引导;-enable-audio 可以启用声卡支持。
-win2k-hack 是在安装 Windows 2000 时专用的,为了解决一个在安装 Windows 2000 时发生磁盘溢满的 bug,对于其它 Windows 版本不需要任何参数。
ios系统开发如果执行成功屏幕上将会输出:
QEMU acceleration layer enabled
然后我们将会看到 Windows 的安装程序启动,如图所示:
以后便按照常规方式安装 Windows 即可。
虚拟机在运行时,点击窗口内的虚拟操作系统既可通过鼠标控制虚拟机,如果需要回到 Red Flag DC Server 5.0 中只需要同时按下 Ctrl 和 Alt 键即可。
系统安装完成以后,不要为虚拟机中的操作系统安装任何驱动程序,因为操作系统被“包裹”于 Qemu 虚拟机程序之内,与外界硬件隔离,为它所装的驱动程序对虚拟机中的系统并不能产生效果。
以后便按照常规方式安装 Windows 即可。
虚拟机在运行时,点击窗口内的虚拟操作系统既可通过鼠标控制虚拟机,如果需要回到 Red Flag DC Server 5.0 中只需要同时按下 Ctrl 和 Alt 键即可。
系统安装完成以后,不要为虚拟机中的操作系统安装任何驱动程序,因为操作系统被“包裹”于 Qemu 虚拟机程序之内,与外界硬件隔离,为它所装的驱动程序对虚拟机中的系统并不能产生效果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论