我有两个硬盘 - 我们称它们为 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
我通过这样做修复了它:
- 从 sdb 启动。启动进入 Linux。
- 在 GParted 中,删除 200 GB 的 GRUB 分区。
- 在 GParted 中,创建一个 1 GB 分区并提交。(不确定是否需要。)
- 在 GParted 中,编辑 1 GB 分区的标志并添加 GRUB 标志。(不确定是否需要。)
- 从命令行运行:
$ sudo grub-install /dev/sda
我现在两个硬盘上都有 GRUB。
我仍然不明白为什么我的第一个grub-install
命令会破坏我的一个 GRUB。这对我来说仍然是个谜...