在之前基于NT的Windows系统中,Windows使用Ntldr作为Boot Loader来启动系统,――所谓boot loader,在指在操作系统内核运行之前执行的一段小程序,系统通过它来初始化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最终调用操作系统内核准备好正确的环境。――在启动过程中,Ntldr 使用Boot.ini 文件来确定在启动/引导过程中要显示哪些操作系统选项,我们对启动选项的设置可以通过修改boot.ini文件中相应内容实现。
在Vista和Windows7中,微软引入了一种全新的boot loader架构, Windows Boot Manager (Bootmgr.exe)。与Ntldr严重地依赖于硬件不同的是,Vista和Windows7中的新架构可以实现完整的硬件独立性,且能够与多种操作系统无缝结合,让Windows Vista的启动/引导过程更加快速与安全。同时,将之前Windows 系统中由Boot.ini管理的内容移交给新的Boot Configuration Data (BCD : 启动设置数据),当然,也提供了新的启动选项编辑工具,BCDEdit (BCDEdit.exe),来管理启动设置。
BCDEdit : Vista和Windows 7启动设置编辑工具
在传统的基于BIOS的计算机中,如果只安装Vista和Windows 7,除了极早期的Vista和Windows 7测试版本外,您将会发现 Boot.ini 文件已经彻底从系统中消失;如果系统中安装了Vista和Windows 7和之前的WIndows系统如Windows XP,虽然仍可找到 Boot.ini 文件,不过,这个文件只作用于那些系统,而不会对 Vista和Windows 7的启动有任何影响。
在基于EFI (Extensible Firmware Interface : 可扩展固件接口,以后采用这种接口的PC会越来越多 )的计算机中,Boot.ini 文件则更不复存在,在基于EFI的系统中,启动选项被贮存在主板的存储器中。此时要修改启动选项,要么通过能够读写NVRAM的工具如NvrBoot,要么使用上文提到的BCDEdit。
由此可见,在Vista和Windows 7中,想要再像之前Windows XP中那样通过一个简单的文本编辑器来修改Boot.ini的方式来管理启动选项已经不可能了,要对启动设置进行修改,只能使用命令格式相对要复杂得多的BCDEdit。
此外,微软也在Vista和Windows7 中提供了可通过WMI (Windows Management Instrumentation : Windows管理规范)调用的 BCD 类,通过它可以用编程的方式修改BCD数据,不过,相信对绝大多数用户而言,这更是不可能的任务。
启动BCDEdit
需要注意的是,BCDEdit不是一个运行于图形界面下的程序,而是一个命令行工具,该文件 (Bcdedit.exe) 位于 “\Windows\System32”目录下。
要执行BCDEdit,首先应进入命令行窗口,并要将操作用户并提升至管理员权限。在命令行窗口中,输入“ bcdedit” 即可。
BCDEdit命令简介
在BCD中,硬盘或分区的GUID可分为如下几类
{legacy} :指存在上一代Windows系统如Windows XP的硬盘或分区;
{default} : 默认操作系统所在硬盘或分区;
{current} : 当前硬盘或分区;
{c34b751a-ff09-11d9-9e6e-0030482375e7} : 类似于这个格式的GUID指其他安装了操作系统的硬盘或分区。
使用BCDEdit备份与恢复启动选项
在对Vista和Windows 7的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。
bcdedit /export “D:\BCD Backup\Bcd Backup” : 将启动设置备份到D盘 “BCD Backup” 目录下;
bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢复之前备份在D盘 “BCD Backup”目录下启动选项。
使用BCDEdit修改启动选项的常用命令格式
bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系统在启动菜单中的显示内容
bcdedit /set {current} description “Vista和Windows 7 ″ : 修改当前启动硬盘或分区上的操作系统在启动菜单中的显示内容
修改安装于其他硬盘或分区的系统在启动菜单中的显示内容,使用这项命令时一定要注意该硬盘/分区的GUID输入正确,相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。
bcdedit /default {current} : 将当前启动硬盘/分区中的操作系统设置为默认启动的系统
bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 设置指定GUID上的操作系统为默认启动的系统
bcdedit /displayorder : 设置启用菜单中各项的显示顺序,如:
bcdedit.exe /displayorder {legacy} {current}
将首先显示Windows XP,然后再显示默认启动的系统如Vista和Windows7
bcdedit /timeout 15 : 将默认的启动菜单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值