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>
This commit is contained in:
@@ -171,23 +171,12 @@ if command -v update-grub >/dev/null 2>&1; then
|
|||||||
echo " ejecutando update-grub (Debian/Ubuntu)"
|
echo " ejecutando update-grub (Debian/Ubuntu)"
|
||||||
update-grub
|
update-grub
|
||||||
elif command -v grub2-mkconfig >/dev/null 2>&1; then
|
elif command -v grub2-mkconfig >/dev/null 2>&1; then
|
||||||
# Fedora / RHEL: buscar el grub.cfg activo. UEFI primero — su path es
|
# Fedora / RHEL desde ~2021 unificaron en /boot/grub2/grub.cfg para
|
||||||
# el que arranca realmente; el de BIOS suele ser un symlink al UEFI.
|
# BIOS y UEFI; el /boot/efi/EFI/<distro>/grub.cfg pasó a ser un wrapper
|
||||||
GRUB_CFG=""
|
# que sourcea aquél y NO debe regenerarse — grub2-mkconfig protesta y
|
||||||
for cand in /boot/efi/EFI/fedora/grub.cfg \
|
# se niega a sobreescribirlo. Apuntamos directo al canónico.
|
||||||
/boot/efi/EFI/redhat/grub.cfg \
|
echo " ejecutando grub2-mkconfig -o /boot/grub2/grub.cfg (Fedora/RHEL)"
|
||||||
/boot/efi/EFI/centos/grub.cfg \
|
grub2-mkconfig -o /boot/grub2/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"
|
|
||||||
elif command -v grub-mkconfig >/dev/null 2>&1; then
|
elif command -v grub-mkconfig >/dev/null 2>&1; then
|
||||||
echo " ejecutando grub-mkconfig (Arch/otros)"
|
echo " ejecutando grub-mkconfig (Arch/otros)"
|
||||||
grub-mkconfig -o /boot/grub/grub.cfg
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
|||||||
@@ -39,16 +39,7 @@ fi
|
|||||||
if command -v update-grub >/dev/null 2>&1; then
|
if command -v update-grub >/dev/null 2>&1; then
|
||||||
update-grub
|
update-grub
|
||||||
elif command -v grub2-mkconfig >/dev/null 2>&1; then
|
elif command -v grub2-mkconfig >/dev/null 2>&1; then
|
||||||
GRUB_CFG=""
|
grub2-mkconfig -o /boot/grub2/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}"
|
|
||||||
elif command -v grub-mkconfig >/dev/null 2>&1; then
|
elif command -v grub-mkconfig >/dev/null 2>&1; then
|
||||||
grub-mkconfig -o /boot/grub/grub.cfg
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user