从 UEFI 笔记本电脑卸载 GRUB

Tor*_*ero 9 grub2 uefi grub-efi

我在 Windows 8 旁边安装了 Ubuntu,但是决定卸载 Ubuntu。

首先,我启动到 Parted Magic 并使用 GParted 删除了所有的 ext4 和交换分区。

这给我留下了与安装 Ubuntu 之前相同的分区:

/dev/sda1 ntfs WINRE_DRV
/dev/sda2 fat32 SYSTEM_DRV (my UEFI partition)
/dev/sda3 fat32 LRS_ESP
/dev/sda4 unknown Microsoft Reserved Partition
/dev/sda5 ntfs Windows8_OS
/dev/sda6 ntfs LENOVO
/dev/sda7 ntfs PBR_DRV
Run Code Online (Sandbox Code Playgroud)

我希望删除分区足以删除 Ubuntu 并允许我重新启动到 Windows 8,但是每当我启动时,我都会收到以下错误:

error: no such partition.
Run Code Online (Sandbox Code Playgroud)

接下来是 GRUB 救援:

grub rescue>
Run Code Online (Sandbox Code Playgroud)

在我的 UEFI 分区中,有两个目录BOOTEFI. InBOOT是单个文件 - boot.sdi. 在EFI目录中的另外两个目录BOOTMicrosoft。里面BOOT有两个文件,bkpbootx64.efibootx64.efi. 该Microsoft目录中有一个名为Boot. 里面是正常的 Microsoft EFI 文件(据我所知)。

思考仍有GRUB文件离开了,我跑find . -iname "*grb*",并find . -iname "*grub*"在UEFI分区,但只发现一个空文件,bootx64.efi.grb(我删除)。

如何仍然安装 GRUB,我该如何卸载它?

我对 UEFI 还很陌生,所以可能需要详细解释一下。电脑是联想IdeaPad Z580。

编辑:我忘了提,我删除ubuntu了 UEFI 分区中的文件夹。

编辑 2:我设法通过笔记本电脑 BIOS 设置中的“系统恢复”选项重新进入 Windows。这可能解决了问题,也可能没有解决。

编辑3:好的,我现在几乎可以正常启动了。当我启动时,我看到No partition active几秒钟然后 Windows 启动。我怎样才能删除它?

Rod*_*ith 29

我意识到你已经解决了这个问题,但我想指出哪里出了问题以及应该如何解决(最终用户和 Ubuntu 的开发人员)。

首先,Ubuntu 的开发人员决定——最不明智的是——创建一个依赖于 Ubuntu 根 ( /) 分区以及EFI 系统分区 (ESP) 中的文件的 GRUB 配置这使得 GRUB 容易被删除或损坏 Linux 分区,因此导致在删除 Ubuntu 或 Ubuntu 安装以某种方式损坏后难以启动计算机。这个漏洞是不必要的;可以配置 GRUB 以在 ESP 上查找其所有支持和配置文件。如果以这种方式配置 GRUB(如 Fedora 那样),那么删除 Ubuntu 不会影响 GRUB 重定向到 Windows 的能力。系统仍会通过 GRUB 引导,但至少仍会引导。因此,对 Ubuntu 以错误的方式设置 GRUB 感到羞耻。

其次,根据您提到的文件名,您似乎在某个时候运行了 Ubuntu 的引导修复工具。此工具会自动重命名 Windows 引导加载程序,EFI/Microsoft/Boot/bootmgfw.efi并在其位置放置 GRUB 的副本。它对 EFI 回退引导加载程序执行相同的操作EFI/BOOT/bootx64.efi,并将另一个 GRUB 副本放入 as 中EFI/Microsoft/Boot/bootx64.efi,原因我不认为是理解的。这是作为少数 EFI 中错误的解决方法而完成的。问题是引导修复默认执行此操作在大多数计算机上,它不是必要的。当随后需要对引导配置进行更改时,这种 GRUB 的重命名和复制会变得复杂,因为用户只能猜测发生了什么。因此,Boot Repair 的开发人员对他们的维修毫不含糊,这让他们感到羞耻。(不过,在他们的辩护中,Boot Repair 很难可靠地检测出哪些计算机存在需要以默认方式移动引导文件的错误。)

还有一点很重要:在正常运行的 EFI 系统中,引导程序列表保存在 NVRAM 中。EFI 按顺序尝试此列表中的每个程序;如果一个失败或不存在,则尝试下一个。安装 Ubuntu 时,它会将其 GRUB 版本添加到列表顶部。大多数 EFI 还允许用户从内置引导管理器中指定要使用的引导程序,但这种内置引导管理器在大多数 EFI 上是粗糙的。

将所有这些因素加起来,原始问题的最简单解决方案变为:

  1. 撤消启动修复工具的更改。这可以使用引导修复工具本身来完成;它有一个高级选项菜单,带有一个名为“恢复 EFI 备份”的复选框。使用它,将删除 GRUB 的多个副本,并恢复 Windows 的引导加载程序。或者,这可以手动完成。最重要的bootmgfw.efibkpbootmgfw.efi,应将备份(可能称为,尽管某些版本的 Boot Repair 使用了其他名称)应复制到EFI/Microsoft/Boot/bootmgfw.efiESP 上。
  2. 在其官方/适当位置删除 GRUB——EFI/ubuntu/grubx64.efi对于 Ubuntu。如果安全启动处于活动状态,则需要删除EFI/ubuntu/shimx64.efi。事实上,删除整个EFI/ubuntu目录,或者至少重命名它,无论如何都可以完成这项工作。

就是这样。完成这两件事后,EFI 将跳过 Ubuntu 引导选项,因为它不再有效并继续引导 Windows。一些 EFI 也会自动从其引导管理器的菜单中删除 Ubuntu 引导选项,尽管这种做法并不普遍。

请注意,在您的情况下,马修,我不建议您做这些事情;你有一个可用的配置,正如他们所说,“如果它没有坏,就不要修理它。” 您的 ESP 上可能会留下一些杂散文件,但它们不会造成任何伤害,因此最好不要管它。我已经提出了我的答案,希望其他人会觉得它有用。


编辑:以上在我第一次写的时候是正确的,原则保持不变;但是,引导修复不再自动重命名 Windows 引导加载程序并将其替换为另一个 GRUB 副本。(Boot Repair 可以选择执行此操作但该选项隐藏在高级选项菜单中,因此默认情况下不再执行。)这一事实使得今天比 2013 年更容易从此问题中恢复。在大多数情况下,您只需要删除EFI/ubuntuESP上的目录,使系统直接启动到Windows。如果执行此操作后 GRUB 仍然出现,则您可能使用了 Boot Repair 选项来备份和重命名引导文件,在这种情况下,使用它来撤消这些操作是正确的,如前所述。

另一种选择是使用计算机的内置引导管理器(通常在您打开计算机后立即通过按功能键、Esc 或 Enter 进行访问)绕过 GRUB 并引导至 Windows。然后您可以使用EasyUEFI调整引导顺序和/或ubuntu从引导列表中删除条目。此操作不会从 ESP 中删除 GRUB,但会绕过 GRUB。