在 CentOS 上执行 update-grub 后没有 Ubuntu 的条目

在 CentOS 上执行 update-grub 后没有 Ubuntu 的条目

我的服务器正在运行来自 /dev/sda3 (ext4) 的 Ubuntu 12.04 LTS。我前段时间尝试过 CentOS 7,它位于 /dev/sda2 (xfs) 上,它的 grub 用于启动。它在 grub 菜单中仅显示最新的 Ubuntu 版本,但这很好。

我希望从 Ubuntu 到 CentOS 的迁移能够顺利,首先将一些复杂的服务放在 docker 容器中。

然后我发现 docker 在 3.16 上仅使用 vfs 运行,所以我降级到 3.13,按照一些建议,在 CentOS 中重新启动,运行 update-grub,然后重新启动。现在没有显示 Ubuntu 的条目

我已经从备份中恢复了 grub 菜单,并且可以再次启动到 Ubuntu(但是是较新的内核)。如何让 CentOS 生成 Ubuntu 内核条目?

答案1

我认为如果你想搬到那里,你尝试让 CentOS 启动是正确的,但你当然可以尝试看看 CentOS 是否被 Ubuntu 识别(grub-mkconfig在 Ubuntu 下),以及它是否(应该)grub-update在 Ubuntu 上运行,然后grub-install /dev/sda

整个问题是由发行版/etc/grub.d/10-linux对自己的旧版本进行更改(复制他们如何使用 Btrfs 子卷、LVM 和其他发行版特定特性)而引起的。如果您比较 Ubuntu 和 CentOS 的该文件,您会发现存在巨大差异。

在这种情况下我所做的是将/etc/grub.d/10-linux旧系统复制到/etc/grub.d/11-<old_distro_name> 在新系统上然后在新系统上运行grub-mkconfig/ 。update-grub这可以给你一些双重菜单条目,但恕我直言,这比菜单条目太少要好。

相关内容