From 5edd8de917377a743d4d2c485609b62dacce858b Mon Sep 17 00:00:00 2001 From: sergio Date: Sat, 23 May 2026 00:25:18 +0000 Subject: [PATCH] fix(scripts): Fedora/RHEL usan /boot/grub2/grub.cfg, no el wrapper EFI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Desde Fedora 34 / RHEL 9, /boot/efi/EFI//grub.cfg es un wrapper que sourcea /boot/grub2/grub.cfg — y grub2-mkconfig se niega a sobreescribirlo ("will overwrite the GRUB wrapper. Please run [...] on /boot/grub2/grub.cfg instead"). Mi loop de detección lo encontraba primero y fallaba. Apuntamos directo al canónico. Co-Authored-By: Claude Opus 4.7 --- scripts/install-arje-as-init.sh | 23 ++++++----------------- scripts/uninstall-arje.sh | 11 +---------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/scripts/install-arje-as-init.sh b/scripts/install-arje-as-init.sh index 25314a0..5239d46 100755 --- a/scripts/install-arje-as-init.sh +++ b/scripts/install-arje-as-init.sh @@ -171,23 +171,12 @@ if command -v update-grub >/dev/null 2>&1; then echo " ejecutando update-grub (Debian/Ubuntu)" update-grub elif command -v grub2-mkconfig >/dev/null 2>&1; then - # Fedora / RHEL: buscar el grub.cfg activo. UEFI primero — su path es - # el que arranca realmente; el de BIOS suele ser un symlink al UEFI. - GRUB_CFG="" - for cand in /boot/efi/EFI/fedora/grub.cfg \ - /boot/efi/EFI/redhat/grub.cfg \ - /boot/efi/EFI/centos/grub.cfg \ - /boot/efi/EFI/almalinux/grub.cfg \ - /boot/efi/EFI/rocky/grub.cfg \ - /boot/grub2/grub.cfg; do - if [ -f "$cand" ] || [ -L "$cand" ]; then GRUB_CFG="$cand"; break; fi - done - if [ -z "$GRUB_CFG" ]; then - GRUB_CFG="/boot/grub2/grub.cfg" - echo " no detecté grub.cfg existente — usando $GRUB_CFG por default" - fi - echo " ejecutando grub2-mkconfig -o $GRUB_CFG (Fedora/RHEL)" - grub2-mkconfig -o "$GRUB_CFG" + # Fedora / RHEL desde ~2021 unificaron en /boot/grub2/grub.cfg para + # BIOS y UEFI; el /boot/efi/EFI//grub.cfg pasó a ser un wrapper + # que sourcea aquél y NO debe regenerarse — grub2-mkconfig protesta y + # se niega a sobreescribirlo. Apuntamos directo al canónico. + echo " ejecutando grub2-mkconfig -o /boot/grub2/grub.cfg (Fedora/RHEL)" + grub2-mkconfig -o /boot/grub2/grub.cfg elif command -v grub-mkconfig >/dev/null 2>&1; then echo " ejecutando grub-mkconfig (Arch/otros)" grub-mkconfig -o /boot/grub/grub.cfg diff --git a/scripts/uninstall-arje.sh b/scripts/uninstall-arje.sh index 8722528..3e044e2 100755 --- a/scripts/uninstall-arje.sh +++ b/scripts/uninstall-arje.sh @@ -39,16 +39,7 @@ fi if command -v update-grub >/dev/null 2>&1; then update-grub elif command -v grub2-mkconfig >/dev/null 2>&1; then - GRUB_CFG="" - for cand in /boot/efi/EFI/fedora/grub.cfg \ - /boot/efi/EFI/redhat/grub.cfg \ - /boot/efi/EFI/centos/grub.cfg \ - /boot/efi/EFI/almalinux/grub.cfg \ - /boot/efi/EFI/rocky/grub.cfg \ - /boot/grub2/grub.cfg; do - if [ -f "$cand" ] || [ -L "$cand" ]; then GRUB_CFG="$cand"; break; fi - done - grub2-mkconfig -o "${GRUB_CFG:-/boot/grub2/grub.cfg}" + grub2-mkconfig -o /boot/grub2/grub.cfg elif command -v grub-mkconfig >/dev/null 2>&1; then grub-mkconfig -o /boot/grub/grub.cfg fi