无忧启动论坛

标题: DELL UEFI 固件应用程序NVRAM ISSUE [打印本页]

作者: tonykian    时间: 2023-5-4 07:43
标题: DELL UEFI 固件应用程序NVRAM ISSUE
本帖最后由 tonykian 于 2023-5-4 07:45 编辑

《最前》:
机器是DELL XPS13 9315,4年PSP定制机。驱动、BIOS均已更新到最新,机器出厂是Win11 Home,现已安装正版授权Win11 Pro纯净版。

《需求》:
PE下划好分区(EFI和MSR一共500M),纯净版Win+驱动和各类程序ghost镜像备份。如果系统有问题,ghost还原后PE下修复UEFI分区,快速恢复生产力。说白了,就是想一劳永逸,系统C盘ghost后,只要PE下修复ESP分区即可。

《求助的问题》:
《需求》满足后,U盘引导F12启动项时,突然发现原硬盘引导项莫名多了一个以其命名,但后缀为“1”的多余引导项,如下举例。
原硬盘引导项:UEFI ESE2A044-512 NVMe Phison 512GB 143A0727057700154080
莫名多余且需要干掉的引导项:UEFI ESE2A044-512 NVMe Phison 512GB 143A0727057700154080 1

《自救措施》:
1. 自己用bcdedit命令处理后(导入原BCD文件保存并复制,在复制的新BCD上修改配置,之后清除原BCD并导入新BCD),提示成功。但重启系统后,这个“1”的启动项依然重新出现;
2. 尝试过UEFI的安全启动时的命令操作,也试过关闭UEFI安全启动时的命令操作;
3. 各类修改UEFI启动名的软件试过无数,无论Win系统下操作还是PE下。结果就是,不但“1”没有消失,同时多了“1 2”、“1 3”、“1 4”...

《问题展现》:
a. 下图是bcdedit之前的状况:
b. 命令提示成功:
c. 命令成功后的检查,发现成功:

d. 系统重启后,故障问题再次复现,又恢复了“1”就不上图了...

《另外》:
1. Bcdedit之前,关闭了BIOS所有涉及到安全的选项,是不是有哪个忘记关了啊?请大佬指点啊
2. PE下查看了ESP分区,目录下ESP-EFI-Boot文件夹中的bootx64.efi修改日期没有变,与C盘(Windows所在)-Windows-Boot-bootmgfw.efi和bootmgr.efi日期一致;
3. 依然是查看ESP分区,目录下ESP-EFI-Microsoft-Boot文件夹中的BCD文件已修改为命令后的正确修改时间,可bootmgfw.efi和bootmgr.efi修改时间未变,与C盘的日期一致;

现在是真不知道咋办了,求指点~

作者: wintoflash    时间: 2023-5-4 08:19
用bcdedit删掉那个启动项后,再删掉ESP下\EFI\BOOT\BOOTX64.EFI呢?
作者: 2012andyle113    时间: 2023-5-4 08:25
UEFI启动项并不是BCD控制的,是BIOS或者现在应该叫UEFI启动控制的,直接在自检启动阶段操作硬盘启动项,或者进系统以后操作UEFI启动项,你改变了磁盘分区表,主板认为你添加了一个新硬盘所以会加个新的
作者: lx5815    时间: 2023-5-4 08:35
谢谢分享
作者: tonykian    时间: 2023-5-4 08:54
2012andyle113 发表于 2023-5-4 08:25
UEFI启动项并不是BCD控制的,是BIOS或者现在应该叫UEFI启动控制的,直接在自检启动阶段操作硬盘启动项,或 ...

非常感谢回复。
1. 之前我用Microsoft Surface,Win10。如我主题的“一劳永逸”思路,备份、还原(后修复ESP分区)均正常;
2. 现在我的思路是清除NVRAM残余信息或修改启动项,重装系统后一次性写入,但清除NVRAM需要厂家支持,现已做过BR2和RTC重置,但“1”还是复现;
3. 启动项修改,试过Windows下和PE下,用过easyuefi和bootice,修改当时的确是正确,但重启后会出现“2”或“3”。之后用bootedit命令直接将“1”、“2”、“3”全部干掉,再重启后只剩余“1”,彷佛就是死循环;

可能是我的思路不对,或操作方法不对,请大佬指点~
作者: tonykian    时间: 2023-5-4 09:08
本帖最后由 tonykian 于 2023-5-4 09:14 编辑
wintoflash 发表于 2023-5-4 08:19
用bcdedit删掉那个启动项后,再删掉ESP下\EFI\BOOT\BOOTX64.EFI呢?

1. 没用。如果ESP/BOOT/bootx64.efi缺失,会调用ESP/Microsoft/Boot/bootmgfw.efi启动;
2. 其实bootx64.efi和bootmgfw.efi是同一个文件,只不过马甲不一样而已;
3. 试过,作为第1点的验证,无效,至少我这台主机是这样。“1”依然复现;



作者: 窄口牛    时间: 2023-5-4 09:17
本帖最后由 窄口牛 于 2023-5-4 09:21 编辑

我也觉得删了bootx64.efi及其路径就可以了,删除掉以后断电放电再重启看看?
bcdedit管理efi引导项欠妥

作者: wintoflash    时间: 2023-5-4 09:23
tonykian 发表于 2023-5-4 09:08
1. 没用。如果ESP/BOOT/bootx64.efi缺失,会调用ESP/Microsoft/Boot/bootmgfw.efi启动;
2. 其实bootx64 ...

那反过来删掉bootmgfw.efi的启动项,并删掉bootmgfw.efi呢?
作者: 窄口牛    时间: 2023-5-4 09:25
wintoflash 发表于 2023-5-4 09:23
那反过来删掉bootmgfw.efi的启动项,并删掉bootmgfw.efi呢?

这么调皮的吗,bootx64会加载到bcd吗?没这么玩过。
作者: tonykian    时间: 2023-5-4 09:30
窄口牛 发表于 2023-5-4 09:17
我也觉得删了bootx64.efi及其路径就可以了,删除掉以后断电放电再重启看看?
bcdedit管理efi引导项欠妥

1. 通过我重置BR2和RTC上看,BIOS的重置与NVRAM的数据存放区是不同的。理应说,BIOS重置可以一扫空;
2. C盘下的bootmgfw.efi和bootmgr.efi与ESP下的属同文件,PE下ESP修复也是从C盘复制到ESP。所以能保证C盘的bootmgfw.efi和bootmgr.efi正确,镜像ghost后,应该就可以“一劳永逸”,在NVRAM无法重置的情况下。
作者: tonykian    时间: 2023-5-4 09:33
窄口牛 发表于 2023-5-4 09:25
这么调皮的吗,bootx64会加载到bcd吗?没这么玩过。

反向操作都试过。不知道是我RP爆发还是DELL是神机,总之“1”就是阴魂不散~
作者: 窄口牛    时间: 2023-5-4 09:34
那就试试设置隐藏吧,最后一招。
作者: tonykian    时间: 2023-5-4 09:35
窄口牛 发表于 2023-5-4 09:34
那就试试设置隐藏吧,最后一招。

求详解~
作者: 窄口牛    时间: 2023-5-4 09:39
easyuefi和bootice都可以设置隐藏
作者: tonykian    时间: 2023-5-4 09:47
wintoflash 发表于 2023-5-4 09:23
那反过来删掉bootmgfw.efi的启动项,并删掉bootmgfw.efi呢?

抱歉,忘记回复了。

如果这样,系统直接挂,无法开机。最后,PE下修复ESP,复活。
作者: tonykian    时间: 2023-5-4 09:48
窄口牛 发表于 2023-5-4 09:39
easyuefi和bootice都可以设置隐藏

请问,是隐藏ESP下的3个EFI文件吗?
作者: 2012andyle113    时间: 2023-5-4 10:21
tonykian 发表于 2023-5-4 09:30
1. 通过我重置BR2和RTC上看,BIOS的重置与NVRAM的数据存放区是不同的。理应说,BIOS重置可以一扫空;
2. ...

重置没有用的,一直会是那个状态,要在UEFI启动项里面直接操作,(系统或者PE下操作的UEFI项目可能会无效掉)我DELL碰到的情况跟你有点不一样,但是类似,我是操作了之后,把所有的启动项都搞没了,只剩下手工添加的第三方项目,怎么搞都没有windows的那个启动项,查了一堆资料也没结果,后来看到个老外网站说要把硬盘重新分区重装系统什么的,我想想应该是分区表的问题,就把启动分区重新搞了下,系统不重装就可以救活的,启动项也正常了
作者: tonykian    时间: 2023-5-4 10:46
2012andyle113 发表于 2023-5-4 10:21
重置没有用的,一直会是那个状态,要在UEFI启动项里面直接操作,(系统或者PE下操作的UEFI项目可能会无效 ...

非常感谢您提供的重要信息!或许会对我的问题有思路提醒。

1. 可否麻烦您将您处理的全过程,分享一下。包括如果不在Windows或PE下,通过怎样的方式或工具,做了怎样的操作,跟之前没操作前有何对比等....
2. 浪费您时间码字确实抱歉,但或许分享后会对坛友遇到类似问题时,提供了解决方案;

对我来说:
1. Win11,我是第一次、今年随新机使用,所以C盘的分区大小拿捏不准。
那么,在初步划分了分区后,我纯净版装机,并ghost留存。之后根据实际情况,PE下对全盘割掉重新划分,之后再ghost还原并修复ESP分区,进而偶然间发现了“1”;
2. 在发现“1”之前,同时出现了正常硬盘引导,相当于同一硬盘的2个引导项,一个是正常,另一个是“1”。因为BIOS我设置了外部引导输入admin,所以正常的硬盘引导提示需要admin,那就说明它被系统认定为外部驱动。遂,我用bcdedit命令直接干掉“正常”,保留“1”,同时命令尝试修改“1”,但结果...就是这个帖子反映的;
3. 后来尝试过,全盘割掉,用Win11安装U盘重装系统。在Metro界面下解包,需要设置用户名和密码时,提示需要internet接入,由于电脑较新,网卡驱动Win盘没有,我只能oobe命令走离线模式。最后发现,即便重装系统,F12引导项中依然出现“正常”和“1”,这就是一个死循环了。
作者: 2012andyle113    时间: 2023-5-4 11:10
你不要把问题复杂化,UEFI启动项其实可以说跟软件系统没关系的,识别到启动区,主板就认为有这UEFI设备,就会列出UEFI启动项
启动的时候进UEFI,启动项是可以直接编辑的,不需要额外的工具,你可以直接添加删除的,这里操作没了就没了,最终的UEFI启动项是以这为准的,进系统或者PE有些看起来有效操作但是一启动就是无效的
作者: jlshnlhj    时间: 2023-5-4 12:02
本帖最后由 jlshnlhj 于 2023-5-4 12:04 编辑

试试:
具体根据你的图1的第6行:{044972cd-e8df-11ed-a744-806e6f6e6963}
bcdedit /delete {044972cd-e8df-11ed-a744-806e6f6e6963} /f

然后再用bcdedit /enum firmware命令确定确实删除了{044972cd-e8df-11ed-a744-806e6f6e6963},{bootmgr}要保留,然后重启电脑,BIOS会自动建立每一个EFI启动项,等启动完成以后,进win以后,重启按F12,看看。
作者: iaanqrm    时间: 2023-5-4 13:20

作者: 邪恶海盗    时间: 2023-5-4 14:30
5块钱的"正版授权"Win11Pro???
作者: 深深的沼泽    时间: 2023-5-4 18:59
好贴,帮顶,请问楼主解决没
作者: 天使说请安静    时间: 2023-5-4 21:11
戴尔的机器要删除firmware的引导项,不然它每一次检测到有新的.efi文件引导项都会+1,而且失效的不会自动删除
作者: tonykian    时间: 2023-5-4 21:48
jlshnlhj 发表于 2023-5-4 12:02
试试:
具体根据你的图1的第6行:{044972cd-e8df-11ed-a744-806e6f6e6963}
bcdedit /delete {044972cd-e8 ...

非常感谢。

已测试,无效。
后,我又做新建空白文件,逐行添加非“1”的正确引导信息,用新的做旧的替换,依然无效。
作者: tonykian    时间: 2023-5-4 21:49
深深的沼泽 发表于 2023-5-4 18:59
好贴,帮顶,请问楼主解决没

感谢谬赞。

当前无解决方案。
作者: tonykian    时间: 2023-5-4 21:50
天使说请安静 发表于 2023-5-4 21:11
戴尔的机器要删除firmware的引导项,不然它每一次检测到有新的.efi文件引导项都会+1,而且失效的不会自动删除

敢问,如何删除,求解。
作者: tonykian    时间: 2023-5-4 21:55
我已经给MS和DELL的HQ发送了求助&探讨邮件,现在等美国的回复。

已经是不惑的人了,也非科技行业从业者,更非技术研发岗。
有时一壶茶、一支烟外加捣鼓这些电子产品,只是热情,没想到这个年纪还有执念。
当前就暂时留着“1”吧,也不影响使用和稳定性,在没有更好方案之前。

谢谢以上各位大佬的思路、建议、方案。
如果该问题已解决,我会更新本贴并方案呈现,争取不太监。

再次感谢各位!
作者: hawks    时间: 2023-5-5 00:25
谢谢分享
作者: nttwqz    时间: 2023-5-5 09:48
终极的解决办法:眼不见心不烦……
作者: luntaner    时间: 2023-5-5 10:23
支持分享  
作者: 天使说请安静    时间: 2023-5-5 10:46
这是我当时的OnShutdown文件的内容
先直接PECMDLOAD试试


WRIT X:\Windows\System32\uefi.bat,+0,@echo OFF
WRIT X:\Windows\System32\uefi.bat,+0,setlocal enabledelayedexpansion
WRIT X:\Windows\System32\uefi.bat,+0,for /f "tokens=2" %%n in ('Bcdedit ^/enum firmware^|findstr 标识符') do (
WRIT X:\Windows\System32\uefi.bat,+0,    if %%n NEQ {bootmgr} if %%n NEQ {fwbootmgr} Bcdedit /delete %%n&echo %%n 已被删除
WRIT X:\Windows\System32\uefi.bat,+0,)
WRIT X:\Windows\System32\uefi.bat,+0,pause
EXEC X:\Windows\System32\uefi.bat

作者: liuzhaoyzz    时间: 2023-5-5 10:52
本帖最后由 liuzhaoyzz 于 2023-5-5 10:55 编辑

直接祭出bootice,删除不需要的UEFI引导序列即可,如果bootice1.3.4不行,更换功能不完善的测试版1.4版本。

要先看下bitlocker是否打开了,建议关闭。戴尔电脑很多都是开了加密,异常情况下会导致硬盘锁死无解特别坑爹。

作者: xjfnet    时间: 2023-5-5 15:11
我只知道微软的 bootx64.efi  bootmgfw.efi 只要存在,就会被自动搜索到,自动添加到 uefi 启动项
作者: xjfnet    时间: 2023-5-5 15:13
xjfnet 发表于 2023-5-5 15:11
我只知道微软的 bootx64.efi  bootmgfw.efi 只要存在,就会被自动搜索到,自动添加到 uefi 启动项

只删除启动项,不删除 efi 文件,启动项会被自动添加
作者: lifeway    时间: 2023-5-10 18:13
楼主搞错思路了。
所写的都和UEFI引导项无关。
F12有关的:boot mode是UEFI模式(bootice、系统安装添加等等,单项或多项);传统模式;或两者(CSM)。
F12会把所有列出来,纯UEFI的或传统的,或两者。至于怎么显示启动项,看各厂商。
作者: wn168cn@163.com    时间: 2024-10-20 08:44
学习了




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3