обновление-grub2 не могло найти пользовательское ядро

Я скомпилировал новое ядро на основе 5.4.18-xanmod10 ядра. Затем я установил его:

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

Но после установки, это не было найдено 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

Существуют другие существующие ядра, но после перезагрузки только lowlatency ядро и memtest присутствуют в меню личинки. Кроме того, во время обновления это показывает то же ядро два раза. Ранее, перед универсальными амбразурами, перемещающимися в другую папку, универсальные и lowlatency ядра были перечислены во время обновления личинки.

Как я мог решить этот вопрос?

1
задан 16 February 2020 в 19:04

2 ответа

Следующие три команды также решают эту проблему, отключая исполняемый бит для 09_lowlatency и включая бит для 10_linux, в соответствии с текстом в /etc/grub.d/README.lowlatency. Я рекомендую отредактировать /etc/default/grub, чтобы изменить GRUB_TIMEOUT на положительное значение, прежде чем вызывать update-grub.

# chmod -x /etc/grub.d/09_lowlatency
# chmod +x /etc/grub.d/10_linux
# update-grub
2
ответ дан 18 April 2020 в 15:09

Я решил его, но решение не очень хорошо.

  1. Скопируйте конфигурационный файл личинки lowlatency в новый пользовательский файл конфигурации личинки: sudo cp /etc/grub.d/09_lowlatency /etc/grub.d/08_custom
    Я добрался 09_lowlatency файл путем следования инструкциям:

    Во-первых, давайте посетим https://packages.ubuntu.com/. Этот шаг немного менее очевиден. Пакет “ubuntustudio-настройки-по-умолчанию” содержит файл, названный “09_lowlatency”. Этот файл является конфигурационным файлом GRUB, который мы можем использовать, чтобы гарантировать, что наше lowlatency ядро загружается сначала и гарантирует, что останется тот путь.

  2. Устраните эти файлы, таким образом, они не копируют записи меню личинки и не будут дублированы в списке во время sudo update-grub2 выполнение команды:
    sudo mv /etc/grub.d/10_linux /home/myuser/backup/ && sudo mv /etc/grub.d/09_lowlatency /home/myuser/backup/

  3. Я изменил тот case оператор в 08_custom файл:
    Прежде, чем изменить его было:

    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
    

    После изменения его стал:

    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
    

Мой ls -alh /boot и sudo update-grab2 команды показывают следующее:

$ 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

Я удалил чрезмерный код, не нужный в моем случае, затем вставляемом копией пара for циклы для lowlatency ядро и измененный lowlatency кому: xanmod10-custom в нем.

$ 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
0
ответ дан 20 February 2020 в 22:52

Другие вопросы по тегам:

Похожие вопросы: