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

转载于:https://www.cnblogs.com/Wen-Man/archive/2011/03/29/2373772.html

1.解压vboot 2.将VBOOT中的vbootldr.mbr,vbootldr放在C盘根目录,剩下的VBOOT目录放在C盘根目录 c:. | vbootldr | vbootldr.mbr |----vboot |------- grub | |-------font ........... 3.将boot.INI中增加一行 C:\vbootldr.mbr="VBoot -VHD Boot" 此时启动,选择VBoot -VHD Boot能看到启动菜单 4.创建VHD磁盘 命令 c:\vboot\tools\x86\vbootctl.exe createhd c:\winxp.vhd /size 5 可以使用c:\vboot\tools\x86\vbootctl.exe help查看命令 此处建立的是一个动态的vhd文件。 注意:这个size后面单位是GB 5.安装XP系统到这个VHD 将要安装的光盘改名为winxp-sp2.iso,放在C盘根目录 至于这个ISO和前面的VHD名字,由grub\grub.cfg文件中决定, vboot harddisk="(hd0,1)/winxp.vhd" floppy=(hd0,1)/vboot/vboot.img cdrom=(hd0,1)/winxp-sp2.iso boot=cdrom 熟悉命令后可以更改其他磁盘,其他文件名。 重启 然后选择 VBoot -VHD Boot 下一个菜单中选择 "xp install step1" 安装过程中注意选择磁盘,一般是最后一个未划分区域 安装过程要重启,接着选择菜单 "xp install step2" 继续安装到完成 选择 "xp sp2"菜单进入系统 ==================================== 对于第5部: 原有的Windows移动到VHD走捷径的安装方法: 因为要VHD启动,所以需要安装磁盘驱动,VDM加载磁盘VBOOT\vboot.img,对于03加载vboot-2k3.img 然后用控制面板--添加硬件--添加文件指向img中的驱动文件,加入磁盘驱动。 用PE3.X来挂载VHD文件,然后复制硬盘上的系统到vhd文件中去。 可能要处理一下[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]与盘符有关的信息,删除掉原来的C盘符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值