作者:河北省石家庄市fzy1
当前最实用【虚拟】技术(均经过本人实践,在windows_2008_R2下运行成功)
一、虚拟光驱;二、虚拟机;三、虚拟硬盘;四、虚拟操作系统实体化......
一、虚拟光驱
这项虚拟技术是大家接触最多,应用作为广泛的一项成熟虚拟技术。没有什么可深入探讨的。仅强调一点:daemon4304-lite支持全系列微软操作系统。其他虚拟光驱软件也很多。
二、虚拟机
我尝试过的有三种:1、微软的Virtual PC 2007;2、VMwareworkstation-v6.5.3;3、sun公司的VirtualBox-3.0.4
说起来,虚拟机技术也是一项被大众较早接触的成熟虚拟技术。实践证明,这项技术很好的解决了如下几方面问题:
1、操作系统虚拟化。一些较为特殊的软件、或者开发较早的程序,由于开发技术不及时跟进,造成不能很好支持最新的操作系统。比如我常用的内部网【证书驱动】,就不能在Vista、windows_2008、windows_7、windows_2008_R2这四个操作系统中运行。可这又是我们要经常使用的东西,没有见到新驱动之前,我们怎么办呢?总不能为了这么一个事项切换系统吧。这个时候,就是虚拟机发挥重要作用的时候了,在当前操作系统中运行虚拟机,然后用虚拟操作系统去访问那些需要数字证书的内部网站,完成一些必要的特殊操作。然后及时回到现有操作系统中去处理日常事务。
2、网络服务虚拟化。常用网络服务有WEB、FTP、DNS等,在虚拟机中提供这些服务,好处很多。主要是:维护便利;数据热迁移方便;程序开发不过分依赖实际硬件;实体硬件故障后、程序混乱、中病毒、遭到攻击等,热切换服务无缝快捷;由于一些服务访问量很少,一台服务器只提供一种服务,一是造成效用浪费,二是需要不断扩大存放场地,三是不断要投资购买硬件,四是硬件种类繁多,开发的软件过分依赖硬件造成程序开发和维护成本的不断攀升。虚拟化可以让硬件效用最大化;其它好处就不一一列举了。不过,这项好处一般网友体会不到,主要还是拥有服务器的单位、开发网络服务的技术人员、网管应用多些。
3、便利程序开发测试。一般情况下,开发的单机版、网络版的单机程序或者网站程序,为了保证在多版本系统中流畅运行,需要到不同环境操作系统中去进行必要beta测试,但是,每个开发人员都拥有操作系统种类齐全的一台单机电脑的矛盾就会增大,也没有哪个开发人员愿意这样。远的不说,就拿常用系统说吧:微软的windows系列(XP、2003、Vista、2008、WIN7、2008R2),每个版本又分为32位、64位两种,算起来就有12种操作系统之多,这还不算苹果等公司开发的操作系统。不停地切换实体电脑去测试,这是很可怕的测试环境。当然,必要时也会去这样做。一定程度上,虚拟机给开发人员进行开发测试提供了较大的便利。
个人实践:不建议在虚拟机中运行windows-7,无论是微软的VPC2007,还是sun公司的VirtualBox-3.0.4,或者VMwareworkstation-v6.5.3。因为这三者目前虚拟出的CPU、显卡都不是很好,即便你分配给它2GB内存,都不能在虚拟机中开启玻璃特效(这是定论)等一些应有功能。这当中,最差的要数微软的Virtual PC系列,居然不能支持USB等外部设备,据微软自己说,是为了保护客户系统安全。不过,Virtual PC也不是一无是处,最起码它创建的虚拟文件只有一个,而VMwareworkstation系列创建的文件是许多个。VirtualBox-3.0.4均支持上述两种虚拟机创建的文件(不大使用,不敢肯定)。微软的Virtual PC创建的*.VHD格式文件可以被windows_7、windows_2008_R2这两个操作系统原生支持开机启动。经测试,除了微软声明的缺陷以外(不支持休眠、不支持加密)运行效果很好。
三、虚拟硬盘
这是一项伴随windows_7、windows_2008_R2而新生的一项虚拟技术。
windows_7、windows_2008R2操作系统为用户提供了一项VHD技术。
据初步了解:VHD就是虚拟硬盘(类似我们经常使用的虚拟光驱技术),VHD格式是一种公共可用映像格式规范,用于指定封装在单个文件中的虚拟硬盘,它能够在承载本机文件系统的同时支持标准的磁盘和文件操作。例如,它们通常作为 Windows Server 2008 R2 Hyper-V 功能的一部分使用。有关 VHD 的更详细信息、更深入应用,我正在深入探索。
-------------------------------------------------------------------------------下面是微软帮助中的解释:
(一)可以使用磁盘管理创建、附加和分离虚拟硬盘 (VHD)。
Backup Operators 或管理员中的成员身份或等效身份是完成这些过程所需的最低要求。
(二)查看磁盘管理中的 VHD
VHD 就像物理磁盘一样在磁盘管理中显示。附加 VHD(即,使其可供系统使用)后,它将显示为蓝色。如果分离该磁盘(即,使其不可用),其图标将变回灰色。
(三)创建 VHD的步骤
1、在“操作”菜单上,选择“创建 VHD”。
2、在“创建和附加虚拟硬盘”对话框中,指定 VHD 文件在物理计算机上的存储位置以及 VHD 的大小。
3、在“虚拟硬盘格式”中,选择“动态扩展”或“固定大小”,然后单击“确定”。
(四)附加和分离 VHD
1、若要使 VHD 可用(无论是刚创建的 VHD 还是现有 VHD),在“操作”菜单上,选择“附加 VHD”,然后使用完全限定路径指定该 VHD 的位置。
2、若要分离 VHD(即,使其不可用),在“操作”菜单上,选择“分离 VHD”,也可以右键单击卷列表或图形视图中的 VHD,然后选择“分离 VHD”。分离 VHD 时不会删除 VHD 或存储在其中的任何数据。
(五)其他注意事项
1、指定 VHD 位置的路径必须完全限定,并且不能位于 \Windows 目录中。
2、VHD 的最小大小为 3 兆字节 (MB)。
3、VHD 只能是基本磁盘。
4、由于 VHD 在创建时进行了初始化,因此创建较大的固定大小的 VHD 可能需要花费一些时间。
-------------------------------------------------------------------------------个人实践:
第一步:制作VHD文件
方法一:用微软的Virtual PC 2007制作(略。会使用虚拟机的人都会制作)
方法二:利用windows_7、windows_2008_R2这两个操作系统本身功能制作VHD文件。
1、制作VHD文件
【开始--控制面板--管理工具--计算机管理--磁盘管理】
鼠标右键单击【磁盘管理】,会出现一个【弹出菜单】,这里有两项需要引起重视:【创建VHD】、【附加VHD】,制作就要选中【创建VHD】命令。【位置】是指存放VHD文件的磁盘路径,可以由个人自行确定(文件名称可以自行决定),需要注意的是不建议选择在非实体硬盘中存放(也就是不要将VHD文件放到虚拟硬盘中,会影响到后边的操作步骤。)。【虚拟硬盘大小】是指你可以根据个人需要自行决定容量。(此处不建议小于20GB,会影响到后边的操作步骤。当然,如果单纯当做硬盘使用可以任意指定)。【虚拟硬盘格式】系统提供了两种选项:一是<动态扩展>(如果单纯当做硬盘使用可以选择此项)。二是<固定大小>(如果你要在这个文件中装载操作系统并使其实体化,就只能选择此项)。
2、加载VHD文件
【开始--控制面板--管理工具--计算机管理--磁盘管理】
鼠标右键单击【磁盘管理】,会出现一个【弹出菜单】,选中【附加VHD】命令。【位置】是指在第一步中制作的存放VHD文件的磁盘路径和文件。注意:没有特殊需要,一般不要选取【只读】这个可选项。初次加载后,可以在【开始--控制面板--管理工具--计算机管理--磁盘管理】中看到一个多出来的磁盘【蓝色图标磁盘】,系统告诉你这个硬盘目前【没有初始化、未分配】。
3、初始化、格式化虚拟硬盘
鼠标右键单击【蓝色图标磁盘】,会出现一个【弹出菜单】,选择【初始化磁盘】命令,选择默认设置,点击【确定】按钮。
将鼠标移动到【蓝色图标磁盘】右侧【未分配】框中,鼠标右键单击【未分配】框,会出现一个【弹出菜单】,选择【新建简单卷】命令,后边的操作都选择默认设置
,直至完成操作。
4、第三步完成后,你就可以在【计算机】中发现多出了一个【硬盘分区】。【虚拟硬盘】制作告一段落。
第二步:如何使VHD虚拟硬盘加载自动化。
我们在第一步中制作并加载成功的VHD虚拟硬盘,再重新开机后并不会自动加载到系统中让你使用,每次加载都要人工干预,使用起来不太方便。下面我讲三个操作方法。
一是:人工加载。没要使用VHD虚拟硬盘时,进入【开始--控制面板--管理工具--计算机管理--磁盘管理】操作页面,鼠标右键单击【磁盘管理】,选中【附加VHD】命令
即可加载(不再需要初始化、格式化)。
二是:自动加载。首先制作两个文件。一个是【加载.bat】(这是一个批处理文件),一个是【加载.txt】(这是一个文本文件)。并将这两个文件放到同一个路径中,以
便于调用。
【加载.bat】内容如下:
---------(不要输入虚线,只输内容)具体命令的解释,可以打开DOS命令窗口去了解。
---------将【I:\VHD-专用\加载VHD.txt】换成实际文件名称和保存路径。
ECHO OFF
diskpart /S I:\VHD-专用\加载VHD.txt
exit
----------------------------(不要输入虚线,只输内容)
【加载.txt】内容如下:
---------(不要输入虚线,只输内容)具体命令的解释,可以打开DOS命令窗口去了解。
---------将【I:\VHD-专用\虚拟硬盘.vhd】换成实际文件名称和保存路径。(这个文件就是在第一步中制作的VHD文件)
-------------------------引号一定要是英文字符
select vdisk file="I:\VHD-专用\虚拟硬盘.vhd"
attach vdisk
exit
exit
----------------------------(不要输入虚线,只输内容)
第三步:享受成果
如果你不想每次开机自动加载,就每次点击一下【加载.bat】文件,不需要到磁盘管理中去操作了。
如果你想每次开机自动加载。也有两种办法:1、将制作好的【加载.bat】添加到开始菜单的【启动】文件夹中,即可实现每次开机自动加载虚拟硬盘。不过,这种加载方
式会出现DOS窗口,显得不够自然和专业,会让人不舒服。2、最好的办法是制作一个【任务计划】,让系统自动加载【加载.bat】文件,这种方法不会出现DOS窗口,就像是系统的功能一样让人感觉不到它的存在。
【任务计划】制作方法:1、【开始--控制面板--管理工具--计算机管理--任务计划程序】 ;2、鼠标右键单击【任务计划程序(本地)】,会出现一个【弹出菜单】,选
择【创建任务(R)】命令:
(1)选择【常规】:
【名称】可以自行指定。
【安全选项】栏中,选取【不管用户是否登录都要运行(W)】,选取【使用最高权限运行】,选取【配置】(windows7,windows server 2008 R2)这项。
(2)选择【触发器】---【新建】:
【开始任务】选择(启动时),其它选项默认,点击【确认】即可。
(3)选择【操作】:
【浏览】找到自己制作好的那个批处理文件【加载.bat】 、
通过上述步骤,就建立好了一个任务计划,系统每次开机即可自动加载VHD虚拟硬盘,十分方便使用。至于如何解决卸载VHD虚拟硬盘的问题,就留个你自己思考吧。O(∩_∩)O哈哈哈~
告诉大家一个非常秘密的秘密:
制作好的VHD虚拟文件(1、【名称】可以任意指定;2、【后缀】可以任意指定;3、也可以不要后缀)只要有一个合法的【名称】即可被系统认可、识别,并允许你加载使用。你大概想到这样做的好处了吧。微软绝对不软,人家硬着呢。O(∩_∩)O哈哈哈~
四、虚拟操作系统实体化
这是一项伴随windows_7、windows_2008_R2而新生的一项虚拟技术。(待续)
在微软VPC2007中加载*.VHD文件,虚拟机中制作windows_7(32位)系统的方法(略)。
【虚拟操作系统实体化】是指让虚拟硬盘中的系统可以从电脑冷启动后可以从启动菜单中可选,并直接加载,相当于一个双系统。这项技术需要你的实体硬盘中安装有windows_7、windows_2008_R2,当然,你也可以采取其他方法加载虚拟硬盘中的windows_7操作系统(以后再讲)
按照上述一至三中所述,建好VHD虚拟硬盘,在虚拟机中安装好windows_7操作系统。
然后在本机现有windows_7、windows_2008_R2(其他系统不支持以下命令)中打开DOS窗口,按照顺序输入下列命令,就可以打造一个VHD版操作系统。这项技术制作的操作系统存在的缺憾微软已经指出,主要是“不支持休眠;不支持加密”,具体可看微软的介绍。
DOS窗口
1、在开机菜单中加载VHD操作系统菜单项
rem ====================================
rem 查看现有系统启动菜单项
------------------------(不要输入虚线)
bcdedit
rem 复制菜单中的【标识符】
rem 此命令创建指定启动项的副本
rem ------------------------(不要输入虚线)
rem ------------------------(不要输入虚线)
bcdedit /copy 【标识符】/d "【自己命名的启动菜单中显示的名字】"
rem 说明:【标识符】从利用bcdedit命令查出的现有系统启动菜单项中复制而来。
rem 说明:英文字符双引号中的【自己命名的启动菜单中显示的名字】,可以自行命名。
rem ------------------------(不要输入虚线)
rem ====================================
rem 此命令创建指定启动项的副本
bcdedit /set 【副本标识符】device vhd=[X:]\VHD文件存放的实际路径\VHD文件名称
bcdedit /set 【副本标识符】osdevice vhd=[X:]\VHD文件存放的实际路径\VHD文件名称
bcdedit /set 【副本标识符】 detecthal on
rem ====================================
实例:
1、bcdedit(回车)
2、复制现有系统标识符:{current}
3、bcdedit /copy {current} /d "虚拟windows2008R2"
4、复制副本菜单标识符:{72440885-af01-11de-8543-001d09092b66}
5、bcdedit /set {72440885-af01-11de-8543-001d09092b66} device vhd=[g:]\xuni-windows\VPC-WIN7\VPC-WIN7-32.vhd
6、bcdedit /set {72440885-af01-11de-8543-001d09092b66} osdevice vhd=[G:]\xuni-windows\VPC-WIN7\VPC-WIN7-32.vhd
7、bcdedit /set {72440885-af01-11de-8543-001d09092b66} detecthal on
通过上述7个步骤,在启动菜单中已经制作好了要加载的“VHD系统菜单”。冷启动或者热启动后,在开机系统菜单中就可以看到除了原有系统菜单向外,还有一个自己添加成功的【虚拟windows2008R2】菜单可选项。选中并执行,就可以进入VHD技术制作的操作系统。进入系统后,操作系统会根据当前实体电脑硬件进行自动识别,然后要求重新启动。
说明:删除一个启动菜单
bcdedit /delete {72440885-af01-11de-8543-001d09092b66}
说明:windows_7以前的操作系统不支持VHD操作系统启动。
说明:现有虚拟机软件目前都不支持创建64位操作系统。
说明:一定要仔细区分(现有系统启动菜单项的【标识符】)和(指定启动项的副本【副本标识符】),避免不必要的误操作。
说明:可以讲VHD文件作一个备份,必要时将已经损坏的已经加载运行过的VHD操作系统。当然,你也可以先在虚拟机中将常用软件安装好。这样制作的VHD操作系统,初次加载后,可以在任何硬件配置的电脑中进行实体硬件自动识别,不依赖于具体硬件,但加载运行后的VHD系统就会以来现有硬件。
上述操作完成后,你就可以使用VHD操作系统了。
有话要说