oamg / convert2rhel

A tool to automate converting Oracle/CentOS/Scientific/Rocky/Alma Linux to Red Hat Enterprise Linux
GNU General Public License v3.0
104 stars 83 forks source link

EFI::BOOTLOADER_ERROR with RAID + UEFI #1247

Open advorkin opened 3 months ago

advorkin commented 3 months ago

Hello,

convert2rhel version: 2.0.0

I'm trying to convert from Springdale 9.2 to RedHat and getting the following error message:

[2024-05-30T09:53:37-0400] TASK - [Prepare: Check the firmware interface type (BIOS/UEFI)] ***********
UEFI detected.
ERROR - (ERROR) EFI::BOOTLOADER_ERROR - Bootloader error detected
 Description: An unknown bootloader error occurred, please look at the diagnosis for more information.
 Diagnosis: The '/dev/md2' device has no PART_ENTRY_NUMBER
 Remediations: N/A

I've tried to umount the partition:

After umount /dev/md2

[2024-05-30T09:57:19-0400] TASK - [Prepare: Check the firmware interface type (BIOS/UEFI)] ***********
UEFI detected.
ERROR - (ERROR) EFI::BOOTLOADER_ERROR - Bootloader error detected
 Description: An unknown bootloader error occurred, please look at the diagnosis for more information.
 Diagnosis: The UEFI has been detected but the ESP is not mounted in /boot/efi as required.
 Remediations: N/A
$ blkid -po export /dev/md2
DEVNAME=/dev/md2
SEC_TYPE=msdos
LABEL_FATBOOT=10
LABEL=10
UUID=8344-7222
VERSION=FAT16
FSBLOCKSIZE=4096
BLOCK_SIZE=512
TYPE=vfat
USAGE=filesystem

What can be done to fix the problem? From kickstart file:

raid /boot/efi --fstype efi --device md2 --level=RAID1 raid.00 raid.10

Thank you!

bocekm commented 3 months ago

Hi @advorkin, conversions to RHEL 9 are still in a preparational/experimental phase. What configuration file did you use for converting Springdale 9.2? Have you copied one of those in https://github.com/oamg/convert2rhel/tree/main/convert2rhel/data/9/x86_64/configs?

advorkin commented 3 months ago

Thank you for responding. I used one configured for springdale, but very much similar to rocky/almalinux ones.

Just to provide some additional information.. this is with --debug option:

[2024-05-31T09:33:45-0400] TASK - [Prepare: Check the firmware interface type (BIOS/UEFI)] ***********
UEFI detected.
[2024-05-31T09:33:45-0400] DEBUG - Calling command 'mokutil --sb-state'
[2024-05-31T09:33:45-0400] DEBUG - Calling command '/usr/sbin/efibootmgr -v'
[2024-05-31T09:33:45-0400] DEBUG - Bootloader setup:
Current boot: 0001
Boot order: 0001, 0000, 000A, 000B, 0006, 0007, 0008, 0009, 0003, 0004, 000C, 000E, 000F, 0010, 0011, 0002
Boot entries:
- 0000: Springdale Linux
- 0001: Springdale Linux
- 0002: UEFI: Built-in EFI Shell
- 0003: UEFI: PXE IPv4 Intel(R) Ethernet Converged Network Adapter X550-T2
- 0004: UEFI: PXE IPv4 Intel(R) Ethernet Converged Network Adapter X550-T2
- 0006: AMI Virtual CDROM0 1.00
- 0007: AMI Virtual CDROM1 1.00
- 0008: AMI Virtual CDROM2 1.00
- 0009: AMI Virtual CDROM3 1.00
- 000A: XA240LE10003
- 000B: XA240LE10003
- 000C: SAMSUNG MZQL23T8HCLS-00A07
- 000E: AMI Virtual HDisk0 1.00
- 000F: AMI Virtual HDisk1 1.00
- 0010: AMI Virtual HDisk2 1.00
- 0011: AMI Virtual HDisk3 1.00
[2024-05-31T09:33:45-0400] DEBUG - Calling command '/usr/sbin/grub2-probe --target=device /boot/efi/'
[2024-05-31T09:33:45-0400] DEBUG - Calling command '/usr/sbin/blkid -p -s PART_ENTRY_NUMBER /dev/md2'
ERROR - (ERROR) EFI::BOOTLOADER_ERROR - Bootloader error detected
 Description: An unknown bootloader error occurred, please look at the diagnosis for more information.
 Diagnosis: The '/dev/md2' device has no PART_ENTRY_NUMBER
 Remediations: N/A

ELS_SYSTEM_CHECK has succeeded
EUS_SYSTEM_CHECK has succeeded
bocekm commented 3 months ago

This seems to be similar to https://github.com/oamg/convert2rhel/issues/1167. The lack of PART_ENTRY_NUMBER might be because of RAID with which we don't test conversions at the moment. We need to try reproducing it and then come up with a fix.

advorkin commented 3 months ago

Thank you very much for looking into it.

BradLugo commented 3 months ago

Hey @bocekm! I was the reporter of https://github.com/oamg/convert2rhel/issues/1167. The problem was indeed caused by RAID (mdadm specifically). I'm not sure if things have changed, but when I originally reported the issue, I was able to reproduce it consistently.

IIRC, I ended up adding some logic to this: https://github.com/oamg/convert2rhel/blob/f96179b885fdf0c96fd98643f33b844a56873ee6/convert2rhel/grub.py#L403-L438 where if dev_number was empty, the efibootmgr command would run without the --part flag. According to the efibootmgr man page, the partition number defaults to 1, which ended up working for me.