Ensure redhat efi packages are reinstalled during finalise

The rhel-8.4 qcow2 base image already has the grub2-efi-x64 package
installed on its single partition which has files installed to
/boot/efi..., however a partitioned image will have an empty /boot/efi
partition when running 50-bootloader. This means dnf will not install
grub2-efi-x64 when requested and /boot/efi will remain empty.

This commit makes the following changes:
- Refactors redhat bootloader pkg-map for the following:
  - Make x86_64/amd64, arm64/aarch64 adjancent so they don't diverge
  - Map grub-efi to packages installed to /usr
  - Map grub-efi-{arch} to packages installed to /boot/efi
- Removes packages grub-efi-{arch} before installing grub-efi and
  grub-efi-{arch}

Change-Id: Ia197feea34f43bd870fed30829b740596e6b2f48
This commit is contained in:
Steve Baker 2021-04-19 09:16:02 +12:00
parent d7becbeb2b
commit 5caeba0c68
3 changed files with 12 additions and 10 deletions

View File

@ -65,7 +65,8 @@ function install_grub2 {
"${DIB_BLOCK_DEVICE}" == "gpt" ]]; then "${DIB_BLOCK_DEVICE}" == "gpt" ]]; then
install-packages -m bootloader grub-pc install-packages -m bootloader grub-pc
elif [[ "${DIB_BLOCK_DEVICE}" == "efi" ]]; then elif [[ "${DIB_BLOCK_DEVICE}" == "efi" ]]; then
install-packages -m bootloader grub-efi-$ARCH install-packages -e -m bootloader grub-efi-$ARCH
install-packages -m bootloader grub-efi grub-efi-$ARCH
else else
echo "Failure: I'm not sure what bootloader to install" echo "Failure: I'm not sure what bootloader to install"
echo "Ensure you have included a block-device-* element" echo "Ensure you have included a block-device-* element"

View File

@ -18,20 +18,21 @@
"redhat": { "redhat": {
"extlinux": "syslinux-extlinux", "extlinux": "syslinux-extlinux",
"grub-pc": "grub2-tools grub2", "grub-pc": "grub2-tools grub2",
"grub-efi-amd64": "grub2-tools grub2 grub2-pc grub2-efi-x64 grub2-efi-x64-modules efibootmgr shim-x64", "grub-ppc64": "grub2-tools grub2",
"grub-efi-arm64": "grub2-tools grub2-efi-aa64 grub2-efi-aa64-modules efibootmgr shim-aa64", "grub-efi": "grub2-tools grub2 efibootmgr",
"grub-efi-aarch64": "grub2-tools grub2-efi-aa64 grub2-efi-aa64-modules efibootmgr shim-aa64", "grub-efi-amd64": "grub2-efi-x64 grub2-efi-x64-modules shim-x64",
"grub-efi": "grub2-tools grub2-efi efibootmgr", "grub-efi-x86_64": "grub2-efi-x64 grub2-efi-x64-modules shim-x64",
"grub-efi-x86_64": "grub2-tools grub2 grub2-efi-x64 grub2-efi-x64-modules efibootmgr shim-x64", "grub-efi-arm64": "grub2-efi-aa64 grub2-efi-aa64-modules shim-aa64",
"grub-ppc64": "grub2-tools grub2" "grub-efi-aarch64": "grub2-efi-aa64 grub2-efi-aa64-modules shim-aa64"
} }
}, },
"default": { "default": {
"dkms_package": "dkms", "dkms_package": "dkms",
"extlinux": "extlinux", "extlinux": "extlinux",
"grub-pc": "grub-pc", "grub-pc": "grub-pc",
"grub-efi-amd64": "grub-efi grub-pc-bin efibootmgr", "grub-efi": "efibootmgr",
"grub-efi-arm64": "grub-efi-arm64 grub-efi-arm64-bin efibootmgr", "grub-efi-amd64": "grub-efi grub-pc-bin",
"grub-efi-arm64": "grub-efi-arm64 grub-efi-arm64-bin",
"grub-ppc64": "grub-ieee1275" "grub-ppc64": "grub-ieee1275"
} }
} }

View File

@ -53,7 +53,7 @@ while getopts "hud:em:" opt; do
DOWNLOAD_PATH=$OPTARG DOWNLOAD_PATH=$OPTARG
;; ;;
e) e)
ACTION="erase" ACTION="remove"
;; ;;
m) m)
MAP_ELEMENT=$OPTARG MAP_ELEMENT=$OPTARG