Rebuild Red Hat 8

Falls es größere Änderungen beim fs Layout gab.
In der chroot-Umgebung. Voraussetzung: /etc/fstab ist ok.

Überprüfen und Info sammeln

efibootmgr -v
blkid

Eventuell alte Einträge löschen

efibootmgr -B -b 000f

und neuen Eintrag erzeugen

efibootmgr -c -d /dev/nvme0n1 -L "Rocky Linux" -l /EFI/rocky/shimx64.efi -p 1

Alte Kernel Images löschen

ls -l /boot/loader/entries
grubby --default-kernel
grubby --remove-kernel=$(grubby --default-kernel)

bis nichts mehr da ist und das Verzeichnis leer

grubby --info=ALL

Eventuell grub defaults anpassen.

vim /etc/default/grub

Grub aktualisieren

grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg

Wenn eine Fehlermeldung unknown filesystem kommt, dann gibt es ein Problem…

Achtung Falle: xfs fs mit crc Liegt /boot auf einer seperaten xfs-Partition oder es wird auf ein serperates /boot verzichtet und stattdessen liegt /boot/efi auf einer vfat32 Partition und / ist ein xfs Dateisystem. grub2 hat einen Bug und installiert sich nicht auf einem xfs-Dateisystem mit crc enabled.

Abhilfen:

  1. Wenn /boot auf eigener Partition, dann formatieren mit mkfs.xfs -m crc=0 …
  2. Oder mit dem in der eigenen Distribution enthaltenen mkfs-Tool formatieren, in diesem Fall kann die crc=0 Option auch entfallen. Offensichtlich sind die Quellen des mkfs.xfs unter Red Hat gepatcht
  3. /boot mit einem anderen Filesystem formatieren

Wenn das Kind schon in den Brunnen gefallen ist

cp -a /boot/ /boot2/
umount /boot/efi
umount /boot
mkfs.xfs -m crc=0 ...
mount <device> /boot
mkdir /boot/efi
mount <efi-device> /boot/efi
cp -a /boot2./. /boot/
rm -r /boot2
grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg

initramfs erzeugen

dracut --force /boot/initramfs-4.18.0-372.26.1.el8_6.x86_64.img  4.18.0-372.26.1.el8_6.x86_64

Neuen Kernel Eintrag setzen

grubby --add-kernel=/boot/vmlinuz-4.18.0-372.26.1.el8_6.x86_64 --args="enforce=0 root=/dev/vg34/root0lv" --initrd=/boot/initramfs-4.18.0-372.26.1.el8_6.x86_64.img --title="Rocky Linux"
touch /.autorelabel