我使用 root 权限安装了 Ubuntu 12.04 /dev/sda2
,并安装了 Fedora 21,将磁盘从 MBR 转换为 GPT。现在我可以启动 Fedora,并且 GRUB 中有 Ubuntu 选项,但它失败并出现错误:kernel too old
,当我尝试从 GRUB 命令行启动时,出现错误:can't find command 'linux'
,因为 GRUB 只有linuxefi
命令。有人能告诉我如何启动 Ubuntu 吗?
答案1
我粗略地猜测,Fedora 以 EFI 方式安装了 grub,而 Ubuntu 以另一种传统方式安装了 grub,因此当 Fedora 尝试选择 Ubuntu 在其菜单中显示它时,它会发现一个不兼容的步骤。
你可能会发现为什么安装并删除 Fedora 后我无法启动 Ubuntu?对于手动解决方案,例如使用以下命令列出 BIOS 中注册的 EFI 启动项
sudo efibootmgr -v
并使用如下命令删除多余的
sudo efibootmgr -b 5 -B # don't run unmodified, adapt to your case! I did not need such a step
如果你更喜欢自动化工具,你可能会找到更适合你的解决方案在 x86_64 EFI 机器上安装 Fedora 20 后无法启动 ubuntu 13.10但我避开了他们,因为我更想知道接下来会发生什么。
我最终在计算机上将 BIOS 设置中的启动顺序更改为首先选择 Ubuntu。然后,如果我想启动 Fedora,我会在 BIOS 屏幕上按 Esc,屏幕上会显示一个 EFI 启动菜单,允许选择要启动的操作系统。我忽略了不同的 grub 实例提供无法正常工作的选项来启动其他发行版的事实。
可能的话,如果所有使用 grub 的操作系统都配置相同(EFI 或 legacy),那么所有 grub 实例都可以启动所有其他操作系统(非 EFI 机器上就是这种情况),但这不是必需的(只是显示不起作用的选项不太雅致)。