windows10 克隆系统后怎么重做 uefi 引导?

2016-07-30 03:44:51 +08:00
 baskice
系统装在小硬盘里,现在需要格式化掉做其他用途。

把系统用 分区助手 从小硬盘克隆到大硬盘的一个分区。结果没法从大硬盘启动进入系统

dell 的 bios 里只有小硬盘的 Windows boot manger ,请问要怎么改才能完全从大硬盘引导启动大硬盘?
21543 次点击
所在节点    问与答
13 条回复
xupefei
2016-07-30 03:57:08 +08:00
正常来讲 .efi 所在的 FAT32 分区会被 BIOS 识别到,无需任何操作。
你确定当初克隆那个 100MB 的 FAT32 EFI System Partition 了么?
acess
2016-07-30 05:06:13 +08:00
有三个地方要注意:主板 NVRAM , ESP 分区里的 BCD 文件,还有注册表 MountedDevices 键(应该类似 Linux 下的 fstab 吧)

在 WinPE ( Windows 安装程序也算, SHIFT+F10 可以调出命令提示符)环境里可以进行操作。

NVRAM 里的启动项可以用 BOOTICE (作者博客: http://www.ipauly.com/)这个小工具管理,也可以参考微软的指南来清空 NVRAM 里的启动项,同时导入新的启动项,操作相对比较复杂:
https://technet.microsoft.com/en-us/library/cc749510(v=ws.10).aspx

ESP 分区里的 BCD 文件用 bcdboot 命令可以重建。可以先在 diskpart 里给 ESP 分区分配盘符(比如分配到 S 盘),然后使用这个命令重建 BCD ,并拷贝其他引导文件:
bcdboot E:\Windows /s S: /f UEFI /l zh-CN
这里 E 盘是 WinPE 里看到的,安装了 Windows 的分区,请根据现场状况自行调整。

注册表的 MountedDevices 键可以用一个小脚本 osletter7.cmd 来处理。
osletter7.cmd /currentos:E /targetletter:C
这里 E 盘是 WinPE 里看到的,安装了 Windows 的分区,请根据现场状况自行调整。/targetletter:C 中的盘符 C 表示目标 Windows 启动后使用的盘符,也就是以前“正常开机”后看到的启动卷盘符。
acess
2016-07-30 05:13:53 +08:00
UEFI 启动时,主板先根据 NVRAM 里的启动项顺序执行了 Windows Boot Manager , Windows Boot Manager 再根据 BCD 文件里的配置列出启动菜单( Win7 默认行为),或者继续启动 Windows ,进入 Metro 风格的图形界面启动菜单( Win8 以上默认行为)

bcdboot 命令有一个 /d 参数,加上它就可以保留 BCD 文件里原来就存在的数据。如果你想让 Windows Boot Manager 同时列出多个可以启动的系统,可以使用 /d 参数。

另外,注意一下,使用 bcdboot 命令(使用 /f ALL 或 /f UEFI 参数时)不仅会修改 BCD 文件,同时也会修改主板 NVRAM 里的启动项(添加 /更新 Windows Boot Manager 这一项)。
acess
2016-07-30 05:26:48 +08:00
有很重要的一点忘了说了, UEFI 引导规范是需要一个 FAT32 分区做 ESP 分区的。既然你想彻底撇清小硬盘的关系,让系统只从大硬盘上引导,那么大硬盘上必须有一个 FAT32 的 ESP 分区。
用 diskpart 就可以很方便地创建 ESP 分区,选择磁盘后,这个命令就可以创建一个 128MB 的 ESP 分区:
create partition efi size=128
创建完成后格式化为 FAT32 、分配盘符,然后再用 bcdboot 命令设置引导即可。
msg7086
2016-07-30 09:56:43 +08:00
换个工具。我这里克隆分区完了直接启动一点问题都没。
虚拟机里就直接两块硬盘从头 dd 完了删掉旧硬盘就行。
wwqgtxx
2016-07-30 10:09:15 +08:00
@acess 不过实际上,很多主板也能读取 ntfs 的 efi 引导文件。但是,最好是建立一个 fat16 的 esp 分区引导才是最好的
jasontse
2016-07-30 11:57:34 +08:00
你的大硬盘里需要有 FAT 格式的 ESP 分区,系统会从 \efi\boot\bootx64.efi 开始引导
yexm0
2016-07-30 12:10:38 +08:00
同意,我装 win10 时用的 u 盘就是 ntfs 格式的,主板一样能读取到里面的 efi 文件并引导系统。
seashell
2016-07-30 12:16:03 +08:00
创建新的 ESP 分区,删除旧的 ESP 分区,为新 ESP 分区分配卷标令其可见,使用 BCDBOOT 命令写引导,
例如 bcdboot c:\windows
pimin
2016-07-30 12:53:17 +08:00
给你推荐个软件, easyuefi
找个绿色版在 pe 下运行也可以
baskice
2016-07-30 21:26:48 +08:00
谢谢大家回复,我终于弄明白 UEFI 会有个小引导表直接存在芯片里,指向名为 ESP 的大概几百 MB 的硬盘头部分区,里面的 bcd 文件再写明 windows 路径就可以了。

但是发现 ssd 的全盘硬件加密兼容 bitlocker 要开启设定后,安全擦除,再完全重装系统才行,克隆的不行。所以最后还是完全重装了 orz
lslqtz
2016-07-30 22:45:34 +08:00
@acess 我用 FAT16...
lslqtz
2016-07-30 22:46:06 +08:00
用原版 pe 引导, bcdboot 完事。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/295932

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX