fix(scripts): Fedora/RHEL usan /boot/grub2/grub.cfg, no el wrapper EFI
Desde Fedora 34 / RHEL 9, /boot/efi/EFI/<distro>/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 <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
2 archivos · +7 −27
- scripts/install-arje-as-init.sh +6 −17
- scripts/uninstall-arje.sh +1 −10
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/<distro>/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