从 UEFI 笔记本电脑卸载 GRUB

从 UEFI 笔记本电脑卸载 GRUB

我在 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

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

error: no such partition.

接下来是 GRUB 救援:

grub rescue>

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

我以为还剩有 GRUB 文件,于是我运行它find . -iname "*grb*"find . -iname "*grub*"在 UEFI 分区中发现,但是只发现一个空文件bootx64.efi.grb(我将其删除了)。

GRUB 怎么还安装着?我怎样才能卸载它?

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

编辑:我忘了提一下,我删除了ubuntuUEFI 分区中的文件夹。

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

编辑 3:好的,我现在几乎可以正常启动了。启动时,我看到No partition active几秒钟后 Windows 启动。我该如何删除它?

答案1

我知道你已经解决了这个问题,但我想指出问题出在哪里,以及它是如何应该被修复(由最终用户和 Ubuntu 的开发人员修复)。

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

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

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

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

  1. 撤消 Boot Repair 工具的更改。这可以使用 Boot Repair 工具本身来完成;它有一个高级选项菜单,其中有一个名为“恢复 EFI 备份”的复选框。使用该菜单,GRUB 的多个副本将被删除,Windows 的引导加载程序将被恢复。或者,这可以手动完成。最重要的是,应将 的备份bootmgfw.efi(可能称为bkpbootmgfw.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 启动选项,尽管这种做法并不普遍。

请注意,Matthew,对于你的情况,我不建议你这样做;你有一个有效的配置,正如人们所说,“如果它没坏,就不要修复它。”你的 ESP 上可能还剩下一些零散的文件,但它们不会造成任何损害,所以最好不要管它。我给出了我的答案,希望其他人会觉得它有用。


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

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

答案2

我知道这个帖子很旧了,但是当我尝试自己解决这个问题时,我在自己的搜索中遇到了它,并且当其他答案都没有时,我找到了一个对我有用的解决方案,所以我需要分享!

我的笔记本电脑上安装了 Ubuntu 和 Windows 10 双启动系统。我决定删除 Ubuntu,并删除了它的分区,但 grub 仍然不断中断我的引导加载程序。在尝试了论坛上留下的无数建议后,我终于找到了一种非常简单、图形化的方式来自行删除它,哈哈。(所以,免责声明,我不知道其他版本的 Windows 是否有此选项)

但我所做的就是F12在计算机启动时进入启动选项。在其他选项我选择了BIOS 设置。我在左侧选择了启动顺序然后它就列出了我的不同启动选项,我可以选择它们来更改它们的顺序或删除它们或做任何我想做的事情。我所要做的就是确保只标记了“ubuntu”,然后点击删除引导然后退出。它继续进入登录屏幕,我重新启动了笔记本电脑,只是为了再次检查它是否解决了我的问题,而且确实如此!

答案3

好吧,我想这个方法并不适用于每台电脑,但这就是修复它的方法

首先,我通过笔记本电脑上的 BIOS 选项启动到“系统恢复”。这样我就可以进入 Windows,但是此后每次启动时都会收到一条消息,提示No partition activeWindows 启动前需要等待一秒钟。我通过执行以下操作摆脱了这个问题:

  1. 启动进入 Windows
  2. SHIFT + 单击“重新启动”
  3. 故障排除
  4. 先进的
  5. 命令提示符
  6. 跑步bootrec.exe /fixmbr

并重新启动。现在该消息不再出现,一切似乎正常。

答案4

在 Surface Pro 上,可以通过从 UEFI 菜单中选择“重新安装安全启动密钥”选项来绕过 Grub 2。

相关内容