Windows 10:EFI 文件夹位于 NTFS C:驱动器上,这是怎么回事?

Windows 10:EFI 文件夹位于 NTFS C:驱动器上,这是怎么回事?

我已经在计算机上安装了 Windows 10,但遇到了一个真正令人头疼的问题。我的整个安装都包含在 SSD 上的单个 C: 分区中。我确实知道我正在使用 UEFI 启动,因为当我运行 msinfo32 时,BIOS 模式字段设置为 UEFI。

此外,我的 C: 驱动器包含一个名为 EFI 的文件夹,里面看起来像是所有 Windows 启动文件。我很困惑,因为我认为 EFI 需要自己的 FAT32 分区。为什么它们都位于我的 NTFS C: 驱动器上?以下是一些诊断屏幕截图。

屏幕截图链接

我还应该指出,我使用 EasyBCD 将启动驱动器从磁盘 0 更改为磁盘 2(见屏幕截图)。然后我从磁盘 0 中删除了系统保留分区并重新格式化了它。

一切都正常,只是看起来与我在网上看到的完全不一样。EasyBCD 是不是执行了一些我无法理解的魔法?如果有 Windows 专家能向我解释这一点,我将不胜感激。谢谢!

答案1

我没有读完这里的所有内容,所以如果我重复了某些内容,请见谅。据我所知,你没有问题:你只是好奇而已。所以这里是:

  1. 如果满足以下两个条件,您就可以从 NTFS 分区以 UEFI 模式启动:- 您在 NTFS 分区中拥有正确配置的 EFI 目录 - 您的 PC 硬件支持它。较旧的 PC 只能从 FAT32 启动,但较新的 PC 则无所谓。我实际上能够从 exFAT、NTFS 甚至更多启动。
  2. 仅仅因为 C 盘中有 EFI 文件夹,并不意味着 Windows 会从那里启动。您的 PC 仍然可能有一个 EFI 分区。您可以在 Windows 磁盘管理工具或任何其他分区管理器(如 Easeus 分区管理器、Acronis 磁盘管理器)中看到它……不确定确切的名称,但这并不重要。
  3. 当我开始使用 Windows 时,我发现 Rufus(程序)创建了一个非常有趣的 fat32 分区,小于 1MB,称为 UEFI:NTFS 或类似名称。我认为您可以从他们的网站下载文件或使用该程序创建文件...我已经忘记了。但是,如果您在硬盘上创建一个小的 fat32 分区并将这些文件放在那里,即使它是 NTFS,即使您的 PC 不支持它,您的 PC 也会从 C: 驱动器上的 EFI 目录找到并启动。希望这对您来说很有趣。

答案2

如果没有磁盘/分区配置错误,这种情况根本不可能发生,因为 Windows 安装程序无法根据 Windows 的安装方式执行此操作。OP 参考:

我还应该指出,我使用 EasyBCD 将启动驱动器从磁盘 0 更改为磁盘 2(见屏幕截图)。然后我从磁盘 0 中删除了系统保留分区并重新格式化了它。

此类磁盘/分区配置错误只有几种可能发生的方式:
(缺少 WinRE 分区意味着双启动 Windows 或自 Win 8 以来 Windows 尚未全新安装)

  • 错误bcdboot句法
  • 操作系统被移至新硬盘,启动前未正确配置分区
  • 系统之前配置为双启动,之前存在的 EFI 分区已被删除,并且从未在剩余操作系统的硬盘上重新配置
    • 一旦删除了其他磁盘上的 EFI 分区,OP 或 Windows 的启动修复就会使用BootRec或来修复缺少的启动文件BcdBoot,而启动文件将被放置在没有 EFI 分区的唯一分区上 - OS 分区,这是一个不支持配置引导过程


解决:

  1. 下载Windows 10 安装介质→ 在另一台电脑上安装 → 保存 ISO
  2. 使用以下方式创建可启动 USB鲁弗斯→ 启动 → 在 GUI 上,按Shift+F10打开终端
  3. 如果分区表不是 GPT,请使用mbr2gpt转换它:
    1. 核实磁盘 2是正确的磁盘通过DiskPartlis diskexit
    2. mbr2gpt /convert /disk:2
      

  4. 创建必需UEFI 启动通过DiskPart
    1. DiskPartlis disksel dis #→ 验证它是否是操作系统磁盘:det disk
    2. 温瑞
      sel par 1→ 验证其是否为操作系统分区:det par
      Shrink Desired=665 Minimum=650
      Cre Par Pri Size=665 Id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
      Format Quick Fs=NTFS Label=WinRE
      Gpt Attributes=0x8000000000000001
      
    3. 电喷磁共振
      sel par 2→ 验证其是否为操作系统分区:det par
      Shrink Desired=388 Minimum=388
      Cre Par EFI Size=100
      Format Quick Fs=FAT32 Label=EFI
      Assign Letter=Y
      Cre Par Msr Size=16
      
    4. 获取操作系统分区驱动器号:lis volexit
      C:通常不是 WinPE/WinRE 中的操作系统驱动器号)

  5. 配置EFI启动:
    ::# Create EFI directories and enter:
        MkDir "Y:\EFI\Microsoft\Boot"
        Cd /d "Y:\EFI\Microsoft\Boot"
    
    ::# Create EFI boot structure:
        BootRec /Fixboot
    
    ::# If Access Denied error occurs (C: is OS partition):
        BcdBoot C:\Windows /s C: /f UEFI
    
    ::# Resolve any other boot issues:
        BootRec /FixMBR && BootRec /RebuildBCD
    
    删除 EFI 挂载点:DiskPartSel Vol YRemoveExit

  6. 通过重新启动wpeutil reboot,然后配置温瑞重新启动 Windows 后:
    1. 打开行政终端:WinKey+R打开powershellCTRL+SHIFT+好的
    2. 挂载 WinRE 分区:DiskPart
      lis volsel vol #→ 验证:det parAssign Letter=ZExit
    3. WinRE.wim从 Windows 安装 USB 中提取sources\install.wim|| .esd
      # Get list of images [indexes] within the ESD/WIM:
        Dism /Get-ImageInfo /ImageFile:"E:\sources\install.wim"
      
      # Mount install.wim||.esd (usually index 1: Home | 6: Pro):
        MkDir "C:\Mount" ; Dism /Mount-Image /ImageFile:"E:\sources\install.wim" /Index:1 /MountDir:"C:\Mount" /ReadOnly
      
      # Copy WinRE.wim:
        Xcopy "C:\Mount\Windows\System32\Recovery\WindowsRE\WinRE.wim" "C:"
        # If hidden file: Xcopy /H
      
      # Unmount image, discard changes:
        Dism /Unmount-Image /MountDir:"C:\Mount" /Discard
      
    4. # Copy WinRE.wim:
        MkDir "Z:\Recovery\WindowsRE" ; Xcopy "C:\WinRE.wim" "Z:\Recovery\WindowsRE"
      
      # Disable WinRE:
        ReAgentC /Disable
      
      # Set Custom WinRE Path:
        ReAgentC /SetREimage /Path "Z:\Recovery\WindowsRE"
      
      # Enable WinRE and verify:
        ReAgentC /Enable ; ReAgentC /Info
      
      # Cleanup:
        Del "C:\WinRE.wim" ; RmDir "C:\Mount"
      
    5. 删除 WinRE 挂载点:DiskPartSel Vol ZRemoveExit

答案3

如果 EUFI 中有 NTFS 的胶囊驱动程序,则 EFI/EUFI 引导加载程序(和恢复)可以驻留在 NTFS 分区中。您的整个 PC 上只有一个分区。这不是问题,正如上面正确指出的那样。此外,您实际上甚至不需要对驱动器进行 GPT(正式的 UEFI 2.x 规范要求同时支持 GPT 和 MBR 分区。第 324 页(9.3.6.1),还有第 72、113–115、539 等,请参阅硬盘是否需要 GUID 分区表(GPT)才能在 UEFI 模式下启动?)。真是……唉。有这么多错误的信念。

还应该非常注意(!!!)Windows 不像 Linux,在操作系统驱动器上的 /boot/efi(/boot/efi 本身是一个空文件夹)中安装了 FAT32 分区(在 Windows 中称为链接)

root@kali:~# mount
****
/dev/sda3 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
****

但是 Windows 有引导加载程序重复(未安装)在 C:\WINDOWS\Boot 中,所以这就是您设法启动的原因(即使您有另一个放置引导加载程序的地方)。

相关内容