如何在两个硬盘上安装 GRUB 并修复巨大的 GRUB 分区?

如何在两个硬盘上安装 GRUB 并修复巨大的 GRUB 分区?

我有两个硬盘 - 我们称它们为 sda 和 sdb。sda 曾经是我的主要硬盘;它上面有 GRUB 和 Linux(Kubuntu 20.04)。

我遇到了一个问题:当我安装时,我意外地给 GRUB 一个 200 GB 的巨大分区。

在此处输入图片描述

我确信这比 GRUB 所需的数量级要大几个数量级,但我不确定如何修复它。GParted 不想缩小分区。

我估计:“我们还可以在 sdb 上安装 GRUB。这样,如果我有两个可以运行的 GRUB,并且我不小心弄乱了其中一个,我仍然可以启动。”

我使用以下命令在 sdb 上安装了 GRUB:

$ sudo grub-install /dev/sdb

现在我可以从 sdb 启动了。但是我再也无法从 sda 启动了!我的旧 GRUB 坏了,现在我尝试从它启动时会显示以下内容:

Loading Operating System ...
error: symbol `grub_calloc' not found
Entering rescue mode...
grub rescue>

在此处输入图片描述

这表明 GRUB 比我想象的要脆弱得多。我没有刻意更改 sda 上的任何内容,但不知何故我的 GRUB 坏了。 :( 也许grub 安装我上面使用的命令并没有按照我想象的那样运行......

奇怪的是,当我在 GParted 中查看 sdb 时,它并没有说它上面有 GRUB......

在此处输入图片描述

有人能给我出出主意吗?如何才能在每个硬盘上安装 GRUB,这样既能让我启动 Linux,又不会让 GRUB 占用过多的空间?

以防万一:我相信我的固件使用的是 BIOS 而不是 EFI。我想我的主板是 2010 年或 2011 年的。

答案1

我通过这样做修复了它:

  1. 从 sdb 启动。启动进入 Linux。
  2. 在 GParted 中,删除 200 GB 的 GRUB 分区。
  3. 在 GParted 中,创建一个 1 GB 分区并提交。(不确定是否需要。)
  4. 在 GParted 中,编辑 1 GB 分区的标志并添加 GRUB 标志。(不确定是否需要。)
  5. 从命令行运行:
    $ sudo grub-install /dev/sda

我现在两个硬盘上都有 GRUB。

我仍然不明白为什么我的第一个grub-install命令会破坏我的一个 GRUB。这对我来说仍然是个谜...

相关内容