|
|
Windows 启动有两种模式。一种是legacy启动,另一种是uefi启动。
Legacy启动是主板读取并执行硬盘上的MBR(通常是nt6启动代码),nt6启动代码读取并执行活动分区的PBR(通常是bootmgr引导代码),bootmgr引导代码读取并执行根目录的bootmgr,bootmgr根据\Boot\BCD的配置进行Windows的引导。
UEFI启动是主板读取并执行硬盘efi分区的efi文件(通常是\EFI\Microsoft\Boot\bootmgfw.efi),bootmgfw.efi 根据\EFI\Microsoft\Boot\BCD的配置进行Windows的引导。
efi分区一般指gpt硬盘的EFI系统分区(EFI System Partition,简称ESP),也可以泛指放置efi启动文件的分区,但必须是主板固件支持efi引导的分区。
FAT32/FAT16/FAT12分区是规范的EFI分区,现在有部分主板也支持ntfs分区作为efi分区,有主板固件还支持exfat分区作为efi分区。
当Windows UEFI启动出错时,通常是BCD设置与软硬件环境不匹配导致的,不匹配的原因是软硬件发生了变化,而BCD没有自动更新,还是原来的设置,所以报错。
这时我们可以手动更新BCD。为了避免BCD数据混乱,建议清除原来的设置,再重建新的设置。
也就是将EFI分区的Microsoft文件夹(\EFI\Microsoft)删除,然后使用bcdboot重新生成启动文件。
例如Windows在C盘,EFI分区是S盘,可执行如下命令重新生成启动文件:
bcdboot C:\Windows /s S: /f UEFI
如果主板支持ntfs作efi启动,那么以下命令也是可以的:
bcdboot C:\Windows /s C: /f UEFI
这时生成的启动文件在 C:\EFI\Microsoft\Boot\
|
|