在 Windows 中添加自定义启动条目可让你为作系统创建多个启动配置。 本指南介绍如何使用 BCDEdit 命令为多启动环境、调试方案和测试配置创建和管理启动条目。
Windows Installer 在安装过程中创建标准启动项,但你可以使用 BCDEdit 命令创建其他自定义条目,以有效管理多启动环境。
可以添加、删除和更改 Windows Installer 创建的启动条目中的选项。 但是,谨慎的做法是保留标准条目,并添加一个单独的自定义条目。
若要添加启动项,请复制现有启动项,然后修改副本。
本主题适用于 Windows Vista 及更高版本、Windows Server 2008 及更高版本以及 Windows 恢复环境。
先决条件
在开始之前,请确保具备:
- 用于修改 BCD 的管理权限
- BitLocker 和安全启动(Secure Boot)被禁用或暂停(如果适用)
- 对提升的命令提示符的访问权限
有关准备系统的详细信息,请参阅 “编辑启动选项”。
警告
使用 BCDEdit 修改 BCD 需要管理员权限。 更改某些启动项选项可能会导致计算机无法运行。 作为基本启动设置的更安全替代方法,请考虑使用系统配置实用工具(MSConfig.exe)。
添加一个新的启动项
在 Windows 中,使用 BCDEdit 修改启动选项。 若要添加新启动项,请打开具有提升权限的命令提示符窗口(选择并按住(或右键单击)命令提示符,并从快捷菜单中选择 以管理员身份运行)。
注意
在设置 BCDEdit 选项之前,可能需要在计算机上禁用或挂起 BitLocker 和安全启动。
创建新启动项的最简单方法是复制现有条目,然后根据需要对其进行修改。
复制现有启动项:
打开具有提升权限的命令提示符,使用带有 /copy 选项的 BCDEdit:
bcdedit /copy {current} /d "DebugEntry"
此命令复制当前的 Windows 启动项,并创建名为“DebugEntry”的新条目。
如果命令成功,BCDEdit 将显示类似于以下内容的消息:
The entry was successfully copied to {55556666-ffff-7777-aaaa-8888bbbb9999}.
当复制出现在启动菜单上的启动加载程序条目时,该副本会自动添加为启动菜单的最后一项。
前一条消息中的 GUID(出现在大括号 {} 之间)是新启动项的标识符。
/copy 选项为启动项创建新的 GUID。 可以在所有后续的 BCDEdit 命令中使用标识符来表示条目。
如果命令失败,请确保您是在具有管理员权限的命令提示符窗口中运行,并且确保所有命令参数的拼写正确,包括 {current}周围的大括号。
注意
如果使用 Windows PowerShell,则必须在启动项标识符周围使用引号,例如:“{49916baf-0e08-11db-9af4-000bdbd316a0}” 或 “{current}”。
还可以使用 /create 选项添加启动项。 此方法比较困难,因为需要提供有关启动项类型的其他信息。 还需要指定 /application、/inherit或 /device 选项。 例如,下面创建了一个名为“My Windows Vista”的新操作系统启动条目:
bcdedit /create /d "My Windows Vista" /application osloader
当使用 /create 选项时,新的启动加载程序条目不会自动添加到启动菜单中。 /create 选项为启动项创建新的 GUID。 必须使用 /displayorder 选项将新的启动项添加到启动菜单。 可以按任意顺序放置启动加载程序条目。
有关 /create 命令参数的信息,请在命令提示符窗口中键入 bcdedit /? /create。
编辑启动菜单
在 Windows 中,不会自动将新的启动加载程序条目添加到启动菜单中。 可以使用 /displayorder 选项设置启动管理器在多启动菜单上显示启动项的顺序。 该命令具有以下语法:
bcdedit /displayorder {ID} {ID} ...
可以按任意顺序放置启动加载程序条目。
ID 是启动项的 GUID 或保留标识符,例如 {current}。 用空格分隔每个标识符。 务必包含大括号 ({})。
例如,若要在 {current} 条目之后将 DebugEntry 启动项添加到启动菜单,请使用以下命令(请记住在 Windows PowerShell 中使用 "{guid}"):
bcdedit /displayorder {current} {55556666-ffff-7777-aaaa-8888bbbb9999}
还可以使用选项 /addlast、/addfirst,以及 /remove 对菜单中的项目进行排序和删除。 例如,以下命令将 DebugEntry 启动项添加为菜单上的最后一项:
bcdedit /displayorder {55556666-ffff-7777-aaaa-8888bbbb9999} /addlast
移除和删除启动项
以下命令从启动菜单中删除 {44445555-eeee-6666-ffff-7777aaaa8888} 启动项。
bcdedit /displayorder {44445555-eeee-6666-ffff-7777aaaa8888} /remove
使用 /displayorder 和 /remove 选项删除指定的启动项时,该启动项将从启动菜单中移除,但仍位于 BCD 存储中。 若要从启动菜单和应用商店中完全删除启动加载程序条目,请使用 /delete 选项。
bcdedit /delete {55556666-ffff-7777-aaaa-8888bbbb9999}
若要验证显示顺序是否正确,请使用以下命令:
bcdedit
键入 bcdedit 而不附加参数时,BCDEdit 会按照它们在菜单中出现的顺序显示启动管理器条目和启动加载程序条目。
Windows 启动管理器条目还包括启动菜单显示顺序,如以下示例所示。
## Windows Boot Manager
identifier {bootmgr}
device partition=C:
description Windows Boot Manager
locale en-US
inherit {globalsettings}
isolatedcontext Yes
default {current}
resumeobject {33334444-dddd-5555-eeee-6666ffff7777}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
## Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {22223333-cccc-4444-dddd-5555eeee6666}
nx OptIn
## Windows Boot Loader
-------------------
identifier {00001111-aaaa-2222-bbbb-3333cccc4444}
device partition=C:
path \Windows\system32\winload.exe
description Debugger Boot
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {11112222-bbbb-3333-cccc-4444dddd5555}
nx OptIn
debug Yes