Windows XP 与Win7 VHD双启动

Abner Kou原创
 
Windows XP Win7 VHD双启动
 

一、目的:在装有Windows XP的硬盘上部署Windows 7 VHD镜像,修改启动信息,最终实现 Windows XPWindows 7双系统启动。这样做的好处显而易见,无需安装系统,适合于快速批量部署Win7,用于对Win7的测试和试用

 

二、环境

1、可启动的VHD文件。建议使用vpc在实际要部署win7的物理机上制作,并安装好驱动(VHD成功启动后,在Win7 VHD下安装驱动)。将制作好的vhd文件Win7.vhd放到物理机的D盘,C盘为Windows XP系统。

2、win7安装盘中的boot文件夹、sources下的boot.wimbootmgr拷贝到文件服务器上,并共享

使用命令拷贝
xcopy  k:/boot/*.*  e:/share/boot /s /r
copy  k:/bootmgr  e:/ share/
Copy  k:/sources/boot.wim e:/sources
KWin7安装光盘的盘符 E为文件共享服务器的盘符

3、BCD备份文件放到文件服务器上,共享。(如何制作,后面会讲到)这个BCD备份数据是在已经配置好双启动的机器上备份出来的,当配置下一个机器时可以直接从备份恢复BCD数据,并加以修改。

 
三、原理
1XPwin7的引导方式有着根本性的不同。
XP时代系统通过NTLODER读取boot.ini的数据进行引导,win7则使用bootmgr即启动管理器,去读取BCD中的数据,从而引导系统。BCDBoot Configure Data 引导配置数据,它的作用就是用于存放当前机器上的操作系统信息,安装了多少操作系统,每个操作系统所在分区等等。它相当于XPboot.ini
2、单纯修改xp下的boot.ini并不能引导win7.需要使用Bootmgr.exe来引导
3、引导win7的几个必要文件需要放到当前系统分区,即XP的所在的系统分区C盘。
4、对于修改启动配置信息,可以使用系统安装过程中的修复计算机工具中的系统恢复工具,或者使用bootrec.exe工具修复系统引导文件,再或者直接用bcdedit工具导入BCD备份数据,并加以修改。以上三种方式均可以实现正确引导双系统,第一种图形界面的适用个人用户,第三种可以实现脚本化的则适用于企业的批量部署。
 
四、过程
1、将物理机引导到winPE,可以用安装盘、也可以用WDS,我用的是后者
2、在选择语言处,按shift+F10,调出命令行,当前命令行位置是X:/sources
3、连接文件服务器,拷贝所需文件(也可以在xp系统下拷贝):
net use z: //server/share
输入用户名和密码,将服务器上的文件映射到本地Z
share下有三个文件夹一个文件
bootmgr:启动管理器,相当于XP/2003时期的Ntldr
文件夹boot:存放安装光盘中的boot文件
文件夹sources:存放本地WinPE启动文件boot.wim
文件夹bcdback:存放BCD备份数据BCD.back
md  c:/boot
md  c:/sources
z:
copy  z:/sources/boot.wim c:/sources (只是第一种方式需要boot.wim文件)
xcopy  bootmgr c:/  /s  /y  /r
xcopy  z:/boot/*.* c:/boot
copy  z:/bcdback/BCD.back  c:/boot
A、修复启动项:第一种方式,图形界面修复
C:
Cd boot
Bootsect.exe /nt60 sys (更新系统分区上的主启动代码,由NTLDR切换到BOOTMGR
重启电脑,系统自动从本地的boot.wim启动,在选择语言和键盘的地方停止,按shift+F10执行以下命令
Diskpart
List disk
Select disk 0 winXP所在硬盘)
Select vdisk file=d:/win7.vhd
Attach vdisk
List volume (查看被挂载的vhd的盘符,本例中为H
回到图形界面,选择时区、键盘,点击下一步
不选择安装系统,选择左下角的“修复计算机”,自动进入系统修复程序
系统会自动查找磁盘中所安装的系统,并添加到启动项。
重启电脑,第一种方式修复结束
(此外:通过另一个图形界面工具,也可修复,文件在
X:/sources/recovery/RecEnv.exe
使用这个工具就不需要拷贝boot.wim,不需要重启系统进入本地的WinPE了)

4、附加VHD

Diskpart
List disk
Select disk 0 winXP所在硬盘)
Select vdisk file=d:/win7.vhd
Attach vdisk
List volume (查看被挂载的vhd盘符,本例中为H
Exit (退出diskpart
B、修复启动项——第二种方式,bootrec工具
Bootrec /rebuildbcd (扫描磁盘中所安装的系统,并将启动项添加到BCD中)
系统会扫描到H盘存在一个系统,即VHDWin7系统,问是否保存到BCD,键盘上敲入Y,回车保存。
Bcdedit 查看是否存在添加启动项
最后备份BCD文件,这就是第三种方式中的备份文件来源
Bcdedit /export c:/boot/BCD.back (备份BCD数据)
Copy c:/boot/BCD.back z:/bcdback  (将备份放到文件服务器)
重启电脑,第二种方式修复结束
C、修复启动项——第三种方式,导入BCD备份文件
Bootrec /fixmbr (可以删除 MBR 中的非标准代码)
Bootrec /fixboot (修改xp时代的NTLDR启动为Bootmgr启动)
Bcdedit /import c:/boot/BCD.back(从备份文件恢复引导信息数据BCD
导入BCD数据之后,deviceosdevice信息显示为未知,需要重新修改
Bcdedit /set {default} device vhd=[d:]/win7.vhd
Bcdedit /set {default} osdevice vhd=[d:]/win7.vhd
Bcdedit 查看启动信息是否正确,正确的显示如下:
Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  unknown
path                    /bootmgr
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {default}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30
 
Windows Boot Loader
-------------------
identifier              {default}
device                  unknown
path                    /Windows/system32/winload.exe
description             Windows 7 Enterprise
locale                  zh-CN
osdevice                unknown
systemroot              /Windows
重启电脑,第三种方式修复结束

5、恢复XP系统(在WinPE环境下,也可以在启动win7后,在win7环境下)

Bcdedit /create {ntldr} /d “windows XP”
Bcdedit /set  {ntldr} device partition=c: (选择xp系统所在盘)
bcdedit /set {ntldr} path /ntldr
Bcdedit /displayorder {ntldr} –addlast
Bcdedit /set {ntldr} description “Windows XP”
Bcdedit
至此,Windows XPwin7 VHD双启动全部完成
 
五、其他说明
1、查看BCD中的备份信息
bcdedit /store z:/bcdback/BCD.back
2、清除windows XP下的 BCD启动信息
Bcdedit /export c:/boot/bcd_back01  (备份BCD数据)
Attrib c:/boot/bcd –s –h –r    (去掉隐藏只读)
Ren c:/boot/bcd bcd.old  (改名)
3、第二种修复方式中,理论上可以做到完全脚本化
Bootrec /rebuildbcd改成
Echo Y|Bootrec /rebuildbcd 即可以在提示输入YES|NO|ALL的时候,自动输入Y,不需要人工敲入Y
但是在这个命令下却不能用,不知何故
 
 

本文出自 “abner kou” 博客,http://abner.blog.51cto.com/667698/232796

posted @ 2011-03-29 16:51  天米  阅读(2225)  评论(0编辑  收藏  举报