Debugging Tools for Windows

添加引导入口

自定义引导选项的第一步就是为某个操作系统添加新的引导入口。引导入口是为操作系统或引导程序定义的一组加载配置。

一个操作系统可以有多个引导入口,每个的参数都可以不同。Windows安装程序在安装系统的时候创建了标准的引导入口,但是还可以通过修改引导选项自己添加新的、自定义的入口。

也可以在Windows 安装程序创建的入口中添加、删除或修改选项。但是最好保持标准入口,而添加一个新的入口来修改。

新建引导入口,可以复制一个已存在的入口再修改它。

在Windows Vista之前的系统使用Bootcfg

可以使用Bootcfg /copy 命令来复制引导入口,这一操作是和固件无关的。

下面的Bootcfg命令将第二个引导入口复制成新的入口。/ID 参数指定被复制的入口的行号,/d (说明)命令指定新入口的友好名,友好名必须用引号括起来。

bootcfg /copy /ID 2 /d "Microsoft Windows XP Professional - new"

如果添加过从来不使用的引导入口,一定要删除它们,特别是在使用有限的EFI NVRAM资源的机器上。使用Bootcfg /delete 命令来删除一个不使用的入口。

如果一个系统有多个引导入口,一定要将首选的入口设置为默认入口。更多操作说明,查看修改默认引导入口

查看完整的Bootcfg操作说明,查看帮助和支持。示例可以查看使用引导参数

在Windows Vista之前的系统中编辑Boot.ini文件

Boot.ini中添加新入口,可以复制并粘贴某个入口。然后将新入口的友好名修改得在文件和引导菜单中能轻易识别。友好名是在引导入口中被引号括起来的字符串。

例如,下面的Boot.ini文件中,原来的Windows XP入口被复制了一份,并且新入口的友好名被修改了。新创建的入口是用粗体字标识的。

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect 
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect 
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional - new" /fastdetect

在Windows Vista中新建引导入口

在Windows Vista中使用BCDEdit来修改引导选项。添加新的入口,需要用管理员权限打开一个命令提示符窗口(右键点击命令提示符并在快捷菜单中点击以管理员方式运行)。

使用BCDEdit和/copy参数复制已有的入口。例如,下面的命令中,BCDEdit复制了{current}标识的,最近一次被Windows使用过的引导入口,并创建了新入口。/d参数指定新引导入口的名字为DebugEntry。

bcdedit /copy {current} /d "DebugEntry"

如果命令成功,BCDEdit显示类似下面的信息(中文系统上是中文说明。— 译者):

The entry was successfully copied to {49916baf-0e08-11db-9af4-000bdbd316a0}.

复制了引导菜单上的入口之后,新入口会自动被添加到引导菜单末尾。

前面的信息中的GUID(大括号({})中的内容)是新入口的标识。可以用它来在所有BCDEdit命令中指明该入口

如果该命令失败,确认是否以管理员权限运行命令提示符窗口,以及包括{current}两端的大括号在内的所有命令参数都正确拼写了。

也可以使用/create 选项新建引导入口。例如下面的命令新建了一个名为"My Windows Vista"的引导入口:

bcdedit /create /d "My Windows Vista" /application osloader

使用/create 参数时,新的引导入口不会自动被加入引导菜单。可以用/displayorder 选项将新入口添加到引导菜单中。可以以任何顺序排列引导入口。

查看关于/create命令参数的更多信息,可以在命令提示符窗口键入bcdedit /? /create

编辑Windows Vista的引导菜单

Windows Vista中,新引导入口不会自动添加到引导菜单,可以以任何顺序排列引导入口。

使用/displayorder 选项来设置多重引导菜单中引导管理器显示入口的顺序。该命令语法如下:

bcdedit /displayorder {ID} {ID} ...

ID是引导入口的GUID或类似{current}这样的保留标识。用空格分开每个标识符,并必须包含大括号({})。

例如,使用下面的命令来在{current}之后添加DebugEntry 引导入口:

bcdedit /displayorder {current} {49916baf-0e08-11db-9af4-000bdbd316a0}

也可以使用/addlast, /addfirst,和/remove选项来 在菜单中排序或删除条目。例如下面的命令将DebugEntry 引导入口设置为菜单的最后一条:

bcdedit /displayorder {49916baf-0e08-11db-9af4-000bdbd316a0} /addlast 

想验证显示顺序是否正确,可以使用下面的命令:

bcdedit

键入bcdedit 并不使用其它参数时,BCDEdit按照引导菜单中的顺序显示引导管理器入口和引导入口。

Windows引导管理器入口也包含引导菜单显示顺序,如下所示


Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=C:
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
displayorder            {current}
                        {18b123cd-2bf6-11db-bfae-00e018e2b8db}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Microsoft Windows Vista
locale                  en-US
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {d7094401-2641-11db-baba-00e018e2b8db}
nx                      OptIn

Windows Boot Loader
-------------------
identifier              {18b123cd-2bf6-11db-bfae-00e018e2b8db}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Debugger Boot
locale                  en-US
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {d7094401-2641-11db-baba-00e018e2b8db}
nx                      OptIn
debug                   Yes



Build machine: CAPEBUILD