Windows 如何恢复 EFI 数据?

Windows 如何恢复 EFI 数据?

我对 EFI 分区信息如何位于 Windows 恢复媒体中(例如,在 DVD iso 文件中)感到困惑。

例如,我的 Windows 10 笔记本电脑硬盘有 3 个分区:EFI、MSR 和 Windows。因此,如果我的硬盘坏了,我买了一个替换的空白硬盘,我的 iso 文件需要包含此 EFI 信息。准确地说,EFI 信息必须存在才能“帮助”主板执行第一个“从 DVD 恢复启动”,并且必须存在才能传输到新硬盘的第一个分区(以便随后在正常启动中“提供帮助”)。对吗?我从一开始就可能错了,但我会假设这是真的。

(就我而言,iso 文件的大部分是“install.esd”子文件 - 这是我的 EFI 分区放置的位置吗?其他每个子文件看起来都太小了。)

现在我真正的问题是:

  1. 当 HDD 上已经有可运行的操作系统时,如果我执行“从 DVD 恢复启动”,会发生什么情况 - 如果我选择安装到一个空分区,保留旧的操作系统进行双启动,DVD 上的所有 EFI 数据是否会被忽略(因为 HDD 上已经有 EFI 数据分区)?

  2. 当我安装(即覆盖)旧操作系统时会发生什么 - EFI 分区会保留还是被替换?

答案1

EFI 分区实际上没有太多关键信息。它是一个常规的 FAT32 分区,包含一个小程序(Windows 启动管理器)及其配置文件。它实际上并不处理固件本身可以做的事情(例如检测 DVD);它的工作只是告诉固件如何具体启动一个或另一个操作系统。

您说得对,所有内容都是作为 Install.wim(或 .esd)映像的一部分安装的。但是,它不是以预制的“EFI 分区”的形式出现,而是以 C:\Windows 下的常规文件的形式出现。

  1. 整个 Install.wim 映像被解压到您的操作系统分区,产生诸如 C:\Windows 和 C:\ProgramData 之类的目录。

  2. 组成 Windows 启动管理器的文件从 C:\Windows\Boot\EFI 复制到 EFI 系统分区内的所需位置(通常在 \EFI\Microsoft 下)。

  3. 生成“BCD”配置文件,告诉 Windows 启动管理器在哪里找到主操作系统分区。

  4. 启动菜单项被添加到您的固件的 NVRAM 中,告诉它哪个文件(Bootmgfw.efi)是 Windows 启动管理器。

您可以自己完成所有这些操作;步骤 1 可以使用命令完成dism,步骤 2-4 可以使用命令完成bcdboot,这两个命令都随 Windows 一起提供。(事实上,这基本上就是 Windows 安装的全部内容。)

其他操作系统的工作原理类似。(例如,要在 Linux 上安装 systemd-boot,只需将程序文件 /usr/lib/systemd/boot/efi/systemd-bootx64.efi 复制到 EFI 系统分区,并创建一个指向要启动的 Linux 内核的文本文件...)

确切地说,必须有 EFI 信息来“帮助”主板执行第一次“从 DVD 恢复启动”,

是的,但在从 DVD 启动时,你只使用在 DVD 上本身。

并且必须存在才能被传输到新硬盘的第一个分区上(以便后续在正常启动时获得“帮助”)。

不,用于启动 DVD 的 EFI 文件与用于启动最终操作系统的 EFI 文件完全无关。它们不会被复制;而是使用操作系统安装映像中的文件。

当 HDD 上已经有可运行的操作系统时,如果我执行“从 DVD 恢复启动”,会发生什么情况 - 如果我选择安装到一个空分区,保留旧的操作系统进行双启动,DVD 上的所有 EFI 数据是否会被忽略(因为 HDD 上已经有 EFI 数据分区)?

引导加载程序是特定于操作系统的,因此每个操作系统几乎总是需要安装自己的副本。

当我安装(即覆盖)旧操作系统时会发生什么 - EFI 分区会保留还是被替换?

通常它会保留下来;安装程序将错误地保留可能无用的启动项,而不是删除可能需要的启动项。

相关内容