/etc/grub.d/09_lowlatency 和 /etc/grub.d/10_linux 双列表内核

/etc/grub.d/09_lowlatency 和 /etc/grub.d/10_linux 双列表内核

在全新的 ubuntu-studio 14.04 中安装 sudo apt-get install linux-generic。

然后 grub-mkconfig 会给你一个菜单

Ubuntu(低延迟)
Ubuntu
Ubuntu 的高级选项

使用“e”键快速查看将显示 Ubuntu (lowlatency) 和 Ubuntu 都指向

Linux /boot/vmlinuz-3.13.0-24-低延迟

解决方法是,您可以在“Ubuntu 的高级选项”菜单中选择所需的内核。

我们如何修复 /etc/grub.d/09_lowlatency 和 /etc/grub.d/10_linux 以使它们不选择相同的默认内核?

相关菜单项/boot/grub/grub.cfg来自/etc/grub.d/09_lowlatency

menuentry 'Ubuntu (lowlatency)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0f6e1051-cf9f-4299-b691-76d0d8c532d1' {
recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  0f6e1051-cf9f-4299-b691-76d0d8c532d1
        else
          search --no-floppy --fs-uuid --set=root 0f6e1051-cf9f-4299-b691-76d0d8c532d1
        fi
        linux   /boot/vmlinuz-3.13.0-24-lowlatency root=UUID=0f6e1051-cf9f-4299-b691-76d0d8c532d1 ro   quiet splash $vt_handoff
        initrd  /boot/initrd.img-3.13.0-24-lowlatency
}

菜单项/boot/grub/grub.cfg来自/etc/grub.d/10_linux

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0f6e1051-cf9f-4299-b691-76d0d8c532d1' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  0f6e1051-cf9f-4299-b691-76d0d8c532d1
        else
          search --no-floppy --fs-uuid --set=root 0f6e1051-cf9f-4299-b691-76d0d8c532d1
        fi
        linux   /boot/vmlinuz-3.13.0-24-lowlatency root=UUID=0f6e1051-cf9f-4299-b691-76d0d8c532d1 ro  quiet splash $vt_handoff
        initrd  /boot/initrd.img-3.13.0-24-lowlatency
}

是的,我向你保证我已经安装了一个正常的内核:

$ ls -l /vmlinuz*
lrwxrwxrwx 1 root root 30 May  5 20:37 /vmlinuz -> boot/vmlinuz-3.13.0-24-generic
lrwxrwxrwx 1 root root 33 May  2 20:25 /vmlinuz.old -> boot/vmlinuz-3.13.0-24-lowlatency

答案1

  1. 打开/etc/grub.d/10_linux以进行编辑

  2. 寻找内核列表循环:

    machine=`uname -m`
    case "x$machine" in
        xi?86 | xx86_64)
            list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
                      if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
                  done` ;;
        *)
            list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
                      if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
                 done` ;;
    esac
    
  3. 添加if子句以跳过lowlatency内核

    machine=`uname -m`
    case "x$machine" in
        xi?86 | xx86_64)
            list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
                      if [ -z "${i##*lowlatency}" ] ; then continue ; fi
                      if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
                  done` ;;
        *)
            list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
                      if [ -z "${i##*lowlatency}" ] ; then continue ; fi
                      if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
                 done` ;;
    esac
    
  4. 更新 Grub 列表

    sudo update-grub2
    

答案2

在“/etc/grub.d/10_linux”的条目中,有这些行。

 linux   /boot/vmlinuz-3.13.0-24-lowlatency root=UUID=0f6e1051-cf9f-4299-b691-76d0d8c532d1 ro  quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.13.0-24-lowlatency

我相信,如果您将这些行中的“lowlatency”都改为“generic”,您可能会解决问题。如果可以,请报告结果。我以前从未见过这种情况。

相关内容