372.13 update problem (virtual machine)

If we look at the changelog (since 049-201.git20220131), there aren’t big revelations:

$ rpm -q --changelog dracut | sed /049-201.git20220131/q
* Wed May 11 2022 Pavel Valena <pvalena@redhat.com> - 049-202.git20220511
- fix(fips): start iterating from 0 over BOOT_IMAGE entries

* Mon Jan 31 2022 Pavel Valena <pvalena@redhat.com> - 049-201.git20220131

Very clear testing.
My curious come from:

  1. In 372.9 the /etc/dracut.conf.d is empty.
  2. Why there is error in dnf.rpm.log report /etc/dracut.conf.d/virt-drivers.conf (that didn’t exist before and after dnf update) cause Warning on white space?
  3. Why the initramfs-4.18.0-372.13.1.e18_6.x86_64.img cannot be created automatically and must be created by dracut manually. May be due to error of point 2 that something cannot run due to call on something from not exist conf and exit installation without creating the img in /boot and didn’t repot in dnf.rpm.log? Or something else?
  4. Last but not least, will this happen again in future update (at least for those machine migrate from Centos)? Just hope not.

In reply to your points:

  1. It’s empty because it was a clean Rocky install, not an upgraded CentOS install.
  2. Because CentOS was upgraded which had the file in it. Had you made a clean install, you wouldn’t have it.
  3. Most likely because of point 2 or the fact it was an upgraded system. Upgrades can cause issues, hence clean installs are far better and then applying your config and installing what you need to get your system working again. Ansible can help for such situations to replicate your setup every time on a new clean install.
  4. If an upgrade, it’s possible, so maybe, maybe not.

You can find out if a file is owned by a package for example:

rpm -qf /etc/dracut.conf.d/virt-drivers.conf

either it will display a package that is installed that this file belongs to, or it won’t. If it says no package owns it, then this is leftovers from the upgrade.

No, the /etc/dracut.cong.d/ is also empty in the RockyLinux machine that upgraded from Centos.
There was no problem for ALL RockyLinux update since RockyLinux 8.6 to 372.9 on this Centos upgraded machine. Then there is problem from 372.9 to 372.13. After so many RockyLinux updates without problem in this Centos upgrade machine, why it suddenly bump into this problem and will it happen again are what worrying me.

Please provide the results to the above command.

As I explained, upgrades don’t always work properly. Especially when from a different distribution CentOS. I have mentioned it plenty of times already.

Incidently problems can even occur, for example, upgrading RHEL6 to RHEL7 using their methods that they offer. So it’s not surprising when upgrading from completely different distributions, eg: CentOS to Rocky. If it worries you, make a clean install and install everything you need to get your machine as it should be.

Upgrades are not guaranteed.

run rpm -qf /etc/dracut.conf.d/virt-drivers.conf in Rocky 372.9 return
error: file /etc/dracut.conf.d/virt-drivers.conf: No such file or directory
I understand if the Centos (no matter which version) is running then migragate to
Rocky directly, there maybe problem.
I don’t understand why the machine was migrated from Centos to Rocky since Rocky release and follow through all Rocky update without problem, then suddenly there is a problem.
If no matter how long ago the migration take place and no matter how many update in Rocky already, once it is a machine from migrate, there is always a chance to bump into problem, then I take it. And thank you for all your time in helping me out.

In the old days a services used to have one configuration file: /etc/example.conf
(or file in subdirectory /etc/example/ )
Lately, most services have added a directory that is included. That is, process reads both file /etc/example.conf and every file /etc/example.d/*.conf

The main file comes from package of the service, while the content of the directory (/etc/example.d/) is from user and from other packages. The clear benefit is that user customizations do not need to be edited into the main file (/etc/example.conf), but stay in separate (unmanaged) files. The answer to What was customized for this service? is trivial to find.

The /etc/dracut.conf.d/ is clearly such directory for optional configuration. Files in there are from user, script, or package. If they are from package, then they are removed when the package is removed.

The installer and migration are both scripts. While “run” by user, we don’t usually study what those scripts do. The scripts can create unmanaged files, rather than get files by installing a package. RPM packages do have pre-install and post-install scripts too that can create files. Files that the package does not claim to own, so are unmanaged. (The package manager manages files, but it does not know that unmanaged files do exist, so can’t manage those.)

IF CentOS did not have a file in /etc/dracut.conf.d/, Rocky 8.5 did not have a file in /etc/dracut.conf.d/, and Rocky 8.6 does not have a file in /etc/dracut.conf.d/,
THEN what operation did warn about lack of whitespace in file /etc/dracut.conf.d/virt-drivers.conf (that does not exist)?

Furthermore, is that warning just a red herring and not the actual reason why installation of kernel fails to generate initramfs?

(I’ve seen kernel install in CentOS 7 to freeze on generation of initramfs. The error was not repeatable.)

Thank you very much for your clear & detail explanation. Yes, maybe the failure in generating initramfs due to other error that is unrelated to those error log. Just I’m too inexperience to find other log to dig around. As you have seen similar error that was not repeatable, maybe this one also a by chance error and just hope that it will not occur again. Once again thank you for your time and patient to help me out.