2 votes

update-grub2 n'a pas pu trouver le noyau personnalisé

J'ai compilé un nouveau noyau basé sur le noyau 5.4.18-xanmod10. Puis je l'ai installé :

sudo dpkg -i linux*5.4.18-xanmod10-custom*.deb

Mais après l'avoir installé, il n'a pas été trouvé par update-grub2 :

root@lenovo:~# ls /boot/
config-5.3.0-29-lowlatency           memtest86+.elf
config-5.4.18-xanmod10-custom        memtest86+_multiboot.bin
config-5.5.0-3.2-liquorix-amd64      System.map-5.3.0-29-lowlatency
config-5.5.0-4.1-liquorix-amd64      System.map-5.4.18-xanmod10-custom
config-5.5.4-xanmod3                 System.map-5.5.0-3.2-liquorix-amd64
grub                                 System.map-5.5.0-4.1-liquorix-amd64
initrd.img                           System.map-5.5.4-xanmod3
initrd.img-5.3.0-29-lowlatency       vmlinuz
initrd.img-5.4.18-xanmod10-custom    vmlinuz-5.3.0-29-lowlatency
initrd.img-5.5.0-3.2-liquorix-amd64  vmlinuz-5.4.18-xanmod10-custom
initrd.img-5.5.0-4.1-liquorix-amd64  vmlinuz-5.5.0-3.2-liquorix-amd64
initrd.img-5.5.4-xanmod3             vmlinuz-5.5.0-4.1-liquorix-amd64
initrd.img.old                       vmlinuz-5.5.4-xanmod3
memtest86+.bin                       vmlinuz.old

root@lenovo:~# update-grub2
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.3.0-29-lowlatency
Found initrd image: /boot/initrd.img-5.3.0-29-lowlatency
Found linux image: /boot/vmlinuz-5.3.0-29-lowlatency
Found initrd image: /boot/initrd.img-5.3.0-29-lowlatency
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

Il y a d'autres noyaux présents, mais après le redémarrage seulement lowlatency kernel et memtest sont présents dans le menu Grub. De plus, pendant la mise à jour, il montre le même noyau deux fois. Auparavant, avant que les noyaux génériques ne se déplacent vers un autre dossier, les noyaux génériques et à faible latence ont été listés pendant la mise à jour Grub.

Comment pourrais-je résoudre ce problème ?

4voto

Bret Lyons Points 56

Les trois commandes suivantes résolvent également ce problème, en désactivant le bit exécutable sur 09_lowlatency et en activant le bit pour 10_linux, conformément au texte dans /etc/Grub.d/README.lowlatency. Je recommande de modifier /etc/default/Grub pour changer GRUB_TIMEOUT à une valeur positive, avant d'invoquer update-Grub également.

# chmod -x /etc/grub.d/09_lowlatency
# chmod +x /etc/grub.d/10_linux
# update-grub

0voto

Gryu Points 6277

Je l'ai résolu, mais la solution n'est pas très agréable.

  1. Copier le fichier de configuration Grub à faible latence dans le nouveau fichier de configuration Grub personnalisé : sudo cp /etc/grub.d/09_lowlatency /etc/grub.d/08_custom
    J'ai 09_lowlatency en suivant instructions :

    Tout d'abord, visitons https://packages.ubuntu.com/ . Cette étape est un peu moins évidente. Le paquet "ubuntustudio-default-settings" contient un fichier nommé "09_lowlatency". fichier nommé "09_lowlatency". Ce fichier est un fichier de configuration Grub que nous pouvons utiliser pouvons utiliser pour nous assurer que notre noyau à faible latence est démarré en premier et s'assure qu'il qu'il le restera.

  2. Supprimez ces fichiers afin qu'ils ne fassent pas double emploi avec les entrées du menu Grub et ne soient pas dupliqués dans une liste pendant sudo update-grub2 l'exécution de la commande :
    sudo mv /etc/grub.d/10_linux /home/myuser/backup/ && sudo mv /etc/grub.d/09_lowlatency /home/myuser/backup/

  3. J'en ai changé un case dans le 08_custom fichier :
    Avant de changer, c'était :

    case "x$machine" in
        xi?86 | xx86_64)
            list=
            for i in /boot/vmlinuz-*lowlatency /vmlinuz-*lowlatency /boot/kernel-*lowlatency ; do
                if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done
            list2=
            for i in /boot/vmlinuz-*generic /vmlinuz-*generic /boot/kernel-*generic ; do
                if grub_file_is_not_garbage "$i" ; then list2="$list2 $i" ; fi
            done ;;
        *)
            list=
            for i in /boot/vmlinuz-*lowlatency /boot/vmlinux-*lowlatency /vmlinuz-*lowlatency /vmlinux-*lowlatency /boot/kernel-*lowlatency ; do
                      if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done
            list2=
            for i in /boot/vmlinuz-*generic /boot/vmlinux-*generic /vmlinuz-*generic /vmlinux-*generic /boot/kernel-*generic ; do
                      if grub_file_is_not_garbage "$i" ; then list2="$list2 $i" ; fi
            done ;;
    esac

    Après avoir changé, c'est devenu :

    case "x$machine" in
        xi?86 | xx86_64)
            list=
            for i in /boot/vmlinuz-*lowlatency ; do
                if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done
            for i in /boot/vmlinuz-*generic ; do
                if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done
            for i in /boot/vmlinuz-*xanmod10-custom ; do
                if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done ;;
        *)
            list=
            for i in /boot/vmlinuz-*lowlatency ; do
                      if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done
            for i in /boot/vmlinuz-*generic ; do
                      if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
            done
            for i in /boot/vmlinuz-*xanmod10-custom ; do
                      if grub_file_is_not_garbage "$i" ; then list2="$list2 $i" ; fi
            done ;;
    esac

Mon ls -alh /boot y sudo update-grab2 Les commandes montrent le suivant :

$ ls -alh /boot
total 275M
drwxr-xr-x  3 root root 4,0K feb 17 00:32 .
drwxr-xr-x 20 root root 4,0K feb 13 09:55 ..
-rw-r--r--  1 root root 231K jan 17 15:59 config-5.3.0-29-generic
-rw-r--r--  1 root root 231K jan 17 15:59 config-5.3.0-29-lowlatency
-rw-r--r--  1 root root 138K feb 16 03:54 config-5.4.18-xanmod10-custom
-rw-r--r--  1 root root 216K feb 15 19:56 config-5.5.0-4.1-liquorix-amd64
-rw-r--r--  1 root root 237K feb 15 16:06 config-5.5.4-xanmod3
drwxr-xr-x  4 root root 4,0K feb 17 00:28 grub
lrwxrwxrwx  1 root root   35 feb 16 09:06 initrd.img -> initrd.img-5.5.0-4.1-liquorix-amd64
-rw-r--r--  1 root root  46M feb 13 21:37 initrd.img-5.3.0-29-generic
-rw-r--r--  1 root root  46M feb 14 00:01 initrd.img-5.3.0-29-lowlatency
-rw-r--r--  1 root root  12M feb 16 08:36 initrd.img-5.4.18-xanmod10-custom
-rw-r--r--  1 root root  53M feb 16 09:07 initrd.img-5.5.0-4.1-liquorix-amd64
-rw-r--r--  1 root root  52M feb 17 00:32 initrd.img-5.5.4-xanmod3
lrwxrwxrwx  1 root root   30 feb 16 09:06 initrd.img.old -> initrd.img-5.3.0-29-lowlatency
-rw-r--r--  1 root root 179K jan 28  2016 memtest86+.bin
-rw-r--r--  1 root root 181K jan 28  2016 memtest86+.elf
-rw-r--r--  1 root root 181K jan 28  2016 memtest86+_multiboot.bin
-rw-------  1 root root 4,5M jan 17 15:59 System.map-5.3.0-29-generic
-rw-------  1 root root 4,5M jan 17 15:59 System.map-5.3.0-29-lowlatency
-rw-r--r--  1 root root 4,2M feb 16 03:54 System.map-5.4.18-xanmod10-custom
-rw-r--r--  1 root root 3,9M feb 15 19:56 System.map-5.5.0-4.1-liquorix-amd64
-rw-r--r--  1 root root 5,1M feb 15 16:06 System.map-5.5.4-xanmod3
lrwxrwxrwx  1 root root   32 feb 16 09:06 vmlinuz -> vmlinuz-5.5.0-4.1-liquorix-amd64
-rw-------  1 root root  11M jan 17 16:35 vmlinuz-5.3.0-29-generic
-rw-------  1 root root  11M jan 17 16:35 vmlinuz-5.3.0-29-lowlatency
-rw-r--r--  1 root root 6,6M feb 16 03:54 vmlinuz-5.4.18-xanmod10-custom
-rw-r--r--  1 root root 8,9M feb 15 19:56 vmlinuz-5.5.0-4.1-liquorix-amd64
-rw-r--r--  1 root root 7,2M feb 15 16:06 vmlinuz-5.5.4-xanmod3
lrwxrwxrwx  1 root root   27 feb 16 09:06 vmlinuz.old -> vmlinuz-5.3.0-29-lowlatency

$ sudo update-grub2
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.18-xanmod10-custom
Found initrd image: /boot/initrd.img-5.4.18-xanmod10-custom
Found linux image: /boot/vmlinuz-5.4.18-xanmod10-custom
Found initrd image: /boot/initrd.img-5.4.18-xanmod10-custom
Found linux image: /boot/vmlinuz-5.3.0-29-lowlatency
Found initrd image: /boot/initrd.img-5.3.0-29-lowlatency
Found linux image: /boot/vmlinuz-5.3.0-29-generic
Found initrd image: /boot/initrd.img-5.3.0-29-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

J'ai supprimé le code excessif non nécessaire dans mon cas, puis j'ai copié-collé une paire de for boucles pour lowlatency et modifié lowlatency a xanmod10-custom en elle.

$ ls -alh /etc/grub.d/
total 136K
drwxr-xr-x   2 root root 4,0K feb 17 00:28 .
drwxr-xr-x 141 root root  12K feb 17 00:31 ..
-rwxr-xr-x   1 root root  11K feb 11 16:57 00_header
-rwxr-xr-x   1 root root 6,2K feb 11 16:57 05_debian_theme
-rwxr-xr-x   1 root root  16K feb 17 00:28 08_xanmod_custom
-rwxr-xr-x   1 root root  37K feb 11 16:57 10_linux_zfs
-rwxr-xr-x   1 root root  13K feb 11 16:57 20_linux_xen
-rwxr-xr-x   1 root root 2,0K feb 28  2016 20_memtest86+
-rwxr-xr-x   1 root root  12K feb 11 16:57 30_os-prober
-rwxr-xr-x   1 root root 1,4K feb 11 16:57 30_uefi-firmware
-rwxr-xr-x   1 root root  214 feb 11 16:57 40_custom

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X