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
|
# Autor: Lic. Ricardo MONLA
|
||||||
# Email: rmonla@gmail.com
|
# Email: rmonla@gmail.com
|
||||||
# GitHub: https://github.com/ricardomonla/rm-MULTIBOOT
|
# GitHub: https://github.com/ricardomonla/rm-MULTIBOOT
|
||||||
# Versión: 2.10.0
|
# Versión: 2.11.0
|
||||||
# Licencia: MIT
|
# Licencia: MIT
|
||||||
#
|
#
|
||||||
# Uso: sudo ./rm-multiboot.sh
|
# Uso: sudo ./rm-multiboot.sh
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# ─── Constantes ───────────────────────────────────────────────────────────────
|
# ─── Constantes ───────────────────────────────────────────────────────────────
|
||||||
readonly SCRIPT_VERSION="2.10.0"
|
readonly SCRIPT_VERSION="2.11.0"
|
||||||
readonly SCRIPT_AUTHOR="Lic. Ricardo MONLA"
|
readonly SCRIPT_AUTHOR="Lic. Ricardo MONLA"
|
||||||
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
readonly ISOS_CONF="$SCRIPT_DIR/isos.conf"
|
readonly ISOS_CONF="$SCRIPT_DIR/isos.conf"
|
||||||
@@ -226,14 +226,16 @@ menu_principal() {
|
|||||||
echo " 1) Agregar una ISO"
|
echo " 1) Agregar una ISO"
|
||||||
echo " 2) Ver ISOs disponibles"
|
echo " 2) Ver ISOs disponibles"
|
||||||
echo " 3) Eliminar una ISO"
|
echo " 3) Eliminar una ISO"
|
||||||
echo " 4) Salir"
|
echo " 4) Regenerar entradas GRUB"
|
||||||
|
echo " 5) Salir"
|
||||||
echo ""
|
echo ""
|
||||||
local opt; opt=$(ask "Opción [1-4]")
|
local opt; opt=$(ask "Opción [1-5]")
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
1) menu_agregar_iso ;;
|
1) menu_agregar_iso ;;
|
||||||
2) list_isos; pause; banner; detect_system; menu_principal ;;
|
2) list_isos; pause; banner; detect_system; menu_principal ;;
|
||||||
3) remove_iso ;;
|
3) remove_iso ;;
|
||||||
4) echo ""; exit 0 ;;
|
4) regenerar_entradas_grub ;;
|
||||||
|
5) echo ""; exit 0 ;;
|
||||||
*) menu_principal ;;
|
*) menu_principal ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@@ -1451,6 +1453,43 @@ CFG
|
|||||||
# LISTAR ISOs
|
# 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() {
|
list_isos() {
|
||||||
banner
|
banner
|
||||||
step "ISOs disponibles en MULTIBOOT"
|
step "ISOs disponibles en MULTIBOOT"
|
||||||
|
|||||||
Reference in New Issue
Block a user