过年期间无事,偶尔看到文章谈起,在计算机已经安装Windows 7操作系统,使用VHD文件双引导到Windows 2008 R2的文章。遂琢磨了一下,既然可以实现VHD文件引导操作系统,可不可实现在计算机上不安装操作系统,windows7 windows 2008 R2全部都由VHD文件引导呢?

 

于是开始捅咕,经过一整天的折磨,实现了这个想法。目前我的笔记本和家里的台式机都使用此方法安装系统。

 

双系统启动的好处大家都很清楚,不在此多说。

全部系统都使用VHD引导的好处我觉得有以下几个:

 

1  计算机磁盘可以只划分成一个分区,不用以后为了系统分区太小而调整分区空间,避免在调整分区空间过程中出现数据丢失的风险。

2  不用为了实现多操作系统启动而费尽心机的考虑如何划分磁盘分区。

3  系统备份变得异常简单,只需在安装配置完操作系统,安装所有软件之后,将VHD文件复制下来就可以了,如果系统需要重装,只要将保存的VHD文件复制到原来的位置就OK

 

还有其他好处,想到的同学请补充。

 

有人要问,是用VHD方法引导计算机对性能会不会影响很大?答案是:微乎其微。

请参考下图,及网址。

 

 

 

http://blogs.technet.com/fyu/archive/2009/01/19/vhd.aspx

 

 

计算机不安装操作系统,使用VHD文件双引导Windows 7旗舰版及Window 2008 R2

 

有问题,可以发邮件或打电话给我。

 

必备工具:

1  安装有windows7Windows Server 2008 R2的计算机

2   此计算机已经安装Windows Automated Installation Kit (AIK) for Windows® 7(下载地址

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=696dd665-9f76-4177-a811-39c26d3b3b34

3  此计算机已安装虚拟光驱软件(如DAEMON Tools

4  次计算机安装(强力推荐)Acronis Disk Director Suite 10磁盘分区管理软件

5  Windows 7windows 2008 R2ISO文件

6  一张刻录好的Windows7安装光盘

7  WIM2VHD.vbs脚本

         

步骤:

一、使用WIM2VHD.vbs脚本创建 WIN7.VHDWIN2K8R2.VHD文件。

1  获得WIN2VHD.vbs脚本。并将脚本保存在d:\

下载地址:

http://code.msdn.microsoft.com/wim2vhd/Release/ProjectReleases.aspx?ReleaseId=2603

脚本使用说明:

http://code.msdn.microsoft.com/wim2vhd

2  Windows 7安装盘的ISO文件使用虚拟光驱软件加载到虚拟光驱,如:H

3  点击开始菜单内的运行,输入cmd,点击确定。打开DOS窗口输入

CSCRIPT D:\WIM2VHD.WSF /WIM:H:\sources\install.wim /SKU:4 /VHD:D:\System\WIN7.VHD

H:为虚拟光驱盘符,D:\SystemVHD文件保存位置

/SKU:4指定的是旗舰版,123分别为家庭普通版、家庭高级版、专业版。因为只有旗舰版和企业版支持VHD启动,所有我们指定为4

    同样方法创建WIN2K8R2.VHD文件,是企业版。

CSCRIPT D:\WIM2VHD.WSF /WIM:H:\sources\install.wim /SKU:3 /VHD:D:\System\WIN2K8R2.VHD

 

二、获得windows7(或Windows2008R2)启动分区的boot目录及bootmgrgrldr文件,并存入某磁盘根目录下,如 D:\

 

右键点击“我的电脑”,点击“管理”,打开“计算机管理”,“磁盘管理”,给System Recovery隐藏分区分配一个驱动器号,如I

 

打开I盘,让系统显示隐藏文件和系统文件,复制boot目录及bootmgrgrldr文件到D:\,复制过程中会报错“BCD文件正在使用”不能复制,跳过此文件。

 

复制完成后打开dos窗口,输入命令:  bcdedit /export d:\boot\bcd

 

如果没有System Recovery隐藏分区,则打开C:盘执行复制和命令

 

三、使用磁盘分区软件,将计算机磁盘分区合并成一个主分区NTFS格式、并将此分区设置为活动分区

 

此步骤使用Acronis Disk Director Suite 10实现分区的合并,涉及到一个问题,计算机已经安装操作系统,而这个磁盘管理软件是安装在这个系统下,如何删除这个分区呢?

可以办到,因为合并分区删除分区等操作需要系统重新引导,引导后由Acronis Disk Director Suite 接管引导计算机,并实现分区的删除和合并。这时不用引导到windows7中,所以可以删除操作系统所在分区。

 

 

四、使用Windows7安装光盘引导计算机,编辑BCD文件。

此时计算机硬盘已经被划分为一个活动主分区,没有操作系统。

使用刻录好的windows7安装光盘引导计算机到如下画面,按Shift+F10,出现Dos窗口

 

 

 

 

输入如下命令

Bcdedit 回车,返回结果“类似”如下,红色部分可能不是{current}而是类似{915d67b4-00d7-11df-bc48-e19d0d96ad84}这样的一串字符,或者{default},没关系,继续。

 

Windows 启动管理器

--------------------

标识符                  {bootmgr}

device                  partition=D:

description             Windows Boot Manager

locale                  zh-CN                                                                               

inherit                 {globalsettings}

default                 {current}

resumeobject            {915d67b4-00d7-11df-bc48-e19d0d96ad84}

displayorder            {current}

toolsdisplayorder       {memdiag}

timeout                 30

 

Windows 启动加载器

-------------------

标识符                  {current}

device                  partition=C:

path                    \Windows\system32\winload.exe

description             Windows 7

locale                  zh-CN

inherit                 {bootloadersettings}

recoverysequence        {4a3b0fe8-1ef8-11df-98cc-0024e891ab27}

recoveryenabled         Yes

osdevice                partition=C:

systemroot              \Windows

resumeobject            {271b2423-1e54-11df-8690-806e6f6e6963}

nx                      OptIn

hypervisorlaunchtype    Auto

 

 

 

()WIN7.vhd文件添加到启动菜单

 

执行第一个命令:

 

bcdedit /copy {current} /d "Windows 7 旗舰版"      如果在上面返回的结果不是{current}而是一串字符,则在此命令中用字符替换 {current},含{}

执行完后会返回“类似”如下结果

 

已将该项成功复制到 {9041d6af-250c-11df-8bff-005056c00008}

 

{}内字符是随机生成的,复制下这串字符,含{}

 

第二个命令

bcdedit /set <guid> device vhd=[D:]\System\WIN7.VHD

 

使用第一个命令返回并复制的那串字符替换此命令中的<guid>

 

第三个命令

 

bcdedit /set <guid> osdevice vhd=[D:]\System\WIN7.VHD

 

同样替换<guid>

 

第四个命令

 

C:\>bcdedit /set <guid> detecthal on

 

同样替换<guid>

 

 

 

 

(二)将WIN2K8R2.vhd文件添加到启动菜单

 

 

 

执行第一个命令:

 

bcdedit /copy {current} /d "Windows 2008 R2 企业版"      如果在上面返回的结果不是{current}而是一串字符,则在此命令中用字符替换 {current},含{}

执行完后会返回“类似”如下结果

 

已将该项成功复制到 {9041d6af-250c-11df-8bff-005056c00008}

 

{}内字符是随机生成的,复制下这串字符,含{}

 

第二个命令

bcdedit /set <guid> device vhd=[D:]\System\WIN2K8R2.VHD

 

使用第一个命令返回并复制的那串字符替换此命令中的<guid>

 

第三个命令

 

bcdedit /set <guid> osdevice vhd=[D:]\System\WIN2K8R2.VHD

 

同样替换<guid>

 

第四个命令

 

C:\>bcdedit /set <guid> detecthal on

 

同样替换<guid>

 

 

 

 

 

(三)删除{current}启动项

 

 

执行命令

 

C:\>bcdedit /delete <guid> /cleanup

 

使用{current}或者同位置的{guid}号,替换命令中的<guid>

 

 

 

(四)将WIN7.VHD启动项设置为默认启动项

 

 

bcdedit /default {guid}

 

此处的guid号应该使用第()步骤第一个命令返回的guid

 

 

如果觉得默认等待30秒进入默认系统,可以使用下面命令修改时间值为5

bcdedit /timeout 5