就我的情况来说,如何恢复 GRUB?

就我的情况来说,如何恢复 GRUB?

我的系统中有 2 个 NVMe,我们称之为 OldDrive 和 SecondaryDrive。OldDrive 安装了 Windows,而 SecondaryDrive 安装了各种 Linux 发行版。

我用 NewDrive 替换了 OldDrive,并安装了全新的 Windows,因此现在 PC 可以按预期直接启动到 Windows。

尽管 Linux 安装在 SecondaryDrive 上,但 GRUB 似乎位于 OldDrive 上,因此现在已经不存在了。

如果我没记错的话,GRUB 与 Kubuntu 相连。

BIOS 不再看到它,但它确实允许我启动到 Kali(我安装的另一个发行版)。

我仍然可以访问 OldDrive,因此我可以将其安装在备用 PCIe 上,并在需要时从它启动 Kubuntu。

恢复 GRUB 的最佳方法是什么?(最好使用原来的设置和壁纸,尽管重做也没什么大不了的)

答案1

在现代系统(使用 UEFI)中,grub 分两个地方安装:

  • EFI 分区上的 EFI“存根”
  • /boot 目录中的模块和配置。

通常你使用grub-install安装 grub 和update-grub进行配置。

既然您说您仍然可以启动系统,最简单的方法就是将 NewDrive 上的 EFI 分区挂载到某个地方。要找到您的 EFI 分区,您可以使用命令:sudo lsblksudo blkid为您提供一些有关可用分区的信息。

假设您的 EFI 分区是/dev/sde5,然后运行:

mount /dev/sde5 /mnt
grub-install --efi-directory=/mnt --boot-directory=/boot
umount /mnt

这应该足以安装 EFI grub stub,并将其告知您的 UEFI 固件。

然后确保更新文件/etc/fstab。这应该包含一个条目/boot/efi。您需要更改它,以便它从 NewDrive 而不是 OldDrive 安装您的 EFI 分区。如果可以,请尝试使用该分区的 PARTUUID。再次sudo blkid为您提供 PARTUUID。条目最终应该看起来像这样:

PARTUUID=be5da649-024d-4799-ac09-394d9d8b1a03 /boot/efi vfat defaults  0       1

我故意跳过了解释如何迁移的/boot步骤,因为您说所有的 Linux 分区都在同一个驱动器上。

相关内容