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

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

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

查看全部评分

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 13 小时前 | 显示全部楼层
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\

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




回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 13 小时前 | 显示全部楼层
本帖最后由 dayeye 于 2026-6-9 14:53 编辑

7.jpg
补充一下:
1. 论坛里交流的帖子,不是编写教科书。
2. 各人有自己习惯,
重要的是内容。
这个图引起了一些误会。抱歉!!!



点评

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

使用道具 举报

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

使用道具 举报

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

点评

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

使用道具 举报

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

使用道具 举报

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

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

我使用 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。
回复

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 10 小时前 | 显示全部楼层
本帖最后由 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)
回复

使用道具 举报

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

使用道具 举报

发表于 10 小时前 | 显示全部楼层
FAT分区也是另类的错误叫法。

点评

我使用 FAT分区 这个词来表达 使用FAT32文件系统的分区或者使用FAT16文件系统的分区, 你如果不理解可以发问,如果理解了但认为是错误的叫法,可以给一个正确的叫法,这样更有利于大家交流。 你可以回复 正确叫法是  详情 回复 发表于 9 小时前
回复

使用道具 举报

发表于 9 小时前 | 显示全部楼层
多谢分享科普Windows启动的模式!
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 9 小时前 | 显示全部楼层
zr-71jp 发表于 2026-6-9 12:42
FAT分区也是另类的错误叫法。

我使用 FAT分区 这个词来表达 使用FAT32文件系统的分区或者使用FAT16文件系统的分区,
你如果不理解可以发问,如果理解了但认为是错误的叫法,可以给一个正确的叫法,这样更有利于大家交流。

你可以回复 正确叫法是... 或者正确的表达应该是...
我会虚心接受指教
这样也比单纯回复 是错误叫法 更加有效

点评

你省略的地方,恰恰是主要的,省略了都以为就是FAT分区;这个不是理解的问题。  详情 回复 发表于 7 小时前
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-9 22:48

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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