我对 EFI 分区信息如何位于 Windows 恢复媒体中(例如,在 DVD iso 文件中)感到困惑。
例如,我的 Windows 10 笔记本电脑硬盘有 3 个分区:EFI、MSR 和 Windows。因此,如果我的硬盘坏了,我买了一个替换的空白硬盘,我的 iso 文件需要包含此 EFI 信息。准确地说,EFI 信息必须存在才能“帮助”主板执行第一个“从 DVD 恢复启动”,并且必须存在才能传输到新硬盘的第一个分区(以便随后在正常启动中“提供帮助”)。对吗?我从一开始就可能错了,但我会假设这是真的。
(就我而言,iso 文件的大部分是“install.esd”子文件 - 这是我的 EFI 分区放置的位置吗?其他每个子文件看起来都太小了。)
现在我真正的问题是:
当 HDD 上已经有可运行的操作系统时,如果我执行“从 DVD 恢复启动”,会发生什么情况 - 如果我选择安装到一个空分区,保留旧的操作系统进行双启动,DVD 上的所有 EFI 数据是否会被忽略(因为 HDD 上已经有 EFI 数据分区)?
当我安装(即覆盖)旧操作系统时会发生什么 - EFI 分区会保留还是被替换?
答案1
EFI 分区实际上没有太多关键信息。它是一个常规的 FAT32 分区,包含一个小程序(Windows 启动管理器)及其配置文件。它实际上并不处理固件本身可以做的事情(例如检测 DVD);它的工作只是告诉固件如何具体启动一个或另一个操作系统。
您说得对,所有内容都是作为 Install.wim(或 .esd)映像的一部分安装的。但是,它不是以预制的“EFI 分区”的形式出现,而是以 C:\Windows 下的常规文件的形式出现。
整个 Install.wim 映像被解压到您的操作系统分区,产生诸如 C:\Windows 和 C:\ProgramData 之类的目录。
组成 Windows 启动管理器的文件从 C:\Windows\Boot\EFI 复制到 EFI 系统分区内的所需位置(通常在 \EFI\Microsoft 下)。
生成“BCD”配置文件,告诉 Windows 启动管理器在哪里找到主操作系统分区。
启动菜单项被添加到您的固件的 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 分区会保留还是被替换?
通常它会保留下来;安装程序将错误地保留可能无用的启动项,而不是删除可能需要的启动项。