无忧启动论坛

标题: Vista_PE 与 WinXP_PE共存 [打印本页]

作者: sxpzp    时间: 2007-1-11 19:43
标题: Vista_PE 与 WinXP_PE共存
我把老毛桃的XPE文件复制到C盘(用的是那个四合一版),接着又把Vista_PE6000的全部文件复制到C盘,然后运行bootsect /nt600 C: ,重启后,竟然出现了Windows Boot Manager ,里面包括两个启动选项:Vista_PE与WinXP_PE,实现了Vista_PE与WinXP_PE共存。以后如果想启动哪个,就选哪个,很是方便。美中不足的是启动器是英文的,我试了很多次替换,都不能换成中文的。请哪位高手指点。先谢过了。
作者: haonan    时间: 2007-1-11 20:35
用注册表编辑器加载boot里的bcd,然后定位到 HKEY_LOCAL_MACHINE\BCD00000000 键,把这个键展开以后,就可以看到完整的BCD文件的内容。这是因为 Windows Vista 已经把BCD文件加载到系统的HKEY_LOCAL_MACHINE根键下面了。

       关于BCD文件,我们需要关注的内容只有Objects下的内容,在Objects下,有很多以CLSID命名的子键,每一个子键均有其特殊的含义,对于Windows启动来说,启动项目的子键总是成对出现的。如上图所示,{50c73d4c-e6b3-11da-bc73-d30cdb1ce216}和{50c73d4d-e6b3-11da-bc73-d30cdb1ce216}就是一对。唯一的差别只在于第一个段的最后一个字符不同,其余的内容完全相同。Windows Vista 的Boot Manager将根据CLSID来识别不同的启动项目。

       展开每一个CLSID键,一般都会有2个字键:Description和Elements。在Elements键下方,会有树木不等的子键存在,每一个子键都代表不同的含义。有一些是显示的内容,有一些是指向一些特殊的程序或目录用于Windows Vista 的启动,剩下的一些和Windows Vista 的启动参数有关。

       例如:


QUOTE:
☆12000004键下的Element字符串内容就是用于设定在 Boot Manager 的启动菜单上显示内容的。如下图所示,我已经将Windows Vista安装以后默认的启动菜单上的Microsoft Windows 字样修改为 Microsoft Windows Vista Beta 2 X86 EN。这样在系统启动的时候,就可以很明确的知道安装的Windows Vista是什么版本了。

☆12000005 键用于指定Boot Manager的语言,如果安装了 Windows Vista 的简体中文版本,那么这里的内容一定是 zh-CN,如果你想使用英文版的Boot Manager,那么只需要修改为 en-US即可。不过前提是需要在C:\Boot 目录下有一个 en-US的目录,而且里面有相应的en-US语言的资源文件。

☆42000002键用于指定 Windows Vista 的引导程序。在Windows Vista里面,引导程序已经改为 winload.exe。

☆而 22000002节点用于指定 Windows Vista 安装以后的系统目录的名字,默认是 Windows目录。

☆如果休眠模式,那么22000002节点用于指向休眠文件的文件名,默认是 hiberfil.sys文件。

☆42000002节点用于设置从休眠模式唤醒时由哪个程序完成休眠状态à正常状态的转化。在Windows Vista 里面,这个程序叫做 winresume.exe。

☆如果安装了早期的采用 NTLDR引导的操作系统,如Windows 2000/XP/Server 2003,那么Boot Manager将出现一个叫做{466f5a88-0af2-4f76-9038-095b170dc21c}的CLSID,这个CLSID用于代表采用NTLDR启动模式的操作系统的引导程序的名字。当用户从 Boot Manager里面选择 Earlier version of Windows菜单项目以后,Boot Manager将根据12000002节点指向的内容调用早期Windows操作系统的引导程序,默认为NTLDR。

☆{9dea862c-5cdd-4e70-acc1-f32b344d4795}是一个专用于代表 Windows Boot Manager的CLSID。

☆在{9dea862c-5cdd-4e70-acc1-f32b344d4795}键下面,有一个叫做24000001的子键,这个键用于指定将要显示在Windows Boot Manager上的操作系统启动菜单的CLISD编号。24000001子键的Element键是一个REG_MULTI_SZ类型的注册表键值,这表示可以写入多个内容。在我的系统上面,这个键值数据有3项,这代表了我的系统至少安装了3个操作系统,而且安装了采用NTLDR引导的早期的Windows操作系统。
作者: l1982012800    时间: 2007-1-11 22:52
原帖由 sxpzp 于 2007-1-11 07:43 PM 发表
美中不足的是启动器是英文的,我试了很多次替换,都不能换成中文的。请哪位高手指点。先谢过了。...

原帖由 haonan 于 2007-1-11 08:35 PM 发表
☆12000005 键用于指定Boot Manager的语言,如果安装了 Windows Vista 的简体中文版本,那么这里的内容一定是 zh-CN,如果你想使用英文版的Boot Manager,那么只需要修改为 en-US即可。不过前提是需要在C:\Boot 目录下有一个 en-US的目录,而且里面有相应的en-US语言的资源文件。

作者: sxpzp    时间: 2007-1-11 22:53
不好意思,请问启动Vista_PE后,怎么使用注册表编辑器加载BCD呢?
作者: l1982012800    时间: 2007-1-11 22:53
完成之后可以用BCDEDIT.EXE查看
BCDEDIT.EXE也可要命令行下编辑BCD

BCDEdit命令简介
通过命令行工具Bcdedit,我们可以添加、删除及修改BCD (Boot Configuration Data)中的对象。在BCD中,每个对象均具有唯一的 GUID (Globally Unique Identifier : 全局唯一标识符),如系统中的每块硬盘、每个分区的GUID (全局唯一标识符)均不相同。
在BCD中,硬盘或分区的GUID可分为如下几类:

{legacy}:指存在上一代Windows系统如Windows XP的硬盘或分区;
{default}: 默认操作系统所在硬盘或分区;
{current}: 当前硬盘或分区;
{c34b751a-ff09-11d9-9e6e-0030482375e7}: 类似于这个格式的GUID指其他安装了操作系统的硬盘或分区。 (注:这只是个例子,具体数字根据硬盘或分区参数会有相应变化,但均会类似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。

BCDEDIT命令

bcdedit /?: 显示命令帮助
bcdedit.exe /? CREATESTORE: 显示命令参数“ CREATESTORE ”的详细信息,——当然,“ CREATESTORE ”也只是示例,使用中对其他任何可用参数也均可使用类似格式查看该参数的具体说明。
bcdedit 或 bcdedit /enum all: 显示Windows Vista系统当前的启动设置数据,这时系统中所有安装了操作系统的硬盘或分区均会显示相应的 GUID 标识,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。
使用BCDEdit备份与恢复启动选项
在对Windows Vista的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。

bcdedit /export “D:\BCD Backup\Bcd Backup”: 将启动设置备份到D盘 “BCD Backup” 目录下;
bcdedit /import “D:\BCD Backup\Bcd Backup”: 恢复之前备份在D盘 “BCD Backup”目录下启动选项。
使用BCDEdit修改启动菜单选项
作为一种良好的操作习惯,在对Windows Vista的启动选项进行任何修改前,首先要对BCD中的启动选项进行备份,相应的命令上页我们已介绍过,在此不再赘述;其次,使用“bcdedit ”或“ bcdedit /enum all ”来查看系统中硬盘或分区的正确 GUID 标识,并将其记录下来。毕竟,BCDEdit只是一款命令行工具,我们操作时需手动输入类似“{xxxxxxxx-xxxx-xxxx-xxxx- xxxxxxxxxxxx}”这样的长字符串时,很容易出错,而这往往会导致Windows Vista启动失败。
下面详细介绍使用BCDEdit修改启动选项的常用命令格式:

bcdedit /set {legacy} Description “Windows XP Professional SP2”: 修改上一代操作系统在启动菜单中的显示内容,比如说我们也可将其修改为“Vista天地专用XP SP2”之类。注意,命令中的引号不可省略;
bcdedit /set {current} description “Windows Vista Build 5270 x86″: 修改当前启动硬盘或分区上的操作系统在启动菜单中的显示内容。注意,当前分区上的操作系统可能为Windows Vista,也可以是其他系统,当然,命令中的引号也不可省略;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Windows Vista Build 5270 x64”: 修改安装于其他硬盘或分区的系统在启动菜单中的显示内容,使用这项命令时一定要注意该硬盘/分区的GUID输入正确,相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。
bcdedit /default {current} : 将当前启动硬盘/分区中的操作系统设置为默认启动的系统;
bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2}: 设置指定GUID上的操作系统为默认启动的系统;
bcdedit /default {legacy}: 设置上一代Windows 系统Windows XP为默认启动的系统;
bcdedit /displayorder: 设置启用菜单中各项的显示顺序,如: bcdedit.exe /displayorder {legacy} {current}
将首先显示Windows XP,然后再显示默认启动的系统如Windows Vista;

bcdedit /timeout 15 : 将默认的启动菜单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值。
使用BCDEdit修复硬盘/分区结构错误
在对启动选项的修改过程中,如添加或删除某个硬盘/分区时,可能会因操作中的不慎导致硬盘/分区结构的混乱,除了采用恢复修改前的备份方法外,也可以首先使用BCDEdit来尝试一下修复。
具体方法如下:

X:\>X:\boot\fixntfs.exe -lh -all :这时的“ X: ”指引导目录 “boot” 所在的硬盘/分区;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 将指定GUID的分区设为启动分区。注意,这里的“ X: ”的GUID须与指定值不同,同时,运行该命令后,必须接着运行下面的osdevice命令;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X:: 将指定GUID的分区设为启动分区。注意,这个命令必须与上面的device命令配对使用,同时“ X: ”的GUID须与指定值不同。

[ 本帖最后由 l1982012800 于 2007-1-11 11:04 PM 编辑 ]

bcdedit.rar

60.41 KB, 下载次数: 83, 下载积分: 无忧币 -2


作者: sxpzp    时间: 2007-1-12 20:54
谢谢!我再细心研究研究!
作者: l1982012800    时间: 2007-1-12 22:15
bootmgr不能识别AVLDR.PE

[ 本帖最后由 l1982012800 于 2007-1-12 10:58 PM 编辑 ]

BOOTSECT.rar

31.75 KB, 下载次数: 54, 下载积分: 无忧币 -2


作者: greenangel    时间: 2007-1-13 08:14
原帖由 l1982012800 于 2007-1-12 10:15 PM 发表
bootmgr不能识别AVLDR.PE


bootmgr 能识别 ntldr 吗?
作者: evayou    时间: 2007-1-13 16:27
此贴应该好好研究研究
作者: sxpzp    时间: 2007-1-15 20:43
各位高手能否花点时间,把Vista_PE 与 WinXP_PE完美集成在一个ISO文件中,在启动时有多重启动菜单?我是一个菜菜鸟,弄了很旧仍搞不懂我不懂的东西,请不要笑话。
作者: haonan    时间: 2007-1-15 21:07
pe2.0弄到u盘启动太慢了
作者: lbnmg    时间: 2007-1-16 23:50
收到,学习去了




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3