Windows Boot Manager实际上就是UEFI固件用来识别和加载的标准启动项,并不是普通的软件,在系统的硬盘ESP分区里有一个名为bootmgfw.efi的可执行文件,它是微软提供的,会被UEFI BIOS调用来启动Windows操作系统。在双系统的情况下,它会在启动菜单中和其他第三方引导管理器一起出现;而在单系统的场合下,则通常会成为BIOS/UEFI启动列表的第一项选项名,在物理硬盘上的Windows系统旁边。它的存在与否、名字叫什么以及优先级高低都会受到UEFI固件设置、ESP分区的状态以及系统更新等因素的影响。

第一种情况是,怎样才能确定Windows Boot Manager是否存在
为了检验这个启动项是不是有效的,在开机的时候不断地按F2、Del或者Esc等键来进入到UEFI固件界面,在“Boot”或者“Startup”的选项卡里查看一下启动项列表。一般情况下会看到一个被明确定义为“Windows Boot Manager”的条目,并且后面跟着硬盘型号或者是品牌的名字(比如“Windows Boot Manager (ST1000LM048)”)。如果这个条目不存在了但是Windows仍然可以正常地启动起来的话,那么就说明UEFI把它合并成了硬盘的名字;如果完全没有出现并且不能够进入到系统当中去的话,就需要检查一下ESP分区有没有什么问题了——可以通过使用Windows PE环境下的diskpart命令来进行操作,“list disk”、“select disk X”、“list partition”,然后看是否存在一种叫做“System”的FAT32分区,并且在它的根目录下有没有EFIMicrosoftBootmgr.efi文件。
在双系统的情况下,Windows Boot Manager的行为和修复途径
在Ubuntu和Windows共存的情况下,在GRUB菜单里看到的“Windows Boot Manager”实际上就是指向同一个efi文件的一个快捷方式。如果Ubuntu运行了sudo update-grub之后没有发现这个选项的话,很可能是由于efibootmgr输出中的相关启动项已经被Windows更新所修改或者移除所致。这时可以首先在Ubuntu终端中输入sudo efibootmgr -v来查看含有“Windows”的BootXXXX条目以及它们所在的路径;如果没有的话,则需要挂载ESP分区(使用命令sudo mount /dev/sda1 /boot/efi)进入到/boot/efi/EFI/Microsoft/Boot/下找到并确认是否存在名为bootmgfw.efi的文件,然后通过命令sudo efibootmgr -c -d /dev/sda -p 1 -L “Windows Boot Manager” -l “EFIMicrosoftBootootmgfw.efi”来重新创建启动项。
第三部分是由于Windows更新造成的启动项错位的问题以及解决方法
微软的部分功能更新(比如从22H2升级到23H2),会把自身的启动项放到最前面,并且会取代原有的GRUB优先级。即使BIOS中的“ubuntu”选项仍然存在,在开机的时候也会直接跳转到Windows系统。解决办法分为两步走:第一步,在Windows系统下用管理员权限打开命令提示符窗口后输入bcdedit /set {bootmgr} path EFI\ubuntu\grubx64.efi(对于传统的GRUB安装而言);第二步是重启电脑进入到UEFI模式之后再手动把“ubuntu”的启动项放在第一的位置上。需要注意的是,在进行上述操作之前要保证Ubuntu的grubx64.efi文件确实位于ESP分区对应的路径之下,否则就有可能出现不能正常启动的情况。
因此,Windows Boot Manager是物理上的UEFI启动实体,在系统引导链条里是一个可以被修改和恢复的重要环节,它的状况能够反映出底层固件以及硬盘引导方式是否正常工作。







评论区 (0)
暂无评论,快来抢沙发吧!
发表评论