按标签存档 虚拟化

XP Mode功能的一个补丁

为了改善Windows 7与老版本应用程序的兼容性,说服因为兼容性问题不迁移到Windows 7的企业改变想法,微软在Windows 7中提供了一个名为XP Mode的功能。有关该功能的介绍,可以参考我的这篇文章。简单来说,该功能实际上就是一个虚拟机软件,属于Microsoft Virtual PC 2007的改进版(这个版本名叫Windows Virtual PC),安装后可以在系统中创建虚拟的计算机。然后在虚拟的计算机中安装Windows XP等老版本操作系统,并运行不兼容Windows 7的应用程序。而且更体贴的是,微软官方提供了Windows XP的虚拟机磁盘文件,并且是完全免费的。

但是XP Mode功能有一点致命的不足,要求计算机安装的CPU必须支持硬件虚拟化技术。

何谓硬件虚拟化技术?

对于硬件辅助虚拟化技术,可以参考维基百科上的解释。AMD和Intel都在自家某些型号的CPU中提供了这样的功能,AMD的名为“AMD-V”,Intel的名为“Intel VT”。简单来说,硬件辅助虚拟化技术,可将原本大量需要由虚拟机软件执行的指令转换工作由CPU内建的电路直接执行。因为少了一步转换工作,因此硬件辅助虚拟化技术的性能更好。要了解自己的CPU是否支持硬件辅助虚拟化,可使用微软提供的这个工具,该工具不仅可以检测CPU是否支持硬件辅助虚拟化,而且可以检测出目前该功能是否已经启用。

然而遗憾的是,并非所有电脑的CPU都支持这样的技术。AMD属于比较厚道的,低端产品中也有支持AMD-V技术的型号;然而相比来说,Intel就不那么厚道了,只有某些比较高端的产品才提供Intel-VT功能。另外还有一种更加郁闷的情况,本身电脑使用的CPU是带有硬件辅助虚拟化功能的,但这些功能默认被禁用,而且由于某些原因(钱作怪?),BIOS中并未提供用于启用此类功能的选项。例如SONY曾经就是这样做的

因此如果你需要使用XP Mode,但因为电脑的CPU不支持硬件辅助虚拟化,或者虽然CPU支持,但BIOS中缺乏开启的选项,那么本文将提供一种方法。其实上文已经说过,XP Mode的核心就是Windows Virtual PC,而该软件完全可以看作是Microsoft Virtual PC 2007的升级版。后者是可以在不支持硬件虚拟化技术的电脑上使用的,并且速度也还可以接受。因此完全可以认为,前者对CPU的要求纯粹是一种人为的限制,而不是技术上的限制。估计可能是考虑到性能问题,所以才人为限制只允许支持硬件辅助虚拟化的电脑使用该功能。

但实际上可能需要这个功能的人确实多,而可以满足条件的人也确实不太多,因此微软貌似已经放宽了限制,准备用补丁的方式支持更多CPU。根据已知信息,该问题的相关信息可能会发布在KB 977206中,但截至目前,该KB文章尚未发布,自然也就没有官方提供的补丁了。不过好在该补丁已经泄漏,并且出现了公开的下载,因此有需要,或者感兴趣的朋友可以自己尝试。

注意:这些补丁并不是官方发布的,虽然我自己验证包含Microsoft的数字签名,来源可以证实,但对于测试版的任何东西,使用时最好还是能小心一些。而且因为条件限制,我现在手头没有符合要求的电脑,无法测试该补丁的有效性。如果使用下列补丁,请风险自负。

下载的文件是压缩包,其中包含了针对32位和64位Windows 7的补丁,请根据实际情况选择安装。另外,下列两个地址的内容是一样的。

地址1:http://rapidshare.com/files/336771069/vxp.rar

地址2:http://hotfile.com/dl/24591933/580fbe7/vxp.rar.html 

下图是所提供文件的数字签名

Snap6

, ,

无留言

选择Windows 7的酷理由–虚拟化支持(2/5)

在IT专业人员的圈子中,“虚拟化”这个概念非常流行。简单来说,这种虚拟化技术可以将一台物理电脑通过软件方式虚拟出多台逻辑电脑,每台电脑有自己的一套硬件平台,可以安装不同的操作系统,实现不同的用途。另外Windows 7的启动引导程序还可以直接引导保存在.vhd文件中的操作系统,.vhd文件是微软虚拟化软件所用的磁盘文件,也就是说,在虚拟机中安装的操作系统,还可以脱离虚拟化平台,直接由宿主机的硬件加载并运行。

XP Mode

其实虚拟化是一个很好的技术,现在大家都在提倡节能减排,而虚拟化技术就可以将物理设备的数量降到最低。例如很多企业由于各种技术或规章制度上的限制,某些应用可能需要独立的服务器来提供,然而这些应用并不能充分利用服务器的所有性能,因此服务器的运算能力在大部分时间都被浪费了。而通过使用虚拟化技术,就可以将这些应用安置到用虚拟化软件虚拟出来的电脑中,这样原本需要十台物理服务器提供的服务,通过虚拟机可能只需要用一台物理服务器即可提供,不仅节约能耗,而且可以节约机房的空间占用。

对于普通用户,虚拟化有什么作用?其实这是解决应用程序兼容性的一种好方法。很多企业可能想要升级到Windows 7,可某些关键应用程序由于兼容性问题,无法运行在Windows 7中。为了解决这种问题,就可以在Windows 7中使用虚拟化技术虚拟一台电脑,并安装Windows XP等老版本操作系统,将这些不兼容的应用程序运行在虚拟机环境中。

其实这种做法在Windows XP/Vista上也可以实现,微软就有免费的Virtual PC 2007可以创建虚拟机,那么Windows 7中的虚拟化技术又有什么独特之处?让我们先来看一个例子,在经过相应配置的Windows 7系统中,打开开始菜单,在搜索框中输入“Word”,大家都知道,这样就可以找到系统中安装的“Word”软件。但实际上搜索结果如图 1所示,为什么这里出现了两个版本的Word,Word 2007后面的括号中还标注了“Vista”字样?而且这两个版本可以并行运行(如图 2所示)。

21

1,同一个程序的不同版本同时出现在同一个系统中

22

2,同一程序的不同版本还可并行运行

正常情况下,一个系统中只能安装一个版本的微软Office套件,这种同时并行安装两个版本的方法是如何实现的?其实这就是Windows 7中一个名为XP Mode的功能。这个功能虽然看起来很神奇,但实际上就是虚拟化技术的一种新的应用方式。

简单来说,该功能需要在Windows 7中安装Windows Virtual PC软件,利用该软件创建虚拟机,给虚拟机中安装老版本Windows系统,并将不兼容Windows 7的应用程序都安装到虚拟机内的老版本Windows中。随后如果虚拟机中安装的是Windows XP,还需要通过Windows Update安装更新程序,使XP可支持RemoteApp,而Windows Vista之后的系统已经直接支持该功能。

RemoteApp的主要用途是将虚拟机内运行的应用程序的界面直接显示到宿主机的系统中,而不需要显示虚拟机的相关界面。例如上图所示的例子中,Word 2007就是运行在虚拟机中,但并不需要打开虚拟机的窗口,就可以直接在宿主机的桌面上看到Word 2007的程序窗口,而且安装到虚拟机中的应用程序快捷方式可以直接出现在宿主机的开始菜单中。这一点就是Windows 7中XP Mode与其他虚拟机软件最大的不同。

Windows XP/Vista也可以安装虚拟机软件,并在其中运行不兼容的应用程序,但这种情况下必须首先启动虚拟机软件,启动虚拟机,随后在虚拟机中启动应用程序,并在虚拟机窗口内使用该应用程序。但在Windows 7中,使用XP Mode技术,虽然一样需要启动虚拟机,但至少虚拟机中运行的程序窗口可以直接显示在宿主机中,这样此类程序实际使用起来,就和普通的应用程序没有太大区别。

而且Windows 7中提供的Windows Virtual PC是微软Virtual PC 2007的升级版,除了具备VPC 2007的所有功能外,还可以挂载USB设备,这样虚拟机内运行的应用程序也将可以直接使用USB设备,例如U盘或打印机。更重要的是,虽然严格来说这样的程序是在不同操作系统之间运行的,但程序之间的交互没有任何问题,我们可以从Word 2007中复制文字并粘贴到Word 2010窗口中。

那么既然就是虚拟化技术,这个功能为什么又要叫做XP Mode?其实这是因为很多不愿意升级到Windows 7的企业依然在使用XP,因为XP与企业内应用程序的兼容性最好。因此为了促使这些企业升级,微软提供了免费授权的Windows XP。从微软网站上下载一个500 MB左右的安装程序,该文件中包含了微软预先配置好的虚拟机磁盘文件,将该程序安装到系统中,就会自动创建一个运行了XP系统的虚拟机。因为这个虚拟机中的XP授权是免费提供的,因此可以有效降低企业的应用成本,同时这个虚拟机可以自动安装,也可以方便用户的使用。但实际上,如果有必要,我们完全可以给虚拟机中安装Windows Vista等系统,并将该功能叫做Vista Mode。

.vhd引导

.vhd是微软虚拟化软件生成的磁盘文件,在老版本Windows中,必须安装微软的虚拟化软件,例如Virtual PC或Hyper-V,才能在虚拟化的平台中加载.vhd文件中的操作系统。但在Windows 7和Windows Server 2008 R2中,除了可以使用虚拟化软件加载外,这些操作系统的引导管理器还可以直接引导.vhd文件中的操作系统。

对于普通用户,这种功能有什么用?可以设想这样的情形:由于各种原因,有些人可能需要使用多个操作系统,例如可能是为了测试自己开发的软件,或者在学习计算机技术需要做实验,或者由于各种原因,平时使用一个系统,但在执行某些任务时需要使用另一个系统。

其实传统的虚拟机软件就可以满足需要,而且只要硬件性能足够强大,还可以同时在虚拟机中运行多个系统,但这样的用法有一个很大的不足:性能。

虽然现在的新CPU已经支持硬件虚拟化技术,并且主流的虚拟机软件也开始为硬件虚拟化技术提供支持,这样的结果是虚拟机中运行的系统和应用程序的性能越来越好。但这一切毕竟都是虚拟出来的,需要在后台执行大量的转换和运算,因此性能的损失是难免的。尤其是,有些特殊的应用可能根本无法在虚拟化的电脑中进行。例如需要真正使用某些物理硬件的时候,或者对性能的损失无法接受的时候。

举例来说,IT专业人员可能经常需要在虚拟机中评估新软件,然而在虚拟化环境中,评估软件的功能比较简单,按照正常方法使用并评测即可,但如果需要评估新软件的性能,又该怎么办?虚拟机本身相比物理机性能就有一定的损失,如何得到客观准确的结果?

其实在Windows 7中就简单了,在遇到上述问题后,直接使用相关虚拟机的.vhd文件引导电脑,随后电脑就会自动使用物理机的真正硬件运行,并可充分使用到所有硬件的完整运算性能。不仅如此,如果有必要,还可以直接使用Windows 7的磁盘管理工具(diskmgmt.msc)创建或挂载.vhd文件(如图 3所示),这样还可以直接对.vhd文件内的虚拟环境进行修改和维护。

06

3,Windows 7可直接支持vhd文件

,

无留言