上次看到了一篇关于使用 Win10 build 15063 自带的工具将传统 BIOS 引导转换为 UEFI 引导的文章,然而此工具只存在在 build 15063 及以上版本中,虽然可以提取并运行在 Win7/8 上(没有经过转换实验,只是可以运行),但 Win2008/Vista 下无法运行,而且无法按照需要自定义分区规划。这在比如我们想要安装多个包含非 Windows 系统(比如 Linux、运用 Clover 等启动器安装的 macOS)时就变得很不方便。本文就向大家介绍一步一步将 BIOS 启动的 Windows 转换为 UEFI 启动的方法。
本教程适用于:
Windows Vista/7/2008/2008R2/2011 x64;Windows 8/8.1/10 x86 & x64;Windows Server 2012/2012 R2/2016 x64。
首先应当确保你的 BIOS 支持 UEFI 引导,否则可能需要第三方启动器才能模拟 UEFI 模式并引导 Windows。这种情况本教程不做讨论。
要查看自己的 BIOS 是否是 UEFI BIOS:
1. 多数 UEFI BIOS 在设置界面会说明这是 UEFI BIOS,或者有类似标题;
2. 出厂时预装 Windows 8/8.1/10 的电脑;
3. 基于 Intel 处理器的 Apple 电脑均使用 EFI BIOS,与 UEFI 稍有区别,但类似;较早的 Mac 有模拟 BIOS 模式,情况可能稍有不同;
4. BIOS 启动菜单里有 EFI Shell/Shell 的
5. 05 年之后的基于 x86 的主板开始有支持 UEFI 的型号,08-10 之后基本普及了。
注:
有些主板 UEFI 较特殊,或版本比较奇怪/老,比如我的笔记本电脑 UEFI 启动 Win7 时无法出现动画、我也见过一块搭载 Atom D2550 的主板虽然支持 UEFI 但无法按正常的方式 UEFI 启动 Windows;没有 CSM 兼容模式的主板不能 UEFI 启动 Windows vista/7/2008/2008R2/2011,也有的无法 UEFI 启动 32 位 Win8/8.1/10。我们需要一个支持无损 GPT(GUID)和 MBR 分区表转换的第三方分区管理软件,比如分区助手或者 DiskGenius(免费版不支持)。
然后需要一个支持 UEFI 启动的 PE 启动盘,推荐基于 64 位 Win8.x/10 的(因为它们原生包含 bcdboot)。
首先来观察一下当前的分区情况,使用你安装的第三方分区软件或是 diskpart 命令行工具都可以;自带的磁盘管理有的分区并不会显示(比如 MSR),所以不推荐。
要使用 diskpart 查看,首先按下 Windows 键+R 打开运行,输入 diskpart 回车。如果弹出用户账户控制,则点“继续”或“是”。在弹出的窗口中依次输入命令:
list disk
作用:列出所有磁盘。
sel disk
作用:选中你要操作的磁盘,如果有多个硬盘可以根据容量判断,这里 disk 0 是我要操作的磁盘。
list part
作用:列出已选中磁盘上的所有分区。
可以看出这个磁盘上只有一个主分区,里面存储了 Windows 操作系统,分区表为 MBR(GPT 一栏下什么也没写)。还有一种可能就是另有一个 100MB 左右的保留分区。这些都是正常情况。
准备工作就绪后,重启进入 Windows PE,打开你准备使用的第三方分区软件。
对于分区助手,右键单击要操作的硬盘(是硬盘不是分区)-转换到 GPT 磁盘-确定-是-提交-执行-是;
对于 DiskGenius,右键单击要操作的硬盘(是硬盘不是分区)-转换分区表类型为 GUID 格式-确定-保存修改-是。
有些软件(比如分区助手)在执行转换时会自动加入一个 ESP 分区,一般添加在磁盘末端,如果觉得对于自动分配的懒得修改,那么稍后手动创建 ESP 的步骤就可以略过;如果觉得默认分配的 ESP 位置不好或大小欠妥,那么在转换完成后应当删除这个 ESP 分区并把空间合并回去。
接下来,如果你的硬盘上有 100MB 保留分区,则将它删除。
现在来建立 ESP 分区
利用第三方分区软件在硬盘前端(一般习惯于把这类分区放在硬盘开头处,放在其它地方其实也不影响)分割出一个未分配空间,大小方面,如果只运行 Windows 或 Windows+Linux 则建议 100MB,如果想要运行其它操作系统,尤其是 macOS(别问我 PC 怎么跑 macOS),那么 ESP 分区必须大于,大于,大于 200MB,重要的事情说三遍。
对于分区助手,右键单击要分割空间的分区(这次是分区不是硬盘)-调整/移动分区-调整好分区前未分配空间-确定-提交-执行-是,
对于 DiskGenius,右键单击要分隔空间的分区(这次是分区不是硬盘)-调整分区大小-调整好分区前未分配空间-开始-是。
接下来这些第三方工具的使命就结束了。
开始-运行-输入 cmd 回车,又到了敲命令的时间
diskpart
作用:打开 diskpart。
create part efi
作用:按默认创建一个 esp 分区,默认占据你之前分配的空闲空间上。
format fs=FAT32
作用:格式化这个新的 ESP 分区,格式化为 FAT32。
ass
作用:给这个 ESP 分区分配盘符。
exit
作用:退出 diskpart。
这样就完成了 ESP 分区的建立和挂载
注意:
你可能会发现我并没有建立 MSR 分区。MSR 分区一般情况下是可有可无的,但是有时会需要(比如转换为动态磁盘时),如果需要,则处理完之后再按之前的步骤分出空闲空间(建议放在 ESP 后),在 diskpart 中建立分区时改为输入以下命令:create part msr
作用:按默认创建一个 MSR 分区,默认占据你之前分配的空闲空间上。
然后不需要输入 format 命令格式化,也不需要输入 ass 命令挂载,其它步骤一样。
接下来打开计算机/这台电脑/此电脑窗口,查看新的 ESP 分区的盘符和你的 Windows 操作系统所在盘符。
如图是我刚建立的 ESP 分区的属性:
继续输入:
bcdboot
打开 ESP 分区看看,里面是不是多了些文件:
重启进入 BIOS,虚拟机则是进入虚拟机设置,修改为 UEFI 启动。如果操作系统是 Windows 8.x/10 和其他非 Windows 操作系统,则禁用 CSM(如果稍后无法启动则重新打开 CSM 兼容模式);如果使用了 64 位 Windows Vista/7 以及对于不原生支持 UEFI32 的主板下的 32 位 Windows 8.x/10,则需要开启 CSM 兼容模式;如果使用了 Windows 8.x/10 且没有其他系统,建议开启 Secure Boot 安全启动(有的是将安全启动选项设置为“Windows UEFI 模式”)。
再次重启,不出意外就可以进入 UEFI 引导的 Windows 了。