龙空技术网

删除UEFI固件中的Windows Boot Manager

BB莱纳德 3298

前言:

现在我们对“联想安装ubuntu系统出现boot manager”大约比较关心,小伙伴们都想要分析一些“联想安装ubuntu系统出现boot manager”的相关知识。那么小编也在网络上汇集了一些关于“联想安装ubuntu系统出现boot manager””的相关资讯,希望兄弟们能喜欢,同学们一起来学习一下吧!

做过系统安装的同学应该会注意到在UEFI系统会记录上次启动成功的磁盘并做为默认项,Windows下通常叫"Windows Boot Manager",下次启动时自动从该启动项启动。这个大部分情况下是非常友好的,启动速度会快一些。不过有些时候安装完系统后不想让它从上次启动的项再次启动,这里提供一个想法,就是删除被UEFI固件默认的启动项"Windows Boot Manager"。

这个在Windows系统中是提供了API的,首先,调用ZwEnumerateBootEntries枚举固件中的所有启动项,枚举名称为"Windows Boot Manager"的启动项,找到后再调用ZwDeleteBootEntry删除该项。

其中ZwEnumerateBootEntries的原型为:

typedefNTSTATUS(NTAPI *PFN_ZwEnumerateBootEntries)(	__out_bcount_opt(*BufferLength) PVOID Buffer,	__inout PULONG BufferLength);

ZwDeleteBootEntry的原型为:

typedefNTSTATUS(NTAPI *PFN_ZwDeleteBootEntry)(	__in ULONG Id);

它们都在ntdll.dll里导出。在ntdll.dll里还导出了修改启动,添加启动项、修改启动项顺序等操作。下面看下我试验的例子:

使用API得到的UEFI启动项设置

上图中,分别取出了默认启动项,所有启动项,和当前启动项顺序。

知道这个知识点后,大家可以自由发挥了。

标签: #联想安装ubuntu系统出现boot manager