windows、mac实用知识Windows

删除BCD和NVRAM中的重复固件对象

2018-10-16  本文已影响0人  东京的雨不会淋湿首尔

前言:在某些基于统一可扩展固件接口(UEFI)的计算机上,固件会在计算机启动时为本地设备(如CD-ROM或硬盘驱动器)创建非易失性随机存取存储器(NVRAM)条目。Bcdedit将NVRAM中的固件命名空间对象与系统引导配置数据(BCD)同步。执行bcdedit / set或/ enum命令时,Bcdedit会打开系统BCD存储。当bcdedit打开BCD时,它会将NVRAM中的条目与BCD中的条目进行比较。NVRAM中由BCD中不存在的固件创建的条目将添加到系统BCD中。当bcdedit关闭系统BCD,BCD中不在NVRAM中的任何引导管理器条目都会添加到NVRAM中。
简单的说我遇到的情况就是使用EasyUefi的时候提示nvram空间不足,提示我清理空间。
操作步骤如下:

1.管理员权限运行cmd,输入

Bcdedit /enum firmware

以下示例类似于bcdedit / enum firmware命令的输出:

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 / 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      

可能存在具有不同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

2.删除重复的条目

使用以下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文件中添加命令行以删除Firmware Boot Manager显示顺序下列出的重复固件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}的条目

添加最后一个命令到RemoveDups.cmd以导入新的BCD文件,使用/ clean选项删除所有NVRAM条目作为导入操作的一部分:

Bcdedit /import newbcd /clean

保存文件,并在命令提示符下运行RemoveDups.cmd从删除所有重复的条目newbcd存储和导入newbcd商店系统BCD。

重新启动系统。

上一篇下一篇

猜你喜欢

热点阅读