最近我在我的电脑上安装了 CentOS 7,之前我安装了 debian 7 和 manjaro。当我安装manjaro时,我覆盖了debian的引导加载程序,manjaro的grub识别了这两个系统,并且一切正常,现在我安装了CentOS,我覆盖了/boot/efi,新的grub识别了这三个系统,但只有CentOS可以工作。当我尝试启动 debian 或 manjaro 时,会出现以下消息:
error: cant't find command linux
error: cant't find command initrd
答案1
问题是在您的 centos(或任何默认启动操作系统)中找不到使用的linux
and命令。initrd
/boot/efi/EFI/centos/grub.cfg
您必须将linux
tolinuxefi
和initrd
to替换initrdefi
为grub配置文件文件。所以请遵循以下操作:
1 - 启动到centos终端
2 - 安装 grub2-efi
# yum install grub2-efi
4 -/boot/efi/EFI/centos/grub.cfg
使用文本编辑器打开。
# vi /boot/efi/EFI/centos/grub.cfg
笔记:如果 grub.cfg 不存在,请尝试/boot/grub2/grub.cfg
...如果也不存在,请尝试生成:# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
5 - 查找所有linux
命令并替换为 linuxefi。因此,找到所有 initrd 命令并替换为 initdefi
编辑样本之前
操作系统/boot/vmlinuz-0-rescue-d1268bb1d6df49758a1ec5715984725c root=/dev/sda1
初始化程序 /boot/initramfs-0-rescue-d1268bb1d6df49758a1ec5715984725c.img
编辑示例后:
linuxefi/boot/vmlinuz-0-rescue-d1268bb1d6df49758a1ec5715984725c root=/dev/sda1
初始化 /boot/initramfs-0-rescue-d1268bb1d6df49758a1ec5715984725c.img
6 - 重新启动