Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-144411

inconsistent behaviour when updating DEFAULT kernel with grubby

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-9.7
    • grubby
    • None
    • None
    • None
    • rhel-bootloader
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • None

      Trying on my system manually to update kernel args for a DEFAULT kernel leads to a different behaviour based whether the system is booted in DEFAULT kernel or not. In the first case it does nothing.

      Note that `grubby --info DEFAULT` is also broken this way - as visible below.

      • Initial system state (booted in default kernel)
        [root@rhelmin9 ~]# uname -r
        5.14.0-503.40.1.el9_5.x86_64
        
        [root@rhelmin9 ~]# cat /proc/cmdline
        BOOT_IMAGE=(hd0,msdos3)/vmlinuz-5.14.0-503.40.1.el9_5.x86_64 root=UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap
        
        [root@rhelmin9 ~]# grubby --default-kernel
        /boot/vmlinuz-5.14.0-503.40.1.el9_5.x86_64
        
        [root@rhelmin9 ~]# grubby --info DEFAULT ## BROKEN
        
        [root@rhelmin9 ~]# grubby --info ALL
        index=0
        kernel="/boot/vmlinuz-5.14.0-503.40.1.el9_5.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-503.40.1.el9_5.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-503.40.1.el9_5.x86_64) 9.5 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-503.40.1.el9_5.x86_64"
        index=1
        kernel="/boot/vmlinuz-5.14.0-503.11.1.el9_5.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-503.11.1.el9_5.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-503.11.1.el9_5.x86_64) 9.5 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-503.11.1.el9_5.x86_64"
        index=2
        kernel="/boot/vmlinuz-0-rescue-e1929802e2944ac4bc52699de6577280"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-0-rescue-e1929802e2944ac4bc52699de6577280.img"
        title="Red Hat Enterprise Linux (0-rescue-e1929802e2944ac4bc52699de6577280) 9.0 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-0-rescue"
        
      • booted in default kernel, trying to update default kernel (nothing happens):
        [root@rhelmin9 ~]# grubby --update-kernel=DEFAULT --args "new_arg_default_kernel=DEFAULT"
        
        [root@rhelmin9 ~]# grubby --info ALL
        index=0
        kernel="/boot/vmlinuz-5.14.0-503.40.1.el9_5.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-503.40.1.el9_5.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-503.40.1.el9_5.x86_64) 9.5 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-503.40.1.el9_5.x86_64"
        index=1
        kernel="/boot/vmlinuz-5.14.0-503.11.1.el9_5.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-503.11.1.el9_5.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-503.11.1.el9_5.x86_64) 9.5 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-503.11.1.el9_5.x86_64"
        index=2
        kernel="/boot/vmlinuz-0-rescue-e1929802e2944ac4bc52699de6577280"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-0-rescue-e1929802e2944ac4bc52699de6577280.img"
        title="Red Hat Enterprise Linux (0-rescue-e1929802e2944ac4bc52699de6577280) 9.0 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-0-rescue"
        
      • Install new kernel, stay booted in old one, DEFAULT starts to work
        [root@rhelmin9 ~]# grubby --info DEFAULT
        index=0
        kernel="/boot/vmlinuz-5.14.0-570.12.1.el9_6.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-570.12.1.el9_6.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-570.12.1.el9_6.x86_64) 9.6 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-570.12.1.el9_6.x86_64"
        
        [root@rhelmin9 ~]# grubby --info ALL
        index=0
        kernel="/boot/vmlinuz-5.14.0-570.12.1.el9_6.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-570.12.1.el9_6.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-570.12.1.el9_6.x86_64) 9.6 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-570.12.1.el9_6.x86_64"
        index=1
        kernel="/boot/vmlinuz-5.14.0-503.40.1.el9_5.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-503.40.1.el9_5.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-503.40.1.el9_5.x86_64) 9.5 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-503.40.1.el9_5.x86_64"
        index=2
        kernel="/boot/vmlinuz-5.14.0-503.11.1.el9_5.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-503.11.1.el9_5.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-503.11.1.el9_5.x86_64) 9.5 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-503.11.1.el9_5.x86_64"
        index=3
        kernel="/boot/vmlinuz-0-rescue-e1929802e2944ac4bc52699de6577280"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-0-rescue-e1929802e2944ac4bc52699de6577280.img"
        title="Red Hat Enterprise Linux (0-rescue-e1929802e2944ac4bc52699de6577280) 9.0 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-0-rescue"
        
        
        [root@rhelmin9 ~]# grubby --update-kernel=DEFAULT --args "new_arg_default_kernel=DEFAULT"
        
        [root@rhelmin9 ~]# grubby --info DEFAULT
        index=0
        kernel="/boot/vmlinuz-5.14.0-570.12.1.el9_6.x86_64"
        args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap new_arg_default_kernel=DEFAULT"
        root="UUID=fcb267f7-33de-4e82-a2a0-260d943a8c9f"
        initrd="/boot/initramfs-5.14.0-570.12.1.el9_6.x86_64.img"
        title="Red Hat Enterprise Linux (5.14.0-570.12.1.el9_6.x86_64) 9.6 (Plow)"
        id="e1929802e2944ac4bc52699de6577280-5.14.0-570.12.1.el9_6.x86_64"
        

      Additional info:

      • grubby-8.40-64.el9.x86_64
      • BIOS boot (not sure whether EFI has a different behaviour)
      • BLS enabled
      • Note that possibly other RHEL systems have the same behaviour, I haven't tried that anywhere else.

      Note that data below are already compromised, as in the meanwhile I started to use the system already for other purposes (updated kernel, rebooted, updated kernel args, ..)

      • /etc/default/grub (NOTE: I updated kernel args in the meanwhile, so ignore possible difference, like `idle=poll`:
        [root@rhelmin9 ~]# cat /etc/default/grub 
        GRUB_TIMEOUT=5
        GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
        GRUB_DEFAULT=saved
        GRUB_DISABLE_SUBMENU=true
        GRUB_TERMINAL_OUTPUT="console"
        GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/swap idle=poll"
        GRUB_DISABLE_RECOVERY="true"
        GRUB_ENABLE_BLSCFG=true
        
      • grub2-editenv:
        [root@rhelmin9 ~]# grub2-editenv - list
        saved_entry=e1929802e2944ac4bc52699de6577280-upgrade.x86_64
        boot_success=0
        

              bootloader-eng-team bootloader -eng-team
              pstodulk@redhat.com Petr Stodulka
              bootloader -eng-team bootloader -eng-team
              Release Test Team Release Test Team
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: