|
http://technet.microsoft.com/en-us/library/cc749510.aspx
翻译的结果:
----------------------------------------------------------------------------------------------
删除 BCD 和 NVRAM 中的重复固件对象
0(共 1)对本文的评价是有帮助 - 评价此主题
应用到: Windows Vista
在某些基于统一可扩展固件接口 (UEFI) 的计算机上,固件会在计算机启动时为本地设备(如 CD-ROM 或硬盘驱动器)创建稳定随机存取内存 (NVRAM) 项。Bcdedit 会将 NVRAM 中的固件命名空间对象与系统启动配置数据 (BCD) 同步。当您执行 bcdedit /set 或 /enum 命令时,Bcdedit 会打开系统 BCD 存储。当 bcdedit 打开 BCD 时,它将 NVRAM 中的项与 BCD 中的项进行比较。如果 NVRAM 中由固件创建的项在 BCD 中不存在,则将它们添加到系统 BCD。当 bcdedit 关闭系统 BCD 时,BCD 中包含的但 NVRAM 中不存在的任何启动管理器项将被添加到 NVRAM。bcdedit /import 命令可将所有固件命名空间对象从系统 BCD 复制到 NVRAM 中。
如果执行多次 bcdedit /import 操作,则 NVRAM 可能包含系统上设备(如 CD ROM 和硬盘)的多个项。多次 /import 操作可能会导致许多重复项。以下命令用于枚举 BCD 中的固件命名空间对象:
Bcdedit /enum firmware
以下示例类似于 bcdedit /enum 固件命令的输出:
Firmware Boot Manager
---------------------
identifier {fwbootmgr}
displayorder {bootmgr}
{93cee840-f524-11db-af62-aa767141e6b3}
{93cee841-f524-11db-af62-aa767141e6b3}
{93cee842-f524-11db-af62-aa767141e6b3}
{93cee844-f524-11db-af62-aa767141e6b3}
{93cee843-f524-11db-af62-aa767141e6b3}
timeout 2
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Firmware Application (101fffff)
-------------------------------
identifier {93cee840-f524-11db-af62-aa767141e6b3}
description Primary Master CDROM
Firmware Application (101fffff)
-------------------------------
identifier {93cee841-f524-11db-af62-aa767141e6b3}
description Harddisk 4
Firmware Application (101fffff)
-------------------------------
identifier {93cee842-f524-11db-af62-aa767141e6b3}
description Internal EFI Shell
Firmware Application (101fffff)
-------------------------------
identifier {93cee843-f524-11db-af62-aa767141e6b3}
description Floppy
Firmware Application (101fffff)
-------------------------------
identifier {93cee844-f524-11db-af62-aa767141e6b3}
description Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/CDROM(Entry1)
如果多次使用 bcdedit /import,则 NVRAM 和系统 BCD 中可能存在多个固件对象。如果将 BCD 存储从主计算机导入到目标计算机,则同一设备可能存在多个固件项。如果存在多个固件项,则看到的 bcdedit /enum 固件输出将包含与以下示例类似的固件项:
Firmware Boot Manager
---------------------
identifier {fwbootmgr}
displayorder {bootmgr}
{93cee840-f524-11db-af62-aa767141e6b3}
{93cee841-f524-11db-af62-aa767141e6b3}
{93cee842-f524-11db-af62-aa767141e6b3}
{93cee844-f524-11db-af62-aa767141e6b3}
{93cee843-f524-11db-af62-aa767141e6b3}
{8b87c5a0-f2f2-11db-9717-f87ee6ea6002}
{8b87c5a1-f2f2-11db-9717-f87ee6ea6002}
{8b87c5a2-f2f2-11db-9717-f87ee6ea6002}
{8b87c5a3-f2f2-11db-9717-f87ee6ea6002}
{8b87c5a4-f2f2-11db-9717-f87ee6ea6002}
timeout 2
每个设备可能存在具有不同 GUID 的两个或多个项。例如,Primary Master CDROM 可能包括多个项:
Firmware Application (101fffff)
-------------------------------
identifier {93cee840-f524-11db-af62-aa767141e6b3}
description Primary Master CDROM
Firmware Application (101fffff)
-------------------------------
identifier {8b87c5a0-f2f2-11db-9717-f87ee6ea6002}
description Primary Master CDROM
通过使用多个 Bcdedit 命令,可以删除 NVRAM 和 BCD 系统存储中的多个项或重复项。若要对您希望删除的多个对象项使用正确的对象 GUID,则可能需要手动创建命令脚本。
删除重复项
通过使用以下 Bcdedit 命令,保存当前系统存储的副本:
Bcdedit /export savebcd
稍后可以使用此文件以用于恢复目的。
制作 SaveBCD 文件的副本以用于 Bcdedit 删除操作:
Copy savebcd newbcd
枚举系统 BCD 存储中的固件命名空间对象,并将输出结果保存到文本文件:
Bcdedit /enum firmware > enumfw.txt
使用 Notepad.exe 打开 Enumfw.txt,以查看要删除的重复 GUID 项的列表。查看计算机上的 GUID 项的列表。
使用记事本创建新命令文件。将该文件另存为 RemoveDups.cmd。
在 RemoveDups.cmd 文件中添加一个命令行,以删除固件启动管理器显示顺序下列出的重复固件 GUID:
Bcdedit /store newbcd /delete {93cee840-f524-11db-af62-aa767141e6b3}
对要删除的每个 GUID 重复该命令。对于上述示例,将以下命令添加到 RemoveDups.cmd:
Bcdedit /store newbcd /delete {93cee841-f524-11db-af62-aa767141e6b3}
Bcdedit /store newbcd /delete {93cee842-f524-11db-af62-aa767141e6b3}
Bcdedit /store newbcd /delete {93cee843-f524-11db-af62-aa767141e6b3}
Bcdedit /store newbcd /delete {93cee844-f524-11db-af62-aa767141e6b3}
Bcdedit /store newbcd /delete {8b87c5a1-f2f2-11db-9717-f87ee6ea6002}
Bcdedit /store newbcd /delete {8b87c5a2-f2f2-11db-9717-f87ee6ea6002}
Bcdedit /store newbcd /delete {8b87c5a3-f2f2-11db-9717-f87ee6ea6002}
Bcdedit /store newbcd /delete {8b87c5a4-f2f2-11db-9717-f87ee6ea6002}
在 EFI 固件初始化本地设备的 NVRAM 项的计算机上,可以根据需要删除所有 GUID 项。请不要删除 {bootmgr} 的项。
通过在导入操作过程中使用 /clean 选项删除所有 NVRAM 项,将最后一个命令添加到 RemoveDups.cmd 以导入新 BCD 文件:
Bcdedit /import newbcd /clean
保存该文件,然后在命令提示符下运行 RemoveDups.cmd,以便从 newbcd 存储中删除所有重复项,并将 newbcd 存储导入到系统 BCD。
重新启动系统。在重新启动过程中,EFI 固件重新初始化其固件对象 GUID 与连接到系统的设备相对应的 NVRAM。使用 bcdedit /enum 固件命令验证是否已删除所有的重复固件项。
请参阅
部署到基于 UEFI 的计算机
|
|