http://os.yesky.com/windowsvista/17/2619517.shtml
在之前基于NT的Windows 系统中,Windows 使用 Ntldr作为 Boot Loader来启动系统,
——所谓boot loader ,在指在操作系统内核运行之前执行的一段小程序,系统通过它来初始
化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最
终调用操作系统内核准备好正确的环境。——在启动过程中,Ntldr 使用 Boot.ini 文件来确
定在启动/ 引导过程中要显示哪些操作系统选项,我们对启动选项的设置可以通过修改
boot.ini文件中相应内容实现。
在Windows Vista中,微软引入了一种全新的 boot loader 架构, Windows Boot Manager
(Bootmgr.exe) 。与 Ntldr严重地依赖于硬件不同的是,Windows Vista中的新架构可以实现完
整的硬件独立性,且能够与多种操作系统无缝结合,让Windows Vista的启动/ 引导过程更加
快速与安全。同时,将之前 Windows 系统中由Boot.ini 管理的内容移交给新的 Boot
Configuration Data (BCD : 启动设置数据),当然,也提供了新的启动选项编辑工具,BCDEdit
(BCDEdit.exe),来管理启动设置。
BCDEdit : Windows Vista启动设置编辑工具
在传统的基于BIOS的计算机中,如果只安装Windows Vista,除了极早期的Windows
Vista测试版本外,您将会发现 Boot.ini 文件已经彻底从系统中消失;如果系统中安装了
Windows Vista和之前的WIndows 系统如 Windows XP,虽然仍可找到 Boot.ini 文件,不过,
这个文件只作用于那些系统,而不会对 Windows Vista 的启动有任何影响。
在基于EFI (Extensible Firmware Interface : 可扩展固件接口,以后采用这种接口的 PC
会越来越多 ) 的计算机中,Boot.ini 文件则更不复存在,在基于 EFI 的系统中,启动选项被
贮存在主板的存储器中。此时要修改启动选项,要么通过能够读写 NVRAM 的工具如
NvrBoot,要么使用上文提到的 BCDEdit 。
由此可见,在Windows Vista中,想要再像之前 Windows XP中那样通过一个简单的文
本编辑器来修改Boot.ini的方式来管理启动选项已经不可能了,要对启动设置进行修改,只
能使用命令格式相对要复杂得多的BCDEdit 。
此外,微软也在 Windows Vista 中提供了可通过 WMI (Windows Management
Instrumentation : Windows 管理规范)调用的 BCD 类,通过它可以用编程的方式修改 BCD
数据,不过,相信对绝大多数用户而言,这更是不可能的任务。
启动BCDEdit
需要注意的是,BCDEdit 不是一个运行于图形界面下的程序,而是一个命令行工具,该
文件 (Bcdedit.exe) 位于 “\Windows\System32” 目录下。
要执行BCDEdit ,首先应进入命令行窗口,并要将操作用户并提升至管理员权限。
1
在命令行窗口中,转到系统目录如 “C:/windows/system32”下,然后输入“ bcdedit” 即可。
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 命令
2
• 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 修复硬盘/ 分区结构错误
3
在对启动选项的修改过程中,如添加或删除某个硬盘/ 分区时,可能会因操作中的不慎
导致硬盘/ 分区结构的混乱,除了采用恢复修改前的备份方法外,也可以首先使用BCDEdit
来尝试一下修复。
具体方法如下:
1. X:\>X:\boot\fixntfs.exe -lh -all : 这时的“ X: ”指引导目录 “boot” 所在的硬盘/ 分区;
2. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 将指定
GUID 的分区设为启动分区。注意,这里的“ X: ”的GUID 须与指定值不同,同时,
运行该命令后,必须接着运行下面的osdevice 命令;
3. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 将指定
GUID 的分区设为启动分区。注意,这个命令必须与上面的device 命令配对使用,
同时“ X: ”的GUID 须与指定值不同
在之前基于NT的Windows 系统中,Windows 使用 Ntldr作为 Boot Loader来启动系统,
——所谓boot loader ,在指在操作系统内核运行之前执行的一段小程序,系统通过它来初始
化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最
终调用操作系统内核准备好正确的环境。——在启动过程中,Ntldr 使用 Boot.ini 文件来确
定在启动/ 引导过程中要显示哪些操作系统选项,我们对启动选项的设置可以通过修改
boot.ini文件中相应内容实现。
在Windows Vista中,微软引入了一种全新的 boot loader 架构, Windows Boot Manager
(Bootmgr.exe) 。与 Ntldr严重地依赖于硬件不同的是,Windows Vista中的新架构可以实现完
整的硬件独立性,且能够与多种操作系统无缝结合,让Windows Vista的启动/ 引导过程更加
快速与安全。同时,将之前 Windows 系统中由Boot.ini 管理的内容移交给新的 Boot
Configuration Data (BCD : 启动设置数据),当然,也提供了新的启动选项编辑工具,BCDEdit
(BCDEdit.exe),来管理启动设置。
BCDEdit : Windows Vista启动设置编辑工具
在传统的基于BIOS的计算机中,如果只安装Windows Vista,除了极早期的Windows
Vista测试版本外,您将会发现 Boot.ini 文件已经彻底从系统中消失;如果系统中安装了
Windows Vista和之前的WIndows 系统如 Windows XP,虽然仍可找到 Boot.ini 文件,不过,
这个文件只作用于那些系统,而不会对 Windows Vista 的启动有任何影响。
在基于EFI (Extensible Firmware Interface : 可扩展固件接口,以后采用这种接口的 PC
会越来越多 ) 的计算机中,Boot.ini 文件则更不复存在,在基于 EFI 的系统中,启动选项被
贮存在主板的存储器中。此时要修改启动选项,要么通过能够读写 NVRAM 的工具如
NvrBoot,要么使用上文提到的 BCDEdit 。
由此可见,在Windows Vista中,想要再像之前 Windows XP中那样通过一个简单的文
本编辑器来修改Boot.ini的方式来管理启动选项已经不可能了,要对启动设置进行修改,只
能使用命令格式相对要复杂得多的BCDEdit 。
此外,微软也在 Windows Vista 中提供了可通过 WMI (Windows Management
Instrumentation : Windows 管理规范)调用的 BCD 类,通过它可以用编程的方式修改 BCD
数据,不过,相信对绝大多数用户而言,这更是不可能的任务。
启动BCDEdit
需要注意的是,BCDEdit 不是一个运行于图形界面下的程序,而是一个命令行工具,该
文件 (Bcdedit.exe) 位于 “\Windows\System32” 目录下。
要执行BCDEdit ,首先应进入命令行窗口,并要将操作用户并提升至管理员权限。
1
在命令行窗口中,转到系统目录如 “C:/windows/system32”下,然后输入“ bcdedit” 即可。
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 命令
2
• 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 修复硬盘/ 分区结构错误
3
在对启动选项的修改过程中,如添加或删除某个硬盘/ 分区时,可能会因操作中的不慎
导致硬盘/ 分区结构的混乱,除了采用恢复修改前的备份方法外,也可以首先使用BCDEdit
来尝试一下修复。
具体方法如下:
1. X:\>X:\boot\fixntfs.exe -lh -all : 这时的“ X: ”指引导目录 “boot” 所在的硬盘/ 分区;
2. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 将指定
GUID 的分区设为启动分区。注意,这里的“ X: ”的GUID 须与指定值不同,同时,
运行该命令后,必须接着运行下面的osdevice 命令;
3. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 将指定
GUID 的分区设为启动分区。注意,这个命令必须与上面的device 命令配对使用,
同时“ X: ”的GUID 须与指定值不同