如何编辑旧的 GRUB 条目以指向新安装

如何编辑旧的 GRUB 条目以指向新安装

我使用的是 Ubuntu 22.04 LTS,但决定尝试 Debian 11。我创建了一个安装 USB,从 USB 启动并通过擦除整个驱动器来安装 Debian。

安装程序没有报告任何问题并正常退出。然而,拔掉 USB 并重新启动后,计算机无法启动至 Debian。相反,一条消息说 Ubuntu 不存在。我很困惑为什么 GRUB 还在寻找不存在的 Ubuntu。令我惊讶的是,Ubuntu 附带的 GRUB 和 Linux 内核并没有被 Debian 安装程序取代。

我尝试再次安装,但没有任何改变。我从实时 USB 启动 Ubuntu 并运行恢复工具,但它们都没有解决问题。

我唯一的选择可能是手动编辑 Ubuntu GRUB 的引导项,使其指向新的 Debian 安装。我怎样才能做到这一点?

答案1

一切都表明在 Debian 安装过程中您已经失败或跳过了 grub 安装本身。您可能无意中将其安装到另一个磁盘上,举一个可能原因的示例。

我认为解决问题的最简单且最具扩展性的方法是手动重新安装 grub,利用您拥有的 Ubuntu Live 映像并登录系统。

第一步是使用以下命令找到各个磁盘的分区:

sudo fdisk -l

为了继续解释,我将假设这是/dev/sda,但如果它有其他名称,请替换它。您必须安装有 debian 的分区,这可能是/dev/sda2(假设是/dev/sda1/boot分区):

mkdir -p /mnt
sudo mount /dev/sda2 /mnt
mkdir -p /mnt/boot
sudo mount /dev/sda1 /mnt/boot

现在,安装其余设备:

sudo mount --bind /dev /mnt/dev 
sudo mount --bind /dev/pts /mnt/dev/pts 
sudo mount --bind /proc /mnt/proc 
sudo mount --bind /sys /mnt/sys

执行chroot命令,以便我们以root身份访问Debian的文件系统:

sudo chroot /mnt

锁定后,我们将安装grub在 MBR 上:

grub-install --boot-directory=/boot/ --recheck /dev/sda

我们重新启动,当 Debian 再次启动时(不是 LiveCD),grub如果缺少任何操作系统,我们可以在菜单中手动调整编辑配置,或者使用以下命令自动执行此操作:

sudo update-grub2

相关内容