找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 333|回复: 25

[分享] 关于UEFI启动Windows的相关问题

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
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\


评分

参与人数 1无忧币 +5 收起 理由
cuicongyuan + 5 赞一个!

查看全部评分

发表于 4 小时前 来自手机 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
感谢科普,进来学习一下。
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
科普学习一下,感谢楼主
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层
短短几百字讲清了基本原理,学习了。
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
学习了,谢谢分享!
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
谢谢分享,学习一下。
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
Windows 启动分为 LegacyUEFI 两种模式:
  • Legacy 模式:主板读取 MBR 引导代码(nt6),由其加载活动分区的 PBR(bootmgr),再执行 \Boot\BCD 配置,完成系统引导。
  • UEFI 模式:主板直接加载 EFI 分区(ESP)中的启动文件(如 \EFI\Microsoft\Boot\bootmgfw.efi),该文件依据 \EFI\Microsoft\Boot\BCD 配置引导系统。

EFI 分区说明
  • 通常为 GPT 硬盘上的 EFI 系统分区(ESP),格式应为 FAT32/FAT16/FAT12;
  • 部分主板支持 NTFS 或 exFAT 格式作为 EFI 分区。

常见问题与解决
当 UEFI 启动失败,多因 BCD 配置与当前软硬件不匹配(如更换硬盘、重装系统等导致配置未更新)。

修复方法
  • 删除 EFI 分区中 \EFI\Microsoft 目录;
  • 使用 bcdboot 重建启动文件。

命令示例
  • 若 EFI 分区为 S 盘,Windows 在 C 盘:
    1. bcdboot C:\Windows /s S: /f UEFI                     
    复制代码

  • 若主板支持 NTFS 作 EFI 分区,可将启动文件生成在 C 盘:                  
    1. bcdboot C:\Windows /s C: /f UEFI              
    复制代码
    此时启动文件位于 C:\EFI\Microsoft\Boot\

建议操作前备份重要数据,确保分区格式和引导方式一致。




回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
科普学习,谢谢
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
快更新ca2023证书的EFI吧
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
条件允许当然 UEFI+GPT+安全启动,过于老旧的电脑不支持原生UEFI启动‌就没办法,感谢楼主科普!
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
7.jpg

点评

这豆包回答本身就全是bug。 但是 这也不能完全怪豆包。 因为问的问题就有bug。 ESP 是 EFI System Partition 的缩写。 EFI System Partition直译就是EFI系统分区。 ESP里的P 已经是分区的缩写了, 怎还能使用“esp  详情 回复 发表于 2 小时前
很显然,我也是看了你的转贴有感而发。 只不过是不想在你那个贴子里惹起纷争,所以另发这个贴子分享我的见解。 我使用 EFI分区 这个词不是支持某人,用这个词我也考虑了很久,最终还是决定用这个词来表示支持efi引  详情 回复 发表于 2 小时前
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
学习了,不懂虚拟机能不能实现NTFS读取EFI。目前还没有实现这个。实体机有些是可以的。比如说分区成MBR,主板只选UEFI启动,此时C盘要是有EFI是可以正常进系统的。要想虚拟模拟可就难实现了,不懂有没有简单修补的方法,继续研究研究了。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
在制作启动盘的时候需要指定吗

点评

你说的指定是指定分区还是指定文件名? 启动盘是指内接盘还是外接盘?内接如m2盘/sata盘(一般叫硬盘),外接如USB盘(一般叫移动盘/U盘/移动硬盘)。 如果是制作本机使用的启动盘,只要是本机支持的分区都可以 如果是  详情 回复 发表于 半小时前
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
学习一下,感谢分享。
回复

使用道具 举报

 楼主| 发表于 2 小时前 | 显示全部楼层

很显然,我也是看了你的转贴有感而发。
只不过是不想在你那个贴子里惹起纷争,所以另发这个贴子分享我的见解。

我使用 EFI分区 这个词不是支持某人,用这个词我也考虑了很久,最终还是决定用这个词来表示支持efi引导的分区。

我知道EFI不是分区名,但是不妨碍我们将那些支持efi引导的分区叫做efi分区。
同样的,fat32/ntfs等是文件系统名,但是不妨碍我们将包含相应文件系统的分区叫做FAT32分区/NTFS分区。
大家明白就好。

我说的EFI分区不仅仅指专门的ESP,也指主板支持作为efi启动的ntfs分区和exfat分区,甚至以后有可能也指ext4分区/btrfs分区,只要主板支持作为EFI引导。
也就是说,只要能实现EFI引导的分区我就叫EFI分区,而不仅仅是特指ESP。

这些FAT分区之外的分区,在一些电脑是EFI分区,而在另一些电脑就可能不是EFI分区,因为不同的电脑支持不同。只有FAT分区是规范的统一的只要符合UEFI规范的电脑都支持做EFI启动的。

我使用EFI分区这个叫法是为了表达放置efi启动文件的分区。
只要能实现EFI引导的分区我就叫EFI分区,而不仅仅是指ESP。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层

这豆包回答本身就全是bug。
但是 这也不能完全怪豆包。 因为问的问题就有bug。
ESP 是 EFI System Partition 的缩写。
EFI System Partition直译就是EFI系统分区。
ESP里的P 已经是分区的缩写了, 怎还能使用“esp分区” 的叫法。“EFI系统分区分区”
相反,平时表达 EFI分区 省略系统 反而符合中国语言。
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
梳理的还是很好的,辛苦了。
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
谢谢老大科普!
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
谢谢分享,学习了。
回复

使用道具 举报

发表于 半小时前 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 半小时前 | 显示全部楼层
本帖最后由 hilsonma 于 2026-6-9 12:45 编辑
我的乐趣 发表于 2026-6-9 10:00
在制作启动盘的时候需要指定吗

你说的指定是指定分区还是指定文件名?
启动盘是指内接盘还是外接盘?内接如m2盘/sata盘(一般叫硬盘),外接如USB盘(一般叫移动盘/U盘/移动硬盘)。

如果是制作本机使用的启动盘,只要是本机支持的分区都可以
如果是制作通用的启动盘,就要按uefi规范要求使用FAT分区作EFI分区。
UEFI规范要求可移动盘的启动文件是 \EFI\BOOT\BOOTx64.EFI 或\EFI\BOOT\BOOTIA32.EFI 等等这样的文件(文件名BOOT后面.EFI之前这部分表明CPU架构如x64/IA32/IA64/ARM/AA64等)

放了\EFI\BOOT\BOOTx64.EFI 在EFI分区的移动盘,就成了x64机器的UEFI启动盘
放了\EFI\BOOT\BOOTIA32.EFI 在EFI分区的移动盘,就成了IA32机器的UEFI启动盘
放了\EFI\BOOT\BOOTIA64.EFI 在EFI分区的移动盘,就成了IA64机器的UEFI启动盘
放了\EFI\BOOT\BOOTARM.EFI 在EFI分区的移动盘,就成了ARM机器的UEFI启动盘(ARM32)
放了\EFI\BOOT\BOOTAA64.EFI 在EFI分区的移动盘,就成了AA64机器的UEFI启动盘(ARM64)
回复

使用道具 举报

发表于 半小时前 | 显示全部楼层
很好不错。。。
回复

使用道具 举报

发表于 11 分钟前 | 显示全部楼层
FAT分区也是另类的错误叫法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-6-9 12:54

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表