我之前在硬盘上安装了 Ubuntu 12.10(我认为它的 GRUB 版本是 0.97)。然后我升级到了 13.04。现在我运行时grub-install -v
,它显示它的 GRUB 是 2.00
后来我遇到了无法启动 Ubuntu13.04 的问题。因此,我使用实时 Ubuntu 12.10 CD 重新安装了 GRUB。但是,当运行相同的命令时(grub-install -v
),它显示其 GRUB 0.97
这意味着 Ubuntu 12.10 的 Live CD 有 GRUB 0.97。所以我以前用过这个设置。[现在出现了一个严重的问题。Ubuntu 12.10 有 GRUB 版本 0.97 吗?因为Ubuntu 网站说从 Ubuntu 9.10 (Karmic Koala) 开始,它的 GRUB 2 ]
但我注意到,虽然命令输出的是 GRUB 版本 0.97,但当我启动系统时,启动菜单显示 GRUB 2.0(写在顶部作为标题)。虽然很明显我的 GRUB 是 0.97(由终端中运行的命令确认),所以我在想为什么 GRUB 菜单(在启动时)显示错误的版本。
我的想法是,由于我原来的操作系统(13.04)有 GRUB 2.0,所以由于从 Ubuntu12.10(有 GRUB 版本 0.97)重新安装 GRUB,引导加载程序从 GRUB 2.0 更改为 GRUB 版本 0.97,但标题保持不变。
请重点关注这一点。
我想补充一下,我按照 Ubuntu 网站的步骤将 GRUB 从 0.97 升级到了 GRUB 2.0。现在我得到了以下输出:
ravbholua@ravbholua-Aspire-5315:~$ grub-install -v
grub-install (GRUB) 2.00-13ubuntu3
ravbholua@ravbholua-Aspire-5315:~$
编辑
我重新检查后发现,当我sudo apt-get install grub
运行 grub 命令时,我在不知情的情况下得到了 grub legacy。昨天我将 GRUB 从 legacy 升级到了 GRUB 2。为了测试我提出的问题,我刚刚从 Ubuntu 12.10 live CD 安装了引导加载程序。我通过 live CD 中的命令行检查了 GRUB 的版本,它显示GNU GRUB version 2.00-7ubuntu11
。然后我移除了 live CD 并重新启动。在 GRUB 菜单中,它显示与上面相同的 GRUB 版本,即GNU GRUB version 2.00-7ubuntu11
。但登录后,通过命令行它显示grub-install (GRUB) 2.00-13ubuntu3
。这是昨天命令行的输出,即在我今天从 live CD 重新安装 GRUB 之前。为什么会有这种差异?
答案1
grub 和 grub2 都使用相同的 grub install 命令,但这取决于您安装了哪个软件包。如果您卸载了 grub-pc(即 grub2)并安装了 grub,那么您将获得旧的 grub 遗留版本。
从你的 chroot。
卸载 grub legacy 和 grub2 重新安装 grub2 并安装到 sda
apt-get purge grub grub-pc grub-common
mv /boot/grub /boot/grub_backup
mkdir /boot/grub
apt-get install grub-pc grub-common
grub-install /dev/sda
grub-install --recheck /dev/sda
答案2
事实上,正如你在这里看到的:https://help.ubuntu.com/community/Grub2,自 Ubuntu 9.10 以来,Grub(0.97 版和其他 0.xx 版)已被其后继者 Grub 2(显示为 1.97 版及更高版本)取代。因此,您的 Ubuntu 12.10 安装很可能已经安装了 Grub 2。我还记得我的 12.04 安装显示它安装了 Grub 2(更具体地说是 1.99 版,我想但我不确定)。
我不知道为什么您的 12.10 CD 上的命令行显示它是 Grub 0.97,但我很确定它实际上已经是 Grub 2。也许您偶然发现了 12.10 版本中的错误,或者由于遗留原因 Grub 0.97 仍然存在。在后一种情况下,我不知道为什么它会在您的系统上安装 Grub 0.97 而不是 Grub 2。