[toc]
BIOS: 指定的磁盘0扇区mbr处引导代码 > 活动分区pbr处引导代码 > 活动分区中的引导文件 > 读取引导配置 > 引导指定系统
UEFI: 指定的磁盘的指定分区的\EFI\Boot\bootx64.efi
应用(一般是ESP分区) > 读取引导配置 > 引导指定系统
- 在进行转换前首先确认几点是否达标
- win7系统必须为64位
- 安装完主要设备驱动(显卡, 硬盘, 芯片组)
- BitLocker 已完全关闭
- 系统非VHD启动(win7原版不支持uefi下从vhd启动,需修改注册表的
BootDriverFlags
项) - 某些笔记本的厂商管理驱动软件可能会导致转换后启动失败
- uefi固件为2.0或更高版本
- uefi csm支持
- 使用win7时需禁用安全启动
- 若csm不支持, 必须确保显示卡专有驱动已安装且显卡支持gop启动
- 这将阻止win7调用int10
*注意: 转换分区表将导致系统还原点丢失, 转换前推荐先关闭系统还原
- 一个可使用的win7及以上版本的pe系统或操作系统
- DiskGenius/PartitionGuru或其他类似的磁盘分区工具
- BOOTICE或类似的可以修改BCD文件的工具(如果会手动纯打bcdedit命令也可以)
- 用win10创意者更新或更高版本的msdn镜像制作的启动盘
win10创意者更新包含一个新工具mbr2gpt
可以将系统所在的mbr磁盘无损转换为gpt磁盘, 可在win7/8/10上使用, 具体步骤如下 :
- 管理员身份启动cmd, 使用
bcdedit /export C:\BCD.bak
来备份目前本机BCD文件 - 打开
diskmgmt.msc
选中目标引导磁盘中最后一个分区, 压缩卷, 压缩量为17MB- 也可以用其他磁盘分区工具调整分区大小, 为磁盘末尾留出16896Byte的空闲空间, 用作GUID分区表备份
- 引导进入win10创意者启动盘
- 按
Shift+F10
进入命令行 - 输入
diskpart
进入磁盘管理list disk
列出所有磁盘select disk X
选择指定磁盘 Xdetail disk
显示这个磁盘的详细信息- 通过这样的方法找到目标引导磁盘, 记住磁盘号X, 之后使用
exit
退出磁盘管理
- 输入
mbr2gpt /validate /disk:X
验证选定磁盘 - 显示Validation completed successfully表示验证通过可以继续
- 输入
mbr2gpt /convert /disk:X
转换选定磁盘并等待完成 - 进入主板BIOS/UEFI固件界面, 开启uefi 对于win7还需开启 csm 兼容模块
- 如果没有 csm 兼容模块, 请参考 #Without CSM 纯UEFI GOP启动
- 进入系统
*如若不行可以参考以下手动方法
- 管理员身份启动cmd, 使用
bcdedit /export C:\BCD.bak
来备份目前本机BCD文件 - 把电脑关机, 启动pe或另一个硬盘上的系统
- 打开DiskGenius
- 选择目标磁盘, 右击转换分区表为GUID格式
- bios启动模式下的100MB保留分区建议可以保留, 未来如果需要重新转换为mbr分区表, 使用BOOTICE些许调整BCD又可以再次使用
- 创建ESP分区
- 对于磁盘根目录下存在
Boot
EFI
Windows
等文件夹的分区, 需将这些文件夹改名并使用Ctrl+L
重载硬盘, 方可调整这些分区的大小和位置(调整完成后记得还原原来的名字) - 调整其他分区大小和位置, 空出一个100MB的空闲空间
- 右键空闲空间, 建立新分区, 选择
EFI system partition
大小为100MB - 保存更改但不要格式化
- 打开
cmd
输入diskpart
进入磁盘管理list disk
列出所有磁盘select disk X
选择先前转换的磁盘list partition
列出此磁盘中的所有分区select partition X
选择先前建立的100MB EFI系统分区format fs=fat32 label="EFI System" quick override
将分区文件系统格式化为fat32exit
退出磁盘管理
- 对于磁盘根目录下存在
- 建立引导文件
- 引导进入win10创意者启动盘
- 按
Shift+F10
进入命令行 - 输入
diskpart
进入磁盘管理list volume
列出所有卷select volume X
选择先前建立的100MB EFI系统分区assign letter=P
为EFI系统分区分配一个未占用的盘符例如P- 找到win7系统所在的卷/分区, 并记住它被分配的盘符, 之后会用到 (这里假设系统盘符为E)
exit
退出磁盘管理
- 输入
bcdboot E:\Windows /l zh-CN /s P: /f UEFI
建立引导文件- 还可以使用备份的bcd文件替换
EFI系统分区\EFI\Microsoft\Boot\BCD
再使用BOOTICE和bcdedit命令调整引导来达到原先相同的功能配置 - 相关内容不进行深入, 可以自己研究
- 还可以使用备份的bcd文件替换
- 进入主板BIOS/UEFI固件界面, 开启uefi 对于win7还需开启 csm 兼容模块
- 如果没有 csm 兼容模块, 请参考 #Without CSM 纯UEFI GOP启动
- 进入系统
*显示屏由哪个显卡驱动就必须确保这个显卡的驱动已安装, 一旦卸载驱动将导致显示黑屏, 需要盲操重新安装驱动
- 用命令或使用BOOTICE工具为EFI分区和目标系统分区分别分配一个盘符
- 使用win7-efi-gop-boot-tool工具添加gop支持
- 原理如下
- 修改目标系统的bcd文件打开novesa功能
- 修改目标系统的服务项, 禁用vga和vgaSave(有时非必须禁用)
- 达到阻止int10调用的目的
- 进入系统
*适用于无法正常使用系统需要还原回BIOS启动方式的玩家
- 打开
diskmgmt.msc
查看目标系统引导分区所在磁盘, 确定分区总数, 超过4个将导致普通的磁盘分区工具无法将目标磁盘的guid分区表转换为mbr分区表 - 使用磁盘分区工具将磁盘转换为mbr格式
- 如果你还保留着转换前的100MB保留分区, 则只要执行6,7,8步骤, 再使用BOOTICE调整P:\Boot\BCD文件, 分配正确的Device
- 调整其他分区大小和位置, 空出一个100MB的空闲空间
- 将分区格式化为NTFS
- 将其标记为活动分区
- 为其分配一个盘符例如:P
- 使用
bootsect /nt60 P: /mbr
或使用BOOTICE工具为目标活动分区所在的硬盘创建nt6引导 - 为目标系统分区分配一个盘符例如:E
- 输入
bcdboot E:\Windows /l zh-CN /s P:
建立引导文件 1. 还可以使用备份的bcd文件替换P:\Boot\BCD
再使用BOOTICE和bcdedit命令调整引导来达到原先相同的功能配置 2. 相关内容不进行深入, 可以自己研究 - 进入主板BIOS/UEFI固件界面, 关闭uefi
- 进入系统
UEFI Firmware
换ssd无损迁移windows系统(传统引导方式,非uefi)
uefi+GPT如何安装Win7?
Install Windows 7 at UEFI Graphics Output Protocol (GOP) hardware
用Win10自带的MBR2GPT无损转换GPT磁盘分区形式
Windows 7纯uefi启动的方法(懂行的进)
转:(译)UEFI 启动:实际工作原理
將 Windows 7 從 BIOS (MBR) 轉為 UEFI (GPT) 格式開機