Re: Kernel updates do not boot - always boots oldest kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Here is the contents of the entire

cat /etc/default.grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=066ffecb:69137a0b:4e579b4f:dfbf1696 rd.md.uuid=bd87f682:e6df10e2:d2a6e247:834133f7 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

I have only changed GRUB_DEFAULT from "saved" to "0"

I have also run

/usr/sbin/grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

and seen the grub.cfg and grubenv updated in /boot/efi/EFI/centos

At this point I think I have grub doing its stuff in the correct folder / destination used by UEFI for booting.

When I look at grub.cfg there is some stuff I cannot understand

there are five menuentry in this file, like:

menuentry 'CentOS Linux (3.10.0-1160.88.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.81.1.el7.x86_64-advanced-7276336b-d2f2-4b94-b491-ad8c5662acb3' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod part_gpt
    insmod diskfilter
    insmod mdraid1x
    insmod xfs
    set root='mduuid/bd87f682e6df10e2d2a6e247834133f7'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='mduuid/bd87f682e6df10e2d2a6e247834133f7' f12be7f3-a6c6-4b90-8c51-286c32d11d12
    else
      search --no-floppy --fs-uuid --set=root f12be7f3-a6c6-4b90-8c51-286c32d11d12
    fi
    linuxefi /vmlinuz-3.10.0-1160.88.1.el7.x86_64 root=UUID=7276336b-d2f2-4b94-b491-ad8c5662acb3 ro crashkernel=auto rd.md.uuid=066ffecb:69137a0b:4e579b4f:dfbf1696 rd.md.uuid=bd87f682:e6df10e2:d2a6e247:834133f7 rhgb quiet LANG=en_US.UTF-8
    initrdefi /initramfs-3.10.0-1160.88.1.el7.x86_64.img
}

the above is the latest kernel - doesn't boot as the console tells me it cannot load the vmlinuz file

the kernel that boots looks like:

menuentry 'CentOS Linux (3.10.0-1160.36.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.36.2.el7.x86_64-advanced-7276336b-d2f2-4b94-b491-ad8c5662acb3' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod part_gpt
    insmod diskfilter
    insmod mdraid1x
    insmod xfs
    set root='mduuid/bd87f682e6df10e2d2a6e247834133f7'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='mduuid/bd87f682e6df10e2d2a6e247834133f7' f12be7f3-a6c6-4b90-8c51-286c32d11d12
    else
      search --no-floppy --fs-uuid --set=root f12be7f3-a6c6-4b90-8c51-286c32d11d12
    fi
    linuxefi /vmlinuz-3.10.0-1160.36.2.el7.x86_64 root=UUID=7276336b-d2f2-4b94-b491-ad8c5662acb3 ro crashkernel=auto rd.md.uuid=066ffecb:69137a0b:4e579b4f:dfbf1696 rd.md.uuid=bd87f682:e6df10e2:d2a6e247:834133f7 rhgb quiet
    initrdefi /initramfs-3.10.0-1160.36.2.el7.x86_64.img
}

I see that the first line names the kernel in brackets (correctly) but the $menuentry_id_option '.....' doesn't make sense to me.

For the kernel that boots (3.10.0-1160.36.2) the entry is 'gnulinux-3.10.0-1160.36.2.el7.x86_64-advanced-7276336b-d2f2-4b94-b491-ad8c5662acb3'

For kernels that don't boot, e.g (3.10.0-1160.88.1) we see

'gnulinux-3.10.0-1160.81.1.el7.x86_64-advanced-7276336b-d2f2-4b94-b491-ad8c5662acb3'

and this entry just seems wrong

firstly the kernel version doesn't match - it has been set to ... 81.1 ... rather than 88.1

secondly the last part of the line is the same for every menuentry, namely

-advanced-7276336b-d2f2-4b94-b491-ad8c5662acb3

where does this come from? what is this part for? doing?

Thanks
Rob


On 15/03/23 05:05, Leon Fauster via CentOS wrote:
Am 14.03.23 um 12:30 schrieb Rob Kampen:
OK,

found out the problem as to why it doesn't boot any kernel except 36.2

the system reports that it cannot find

vmlinuz-3.10.0-1160.88.1.el7.x86_64

or any one of the others, except for vmlinuz-3.10.0-1160.36.2.el7.x86_64

hence a manual selection from the grub menu when in front of the machine will only load the 36.2 kernel

I found that under /boot/grub2 there were two .rpmnew files that mucked up the symbolic link to the grubenv file - so fixed that and did a reinstall of the latest kernel.

Now all the grub and efi files appear to update correctly - progress.

Now just need to work out why the efi boot process can see the old (original) kernel (36.2) but none of the later ones.

Any ideas of where to look for this? seems a much more fundamental problem related to kernel install and efi booting


Whats the _complete_ output of cat /etc/default/grub  ?

--
Leon

_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos




[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]


  Powered by Linux