卸载/安装操作系统时 grub 被删除

卸载/安装操作系统时 grub 被删除

我有两个分区,每个分区上都安装了 ubuntu。

我用 g-parted live 删除了一个分区,当我重新启动时,我以为 grub 仍会显示另一个分区,其中包含 Ubuntu 以供启动。然而,我却收到一个错误,我不记得它说了什么,但它不让我启动。

我不得不创建另一个分区并再次安装 Ubuntu,只是为了恢复 grub,这很痛苦。

几天后,我创建了另一个分区并在其上安装了 Windows 7,但在启动过程中,grub 又消失了,它只能从 Windows 启动,尽管我在另一个分区上安装了 Ubuntu。因此,我不得不再次创建一个新分区并安装 Ubuntu 才能恢复 grub。

有没有办法在创建和删除分区时保留 grub?

答案1

你可以用以下方法修复你的食物引导修复。对于需要它的人或由于加载另一个操作系统而导致 grub 消失的人来说,这是一个非常有用的指南。

答案2

正如 SimplySimon 所说,Boot Repair 有时可以在事后修复问题。不过,要了解发生了什么,需要了解两种情况:

BIOS

在传统的基于 BIOS 的计算机上,固件 (BIOS) 会读取硬盘的第一个扇区 (又称主引导记录,即 MBR) 并执行其中包含的代码。因此,MBR 中的任何代码都会控制计算机的启动过程。(现代计算机通过允许您指定要启动哪个硬盘来提供有限的控制,但这仅适用于多磁盘计算机。)

为了使计算机可启动,操作系统安装程序必须能够将引导加载程序安装到 MBR。也就是说,一些安装程序将此步骤设为可选,依靠用户知道何时已安装另一个引导加载程序。微软一直将引导加载程序安装到 MBR-可选,针对经验较少的用户的 Linux 发行版近年来也一直走同样的路线。

最终结果是,您安装的最后一个操作系统将控制引导过程,除非该最后一个操作系统提供了专家级的引导加载程序安装控制。如果这不是您想要的,则重新安装引导加载程序是唯一的选择。Ubuntu 的 Boot Repair 工具可帮助自动执行此任务,但也有其他方法可以完成此任务。

电喷

较新的计算机使用 EFI 固件而不是 BIOS。(但令人困惑的是,制造商和大多数用户在指代 EFI 时仍使用术语“BIOS”。这种用法在技术上是不正确的,而且恕我直言,它助长了令人困惑的误解。)这些计算机将引导加载程序作为普通文件存储在 EFI 系统分区 (ESP) 上。您可以在 ESP 上存储任意数量的引导加载程序。它们在通过 Linuxefibootmgr或其他操作系统中的等效项创建的 NVRAM 条目中引用。

当操作系统自行安装时,它通常会注册其引导加载程序并将其设为默认;但您通常可以通过在引导过程中按下功能键来切换到另一个引导加载程序。不幸的是,管理引导过程所要按下的键完全是非标准化的,而且有些计算机非常粗鲁,在引导过程中甚至不会激活键盘,因此可能无法进行这样的更改——至少,如果不更改某些固件设置,则无法进行这样的更改。

因此,在实践中,EFI 的行为与 BIOS 的行为非常相似:最后安装的操作系统的引导加载程序优先。不同之处在于,EFI 下的恢复方法不是需要重新安装引导加载程序;它只需要使用efibootmgr或其他工具来更改引导顺序。Boot Repair 实用程序可以做到这一点,但它还会做很多其他事情,其中​​一些通常是不必要的,从长远来看可能是有害的。因此,我不太喜欢基于 EFI 的计算机上的 Boot Repair。如果你很幸运,你的固件会提供一种永久调整引导顺序的方法,但这种能力相对较少。

相关内容