如何找出 Windows 10 正在使用哪个 EFI 系统分区?

Tom*_*day 6 efi boot-partition windows-10

我运行双启动 Windows 10 / Linux 系统有一段时间了,但我最近决定删除 Linux 分区。

目前,我成功启动并运行了 Windows 10,但是当我检查我的分区时,我看到我有 2 个 EFI 系统分区。

我的问题是 - 如何找出 Windows 正在使用哪个 EFI 系统分区,以便删除未使用的分区?

Kle*_*jmp 6

  • 使用管理员权限打开命令提示符(如果需要,请批准 UAC)

  • 启动diskpart-> diskpart

  • 选择带有 efi 分区的磁盘 -> sel disk 1(如果磁盘 1 是正确的磁盘)

  • 列出可用分区 ->列出部分

  • if 分区 2 是 efi 分区 -> sel 第 2 部分

  • 细节部分

    Partition 2
    Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
    Hidden  : Yes
    Required: No
    Attrib  : 0X8000000000000000
    Offset in Bytes: 524288000
    
    Run Code Online (Sandbox Code Playgroud)

现在,当“ Required:”属性设置为“No”时,您就知道这是可以删除的 EFI 分区。另一个 EFI 分区的“ Required:”属性将设置为“Yes”。不要删除该分区。

有关“必需”属性的更多信息,请滚动至:本页上的gpt 属性。

编辑:

要更改 Windows 启动设备(efi 分区),请使用以下命令:

bcdedit /set {bootmgr} device partition=a:
Run Code Online (Sandbox Code Playgroud)

*其中 a: 是为新 efi 分区分配的驱动器号

感谢 @mbrownyc 查找此信息 bcdedit 设备设置

  • 我有两个 EFI 分区 https://i.imgur.com/dKLTs05.png 并且都说它们不是必需的,所以我不会基于此删除 EFI (2认同)

bra*_*ded 5

我正在尝试在 Surface Book Gen 1 上进行相同的配置。似乎识别的方法是在 处运行以下调用cmd

echo list volume | diskpart   
Run Code Online (Sandbox Code Playgroud)

可引导 EFI 分区将列SystemInfo列中。

另一种方法是使用bcdedit /enum如下:

bcdedit /enum active
Run Code Online (Sandbox Code Playgroud)

我认为这是一种更好的方法。

我在MSFT 文档中找到了此信息


har*_*ymc 0

如果您有两个 EFI 分区,则其中一个是多余的,因为引导过程只会使用这两个分区之一。

EFI 启动分区始终有一个名为 的顶级目录/EFI。在该目录下,每个操作系统都有自己的子目录,其名称(希望)表明它用于哪个操作系统,并且(希望)对于该操作系统是唯一的。

我建议让这两个分区共存,因为删除错误的分区将使您的计算机无法启动。

如果您想更深入地检查它们,您可以通过在磁盘管理中为它们分配驱动器号来查看这些分区的内容,也可以在完成后将其删除。