意外删除的 efi 分区

Mik*_*art 5 partitioning uefi grub-efi boot-partition windows-10

所以,我真的把事情搞砸了......长话短说,我删除了我的 Windows 8.1 efi 分区,现在无法启动到 Windows。此外,我什至没有留下一个 efi 分区来创建 linux 安装(它似乎需要这样它可以将 linux 引导加载程序放在某个地方)。

我可以在笔记本电脑上使用的就是 live ubuntu cd。此外,每次打开 gparted 时都会崩溃,在函数 _parse_header 中的 ../../../libparted/labels/gpt.c:994 处给出一个非常模糊的错误“断言(last_usable <= disk->dev->length)” () 失败的。” 我什至不确定我的电脑是否可以从 efi 启动,因为我在 bios 菜单中将它切换到传统模式并且无法恢复。

我尝试使用 Windows 10 live cd 并在那里修复安装,但安装程序不喜欢当前现有的任何分区。对于他们中的大多数人来说,它说有 GPT 格式,它不能使用它。

我从哪里开始解决这个问题?有什么方法可以从 linux live cd 创建一个 efi 分区吗?如果我的整个计算机被擦除,我没有任何偏好,我拥有我需要的所有备份,我只想能够再次使用我的计算机。这是 sudo gdisk -l /dev/sda 给出的分区列表。

Disk /dev/sda: 250069680 sectors, 119.2 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 5C489780-9031-436B-B6C1-4F0C29E16773
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 500121566
Partitions will be aligned on 2048-sector boundaries
Total free space is 6077 sectors (3.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1230847   600.0 MiB   2700  Basic data partition
   2         1230848         1845247   300.0 MiB   0700  
   3         1845248         2107391   128.0 MiB   0C01  Microsoft reserved part
   4         2107392       500117503   237.5 GiB   EF00  Basic data partition
Run Code Online (Sandbox Code Playgroud)

以下是 Windows 10 安装 USB 识别的分区的一些图像。

前四个分区,C盘

接下来四个分区,D盘

尝试选择 Drive 1 Partition 1 进行安装后的消息是“Windows 检测到 EFI 系统分区已格式化为 NTFS。将 EFI 系统分区格式化为 FAT32,然后重新启动安装。” 当然,如果 gparted 工作,这不会那么糟糕,但是每次我打开它时它都会崩溃......

Ash*_*san 3

我认为最好的行动方案是:

  1. 使用 Ubuntu 备份所有数据。
  2. 删除磁盘 0 上的所有分区(安装了 Windows 的分区)。
  3. 安装任意 Ubuntu/Windows。他们将自己创建所需的分区。(最好是Windows

如果您想尝试挽救(现在似乎更困难),请继续阅读。

首先尝试这个:

gdisk t 2 EFOO
gdisk t 4 0700
Run Code Online (Sandbox Code Playgroud)

然后仅执行下面的步骤 1、2 和 3(请勿执行 4)。重启看看是否有效。

如果不是,请继续执行以下说明。

300MB 的 SYSTEM 分区很可能(99.99%)是 EFI 分区。您不需要 gparted 来执行我们需要的操作。
只需启动 Ubuntu 并运行以下命令:

  1. 找到你的EFI分区名称

    sudo fdisk -l
    
    Run Code Online (Sandbox Code Playgroud)

    正如您所提到的,EFI 分区的大小为 300MB。记下它的名称(最有可能是/dev/sda2)

  2. 挂载EFI分区

    sudo mkdir /mnt/efipart
    sudo mount /dev/sda2 /mnt/efipart
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将 EFI 目录从 Windows 安装介质复制到该分区。首先使用步骤 1 中的方法找到 Windows 安装介质的名称。fdisk假设它是 /dev/sdc1

    sudo cp -R /dev/sdc1/efi/* /mnt/efipart/EFI/
    
    Run Code Online (Sandbox Code Playgroud)
  4. 设置 EFI 分区标志。

    gdisk t 2 EFOO
    
    Run Code Online (Sandbox Code Playgroud)

顺便说一句:再次查看您刚刚显示的分区表,似乎这可能不起作用(但仍然值得一试)。

如果这不起作用,您将不得不重新分区磁盘(从头开始) 请参阅以下内容以防万一:

https://superuser.com/questions/764799/how-to-create-an-efi-system-partition
如何创建 EFI 分区