美文网首页windows、mac实用知识Windows
删除BCD和NVRAM中的重复固件对象

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

作者: 东京的雨不会淋湿首尔 | 来源:发表于2018-10-16 11:26 被阅读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。

    重新启动系统。

    相关文章

      网友评论

        本文标题:删除BCD和NVRAM中的重复固件对象

        本文链接:https://www.haomeiwen.com/subject/ojoczftx.html