我的系统中有 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 lsblk
并sudo 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 分区都在同一个驱动器上。