From 2f40d60ec2339bcc965bb36ee0daeb8c246a1716 Mon Sep 17 00:00:00 2001 From: Peter Ajamian Date: Sun, 8 Aug 2021 21:57:45 +1200 Subject: [PATCH] Do not attempt to update EFI boot in containers. Containers (at least many fo them) will bind-mount /sys which works for most cases but it means that /sys will indicate EFI boot when it is, in fact, the host system that has EFI boot. To fix this we use systemd-detect-virt to see if we're running in a container and if so we don't attempt to update EFI boot. --- migrate2rocky/migrate2rocky.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/migrate2rocky/migrate2rocky.sh b/migrate2rocky/migrate2rocky.sh index 2c9773d..ceadbca 100644 --- a/migrate2rocky/migrate2rocky.sh +++ b/migrate2rocky/migrate2rocky.sh @@ -209,9 +209,8 @@ bin_check() { local -a missing bins bins=( - rpm dnf awk column tee tput mkdir - cat arch sort uniq rmdir rm head - curl sha512sum mktemp + rpm dnf awk column tee tput mkdir cat arch sort uniq + rmdir rm head curl sha512sum mktemp systemd-detect-virt ) if [[ $update_efi ]]; then bins+=(findmnt grub2-mkconfig efibootmgr grep mokutil lsblk) @@ -852,7 +851,8 @@ efi_check () { fi # Now that we know /sys is reliable, use it to check if we are running on EFI or not - if [[ -d /sys/firmware/efi/ ]]; then + if [[ -d /sys/firmware/efi/ ]] && ! systemd-detect-virt --quiet --container + then declare -g update_efi update_efi=true fi