v2.11.0: opción 4 — Regenerar entradas GRUB en el menú principal
Agrega regenerar_entradas_grub(): recorre todas las ISOs existentes, las re-inspecciona con la lógica actual de generate_grub_entry() y reescribe sus .cfg. Corrige entradas generadas con versiones anteriores que tenían loopback.cfg falso o initrd con nombre incorrecto. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
5efdfd140e
commit
de43263e8e
+44
-5
@@ -5,7 +5,7 @@
|
||||
# Autor: Lic. Ricardo MONLA
|
||||
# Email: rmonla@gmail.com
|
||||
# GitHub: https://github.com/ricardomonla/rm-MULTIBOOT
|
||||
# Versión: 2.10.0
|
||||
# Versión: 2.11.0
|
||||
# Licencia: MIT
|
||||
#
|
||||
# Uso: sudo ./rm-multiboot.sh
|
||||
@@ -19,7 +19,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
# ─── Constantes ───────────────────────────────────────────────────────────────
|
||||
readonly SCRIPT_VERSION="2.10.0"
|
||||
readonly SCRIPT_VERSION="2.11.0"
|
||||
readonly SCRIPT_AUTHOR="Lic. Ricardo MONLA"
|
||||
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly ISOS_CONF="$SCRIPT_DIR/isos.conf"
|
||||
@@ -226,14 +226,16 @@ menu_principal() {
|
||||
echo " 1) Agregar una ISO"
|
||||
echo " 2) Ver ISOs disponibles"
|
||||
echo " 3) Eliminar una ISO"
|
||||
echo " 4) Salir"
|
||||
echo " 4) Regenerar entradas GRUB"
|
||||
echo " 5) Salir"
|
||||
echo ""
|
||||
local opt; opt=$(ask "Opción [1-4]")
|
||||
local opt; opt=$(ask "Opción [1-5]")
|
||||
case "$opt" in
|
||||
1) menu_agregar_iso ;;
|
||||
2) list_isos; pause; banner; detect_system; menu_principal ;;
|
||||
3) remove_iso ;;
|
||||
4) echo ""; exit 0 ;;
|
||||
4) regenerar_entradas_grub ;;
|
||||
5) echo ""; exit 0 ;;
|
||||
*) menu_principal ;;
|
||||
esac
|
||||
fi
|
||||
@@ -1451,6 +1453,43 @@ CFG
|
||||
# LISTAR ISOs
|
||||
# =============================================================================
|
||||
|
||||
regenerar_entradas_grub() {
|
||||
banner
|
||||
step "Regenerar entradas GRUB"
|
||||
echo ""
|
||||
echo -e " Vuelve a inspeccionar cada ISO y reescribe su entrada .cfg\n"
|
||||
echo -e " con la lógica actualizada (loopback.cfg válido, initrd correcto).\n"
|
||||
|
||||
local -a isos
|
||||
while IFS= read -r iso; do
|
||||
[[ -f "$iso" ]] && isos+=("$iso")
|
||||
done < <(find "$ISO_DIR" -maxdepth 2 -name "*.iso" 2>/dev/null | sort)
|
||||
|
||||
if [[ "${#isos[@]}" -eq 0 ]]; then
|
||||
warn "No hay ISOs en la partición MULTIBOOT."
|
||||
pause; banner; detect_system; menu_principal; return
|
||||
fi
|
||||
|
||||
local count=0
|
||||
for iso in "${isos[@]}"; do
|
||||
local iso_name distro
|
||||
iso_name=$(basename "$iso")
|
||||
echo -e "\n ${C}→${N} $iso_name"
|
||||
distro=$(detect_distro "$iso_name")
|
||||
generate_grub_entry "$iso_name" "$distro"
|
||||
count=$(( count + 1 ))
|
||||
done
|
||||
|
||||
divider
|
||||
step "Actualizando GRUB..."
|
||||
grub_update
|
||||
|
||||
echo ""
|
||||
ok "${count} entrada(s) regenerada(s) correctamente."
|
||||
pause; banner; detect_system; menu_principal
|
||||
}
|
||||
|
||||
|
||||
list_isos() {
|
||||
banner
|
||||
step "ISOs disponibles en MULTIBOOT"
|
||||
|
||||
Reference in New Issue
Block a user