我有一台装有 Windows 7 64 位企业版的笔记本电脑。它已经安装了大量软件和驱动程序。
笔记本电脑(戴尔 E6220)支持通过 UEFI 启动,但安装是在旧版 BIOS 上。
当我尝试将引导从 Legacy 更改为 UEFI 时,我收到一条错误消息,提示未找到引导设备(Windows 7 无法识别为可引导设备)。我是否可以配置当前安装以允许从 UEFI 引导,还是必须格式化并重新安装?
答案1
UEFI 上的 Windows 7 要求磁盘分区使用 GUID 分区表 (GPT),而不是 BIOS 系统上的传统 MBR 分区格式。遗憾的是,Windows 无法以非破坏性的方式将 MBR 分区转换为 GPT 分区。
但是,如果你不介意从驱动器复制数据、进行转换,然后再复制回来,那么你可以使用 Windows 来执行此操作,如 Microsoft Technet 文章中所述将主引导记录磁盘更改为 GUID 分区表磁盘。本文介绍了两个过程,这两个过程都需要复制数据,然后修改磁盘以使用 GPT。使用 Windows 界面,您首先删除磁盘上的所有卷,然后右键单击磁盘并选择菜单项,将磁盘转换为 GPT 磁盘。使用具有管理员权限的命令 shell,您可以使用该diskpart
实用程序删除所有卷,然后将磁盘转换为 GPT 磁盘。
如果你不想先备份数据,并且有一台可以安装驱动器的 Linux 机器,那么 Linux 中有一些工具可以让你以非破坏性的方式转换分区类型如这里所述。如果你手边没有 Linux 机器,你也可以尝试创建一个Linux 启动光盘并从那里启动。
搜寻“将 MBR 转换为 GPT”带来了其他工具,但我从未尝试过。
答案2
不,你不必格式化并重新安装,因为你可以转换磁盘以允许通过 UEFI 启动gptgen
,一个优秀的开源项目,可以无损地将 MBR 分区表转换为 GPT。
微软发布了有关此过程的很好的教程(未删节版),下面的精简版只需不到 10 分钟即可完成:
- 通过创建系统修复光盘或使用 Windows 安装介质
- 通过以下方式识别要转换的硬盘Windows 磁盘管理器 (通常
Disk 0
) - 下载并解压
gptgen
,以管理员身份启动 cmd 提示符,然后运行:
警告:你确实备份了数据,对吧——这是无法挽回的
运行上述命令后,您可能会或可能不会看到蓝屏,这都是正常的gptgen.exe -w \\.\physicaldrive0
- 启动 Windows 安装光盘或系统修复光盘,选择语言和首选项,然后:修复计算机 - 故障排除 - 高级选项 - 命令提示符
- 运行
diskpart
,通过以下方式识别包含 Windows 的启动盘list disk
:Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- * Disk 0 Online 128 GB 0 B *
- 通过选择磁盘
select disk <#>
并通过以下方式验证list partition
:Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 Primary 350 MB 1024 KB Partition 2 Primary 126 GB 350 MB
- 删除以前的系统分区:
select partition 1 delete partition
- 创建新的启动分区和 Microsoft 保留分区:
create partition EFI size=100 offset=1 format quick fs=fat32 label="System" assign letter=S create partition msr size=128 offset=103424
- 验证方式
list partition
:Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 100 MB 1024 KB Partition 2 Reserved 128 MB 101 MB Partition 3 Primary 126 GB 229 MB
- 确保 Windows 安装已安装,并
3
用 Windows 安装替换,然后退出:list volume select volume 3 assign letter=C exit
- 生成启动分区数据,替换
C:
Windows 安装,然后重新启动:bcdboot C:\Windows /s S: /f UEFI
答案3
将 Windows 安装从传统方式转换为 UEFI:
请注意,此技术仅适用于支持 UEFI 固件的计算机系统。请先在 BIOS 设置中检查,然后继续本教程。
步骤1: 确认您的安装确实处于传统模式。按WinKey+R然后键入
msinfo32
并按回车键。系统摘要中的 BIOS 模式应为传统。第2步: 下载系统救援盘并从中制作可启动媒体。从以下网址下载磁盘这里。看制作可启动媒体的说明。这是很简单的,你可以按照这个教程。
- 步骤3: 使用您在步骤2中创建的可启动媒体重新启动到Legacy或UEFI模式。
- 步骤4:运行命令:
testdisk
使用箭头键导航。选择以传统模式安装 Windows 的 HDD,然后按 Enter。选择 [EFI GPT] EFI GPT 分区图,然后按 Enter。选择分析并按 Enter。选择快速搜索(在底部)并按 Enter。选择继续(在底部)并按 Enter。再次按 Enter。选择写入(在底部)并按 Enter。按 Y 并按 Enter。您的分区表已从 MBR 更改为 GPT。 - 步骤5: 使用 Windows 恢复/安装媒体重新启动进入 UEFI 模式。
- 第 6 步: 打开命令提示符。快捷方式是:shift+F10
步骤7: 运行以下命令:
diskpart
list disk
- 记下包含 Windows 安装的磁盘编号。假设它是x
select disk x
list partition
- 记下包含 Windows 安装的分区号。假设它是y
select partition y
shrink minimum=200 desired=200
create partition efi
list partition
- 记下新分区的分区号。假设它是z
select partition z
format fs = fat32
assign letter = b:
exit
mkdir b:\EFI
mkdir b:\EFI\Microsoft
cd /d b:\EFI\Microsoft
bootrec /fixboot
diskpart
list vol
bcdboot c:\windows /l en-us /s b: /f ALL
- 请注意,这里c:
表示的是安装 Windows 的分区的字母。让我们先找出它。
步骤8: 重启。好了!完成!检查您的安装是否已更改为 UEFI。
参考:如何将 Windows 7/8/8.1 安装从传统系统转换为 UEFI 且不丢失数据!
使用 gdisk 的更简单方法:将 Windows 7/8/10 安装从传统系统转换为 UEFI 且不丢失数据(更简单的方法)
答案4
我按照@nathanbedford 所说的做了,但是 Windows 7 bcdboot 不接受 /f 标志,因此为了完成最后一步
bcdboot c:\windows /s s: /f UEFI
您需要使用较新版本的 bcd,即>=win8。
有两种不同的方法可以做到这一点:将较新的 bcdboot.exe 复制到可读驱动器,以便您可以从 cmd 访问它(我就是这样做的),或者运行较新的 Windows 系统修复磁盘。