目前支持UEFI的Windows系统有Windows Vista 64位、Windows7 64位、Windows8 32/64位、Windows8.1 32/64位、Windows Server 2012。现在以Windows 8为例介绍在UEFI环境下系统是如何启动的:
UEFI启动Windows必须有一个FAT分区(通常叫做“EFI 系统分区”),这个分区中存在引导Windows的文件。开机后自动查找FAT分区下的“efi\\Microsoft\\boot\\bootmgfw.efi”文件,然后查找同一分区下的“efi\\Microsoft\\Boot\\BCD”,然后加载“系统盘:\\windows\\system32\\winload.efi”,这样就进入了Windows。
我们来对比一下在Legacy BIOS和UEFI BIOS两种环境下Windows8的引导启动的过程:
Legacy BIOS→“活动的主分区”→\\bootmgr→\\Boot\\BCD→ \\Windows\\system32\\winload.exe
UEFI BIOS→EFI系统分区(FAT格式的分区)→\\efi\\Microsoft\\boot\\bootmgfw.efi→efi\\Microsoft\\Boot\\
BCD→\\Windows\\system32\\winload.efi
bootmgfw.efi文件我们也可以在“EFI SHELL”下手动运行。此外,在“EFI SHELL”下手动运行FAT分区的“efi\\boot\\bootia32.efi”或“efi\\boot\\bootx64.efi”也可以进入Windows。在UEFI BIOS中我们还可以将efi文件设置为启动项、默认启动项。
上述的bootia32.efi、bootx64.efi分别为32位、64位的UEFI引导Windows所需要的文件。二者一一对应,因此在64位的UEFI环境下是无法安装32位系统的。操作步骤:
我们知道当在Legacy BIOS MBR分区下系统无法启动时,我们可以通过bcdboot x:\\windows /s y: (x为操作系统所在分区,y为操作系统所在分区或引导分区)进行修复引导,当UEFI BIOS GPT分区下系统无法启动时,我们也可以使用bcdboot命令进行修复,便可在EFI分区中重新生成启动所需要的文件,但使用方法略有不同,为bcdboot x:\\windows /s y: /f uefi,其中x为操作系统所在分区,y为EFI分区,但在正常情况下EFI分区是不分配盘符的,我们需要通过diskpart分区管理软件中的assign命令分配盘符即可。