双引导 ubuntu 和 manjaro:manjaro 仅在 initramfs 后备内核中引导

双引导 ubuntu 和 manjaro:manjaro 仅在 initramfs 后备内核中引导

我的机器上安装了 ubuntu 和双引导的 manjaro。安装后,manjaro 没有出现在 grub 中,所以我运行了update-grub。现在 manjaro 显示在 grub 中,但只能在高级选项 initramfs Fallback` 内核中启动。

我本来打算尝试重新安装 grub,但在尝试其他任何操作之前我想先在这里询问一下。

有什么建议么?

答案1

我也有同样的问题。重点是更新grub为 Manjaro 生成一个菜单项,但它需要 2文件在 initrd 行中:

  • /boot/amd-ucode.img
  • /boot/initramfs-5.8-x86_64.img

但它只生成前者。

这是一个知道漏洞你可以按照找到的答案来解决它这里

即:有两个文件需要修改;我已经在 Lubuntu 16.04.1 和 Manjaro Linux 上对其进行了测试。

在Ubuntu中:

  1. 文件/usr/lib/linux-boot-probes/mounted/40grub2中有一个函数parse_grub_menu()不处理所有 initrd 参数。您需要修改 'case "$1" in ... initrd)':

    a) 删除分配

    initrd="$(echo "$2" ...)"
    

    b) 添加两行来代替删除的一行:

    shift 1
    initrd="$(echo "$@" | sed 's/(.*)//')"
    
  2. /etc/grub.d/30_os-prober循环内的文件for修复 的分配LINITRD

    for LINUX in ${LINUXPROBED}; do
    ...
    LINITRD="`echo ${LINUX} | cut -d ':' -f 5 | tr '^' ' '`"
    

第一个修复需要所有可用的初始化程序将 Manjaro 的信息考虑在内。第二个修复清理了生成的初始化程序^通过将一些字符更改为空格来行。

相关内容