AlmaLinux 9.4 with GUI: boot/reload messages

All situations in AlmaLinux 9.4 with graphical.target
in the form of a rotating incomplete ring when loading GRUB2 and the kernel, as well as when it shuts down,
instead of the expected loading/shutdown messages:

These messages can be seen by pressing the down arrow symbol on your keyboard.
It is possible that you may not see the first messages.

I have not seen this in CentOS 7 and other Linux distributions.

If I’m reading you correctly, you have some system service which is not shutting down promptly. Many different services might have this problem. A picture would help, both to confirm my reading and identify the service or services.

No, on the contrary - it seems to me that this was originally invented (maybe described somewhere) by the developers - but I simply did not know about it. Although I have a server with a GUI installed on my PC at home, almost all server services are disabled as unnecessary.
I don’t mind having to press a keyboard key when booting.

Oh, you mean the “splash” but you want to see all the messages? What do you have in /proc/cmdline?

I didn’t even think about /proc/ !

It turns out quite strange: there
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.14.0-427.22.1.el9_4.x86_64 root=UUID=53af7b93-7145-4723-9584-8f2d3fedb6f0 ro resume=UUID=c44cc38f-91ec-49a8-91bc-4e76 b121e6cd rhgb quiet crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M

But in /etc/default/grub
GRUB_CMDLINE_LINUX
does not contain rhgb and quiet

  • and then in /boot/grub2/grub.cfg
    rhgb and quiet, of course, are also missing.
    And I see kernel messages after pressing the down arrow on the keyboard.

The “rotating incomplete ring” that I wrote about in first message is obviously means in the modern version of GRUB2 “Progress Bar” or “Circular Progress Indicator”.

Look also at /etc/kernel/cmdline


The thing is that the /etc/default/grub is used only if we run grub2-mkconfig.
Installation of new kernel does not do that. It runs grubby that looks at the /etc/kernel/cmdline when creating BLS entry for the new kernel.

The “rhgb quiet” have been sneaked into that side.


One can run grubby to add/remove cmdline options for one/all entries: Chapter 4. Configuring kernel command-line parameters | Red Hat Product Documentation

Thank you very much !
After reading RHEL9 Managing, monitoring, and updating the kernel and conducting additional experiments on my home PC, some clarity appeared.

  1. /etc/kernel/cmdline does not change after installing AlmaLinux 9.4 -
    neither after running grub2-mkconfig,
    neither after running dnf update kernel

  2. In RHEL9, grub2 has been significantly changed relative to the original source text.
    The appearance of the GRUB2 boot menu on my PC generally turned out to depend on the presence of rhgb and quiet in the kernel parameters.

In /boot/grub2/grub.cfg at least GRUB_CMDLINE_LINUX is ignored

  1. The parameters of the loaded kernel are taken from the *.conf text file corresponding to the kernel version in the /boot/loader/entries directory

There it is, if changes to the set of files are not needed,
It’s easier to change in vim than to run grubby.

Perhaps the purpose of introducing grubby is to unify the work of x86 and s390x.

I think I’ve seen older references to ‘grubby’ like: “ancient, huge monolith”. Hopefully outdated opinions.


# grub2-mkconfig --help
Usage: grub2-mkconfig [OPTION]
Generate a grub config file

  -o, --output=FILE       output generated config to FILE [default=stdout]
  --no-grubenv-update     do not update variables in the grubenv file
  --update-bls-cmdline    overwrite BLS cmdline args with default args
  -h, --help              print this message and exit
  -V, --version           print the version information and exit

Note the --update-bls-cmdline. You need to use it in order for grub2-mkconfig to update the /boot/loader/entries/*.conf files. (IIRC, this did change in el9.2).

In install of kernel the grubby copies options from /etc/kernel/cmdline to the new /boot/loader/entries/*.conf
If you did not remove rhgb quiet from /etc/kernel/cmdline, then next kernel (entry) will have them again.

The grub2-mkconfig --update-bls-cmdline might update /etc/kernel/cmdline.


man grubby shows:

–update-kernel=kernel-path
The entries for kernels matching kernel-path are updated. Currently the only items that can be updated is the kernel argument list, which is modified via the --args and --remove-args options. If the ALL argument is used the variable GRUB_CMDLINE_LINUX in /etc/default/grub is updated with the latest kernel argument list, unless the --no-etc-grub-update option is used or the file does not exist (e.g., on s390x).

I.e. one could run:

grubby --update-kernel=ALL --remove-args=rhgb

and that should update /etc/default/grub, /etc/kernel/cmdline, and every /boot/loader/entries/*.conf

In el9 there are:

/boot/efi/EFI/almalinux/grub.cfg
/boot/grub2/grub.cfg
/boot/grub2/grubenv
/boot/loader/entries/*.conf
/etc/kernel/cmdline

The /boot/efi/EFI/almalinux/grub.cfg should not be touched after install.

When kernel is added/removed, only one /boot/loader/entries/*.conf needs to be added/removed. That is what grubby does on dnf up/install/remove.

If you edit /etc/default/grub and run grub2-mkconfig, then you recreate (at most):

/boot/grub2/grub.cfg
/boot/grub2/grubenv
/boot/loader/entries/*.conf
/etc/kernel/cmdline

If the dnf up would call grub2-mkconfig for kernel packages, then there would be unnecessary rewrites.

Many years I haven’t executed sysadmin functions, and your short and rich information is extremely useful!
I don’t have the time to carefully read the entire manual… My goal is to have AlmaLinux 9 with GUI/Gnome Classic give me the ability to work without problems with the applications I need on my PC at home.
I just copied your text to my file in case any serious problem arises.

Thank you very much!