docs/plan/01_pruebas-vm-virtualbox.md — 6 fases con metodología de mejora continua: cada fase cierra con Conclusión y Hallazgos que sirven de input para replantear la fase siguiente antes de ejecutarla. Fases: 1. Preparación del entorno VirtualBox 2. Ejecución del setup inicial 3. Catálogo y descarga de ISOs 4. Arranque desde GRUB 5. Casos borde y condiciones adversas 6. Correcciones, optimizaciones y cierre Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 KiB
Plan 01 — Pruebas en entorno controlado (VirtualBox)
Proyecto: rm-MULTIBOOT
Autor: Lic. Ricardo MONLA
Fecha de inicio: 2026-06-06
Estado general: 🔲 En preparación
Objetivo
Validar el comportamiento del script rm-multiboot.sh en un entorno controlado
antes de usarlo en equipos reales. El entorno es una VM Linux en VirtualBox
sobre el equipo local, donde se simula el flujo completo: setup, descarga de
ISOs, generación de entradas GRUB y arranque desde el menú multiboot.
Metodología — Mejora continua por fases
Cada fase tiene:
- Tareas con casillas para marcar al completarlas.
- Notas de ejecución donde se registra lo que pasó realmente.
- Conclusión y hallazgos que se completa al cerrar la fase.
Los hallazgos de cada fase son input obligatorio para revisar y ajustar las fases siguientes antes de ejecutarlas. No se avanza a la fase N+1 sin haber completado la sección de conclusión de la fase N.
Fase 1 ──→ [Conclusión] ──→ Replanteo Fase 2
Fase 2 ──→ [Conclusión] ──→ Replanteo Fase 3
...y así sucesivamente
Fases
FASE 1 — Preparación del entorno VirtualBox
Estado: 🔲 Pendiente
Objetivo: Tener una VM Linux operativa con disco configurado para simular
un equipo real con espacio libre disponible para crear la partición MULTIBOOT.
Especificaciones de la VM
| Parámetro | Valor sugerido |
|---|---|
| Nombre | rm-multiboot-test |
| SO base | Debian 12 o Ubuntu 24.04 |
| RAM | 2048 MB |
| CPU | 2 núcleos |
| Disco principal | 40 GB (deja ~20 GB sin particionar) |
| Red | NAT (con acceso a internet para descargar ISOs) |
| Modo firmware | BIOS Legacy primero, luego repetir en UEFI |
Tareas
- 1.1 Crear la VM en VirtualBox con las especificaciones indicadas
- 1.2 Instalar el SO base dejando al menos 15 GB sin asignar en el disco
- 1.3 Verificar con
lsblk -fque hay espacio libre sin particionar - 1.4 Instalar dependencias necesarias en la VM:
sudo apt install -y git curl wget parted e2fsprogs - 1.5 Verificar acceso a internet desde la VM:
curl -Is https://raw.githubusercontent.com | head -1 - 1.6 Tomar snapshot de VirtualBox con nombre
00-base-limpia - 1.7 Clonar el repositorio dentro de la VM:
git clone https://github.com/ricardomonla/rm-MULTIBOOT.git ~/rm-MULTIBOOT
Notas de ejecución
[ espacio para registrar lo que ocurrió, comandos ejecutados, salidas relevantes ]
Conclusión y hallazgos
| # | Hallazgo | Impacto en fase siguiente |
|---|---|---|
| — | (pendiente) | — |
¿Se ajusta el plan de la Fase 2? 🔲 Sí / 🔲 No
Ajustes realizados: (ninguno hasta completar esta fase)
FASE 2 — Ejecución del setup inicial
Estado: 🔲 Pendiente
Prerequisito: Fase 1 completada y hallazgos revisados.
Objetivo: Verificar que el wizard de setup detecta correctamente el sistema,
encuentra el espacio libre, crea la partición MULTIBOOT y la integra en GRUB.
Tareas
- 2.1 Ejecutar el script como root y registrar la salida de detección:
sudo ~/rm-MULTIBOOT/rm-multiboot.sh - 2.2 Verificar que la detección muestra correctamente:
- Modo de arranque (BIOS/UEFI)
- SO detectado
- Disco principal correcto
- Espacio libre identificado
- 2.3 Completar el wizard de setup asignando al menos 15 GB
- 2.4 Verificar resultado post-setup:
lsblk -f grep MULTIBOOT /etc/fstab ls /mnt/multiboot/ cat /etc/grub.d/41_multiboot - 2.5 Verificar que GRUB fue actualizado sin errores:
grep -i multiboot /boot/grub/grub.cfg - 2.6 Tomar snapshot:
01-post-setup
Notas de ejecución
[ espacio para registrar lo que ocurrió ]
Conclusión y hallazgos
| # | Hallazgo | Impacto en fase siguiente |
|---|---|---|
| — | (pendiente) | — |
¿Se ajusta el plan de la Fase 3? 🔲 Sí / 🔲 No
Ajustes realizados: (ninguno hasta completar esta fase)
FASE 3 — Prueba de catálogo y descarga de ISOs
Estado: 🔲 Pendiente
Prerequisito: Fase 2 completada y hallazgos revisados.
Objetivo: Verificar la descarga desde el catálogo (GitHub), el progreso en
pantalla (barra, %, MB/s, ETA) y la generación correcta de entradas GRUB.
Estrategia: Empezar con una ISO pequeña (Alpine ~200 MB) para ciclar rápido. Agregar una ISO mediana (Debian netinstall ~700 MB) en segunda instancia.
Tareas
- 3.1 Desde el menú → Agregar ISO → Descargar desde catálogo
- 3.2 Verificar que el catálogo se carga desde GitHub (mensaje "GitHub — actualizado")
- 3.3 Seleccionar Alpine Linux (ISO pequeña para prueba rápida)
- 3.4 Verificar que se muestran correctamente durante la descarga:
- Barra de progreso
[####----] - Porcentaje
% - MB actuales / MB totales
- Velocidad en MB/s
- ETA en
mm:ss
- Barra de progreso
- 3.5 Verificar post-descarga:
ls -lh /mnt/multiboot/isos/ cat /mnt/multiboot/grub/entries/*.cfg grep -i alpine /boot/grub/grub.cfg - 3.6 Repetir descarga con Debian 12 Netinstall
- 3.7 Probar descarga de la ISO de Google Drive (Linux Mint desde Drive)
- 3.8 Verificar que "ya descargada" aparece si se intenta descargar de nuevo
- 3.9 Tomar snapshot:
02-post-descargas
Notas de ejecución
[ espacio para registrar lo que ocurrió ]
Conclusión y hallazgos
| # | Hallazgo | Impacto en fase siguiente |
|---|---|---|
| — | (pendiente) | — |
¿Se ajusta el plan de la Fase 4? 🔲 Sí / 🔲 No
Ajustes realizados: (ninguno hasta completar esta fase)
FASE 4 — Prueba de arranque desde GRUB
Estado: 🔲 Pendiente
Prerequisito: Fase 3 completada y hallazgos revisados.
Objetivo: Reiniciar la VM y verificar que el menú GRUB muestra las ISOs
y que al menos una arranca correctamente en modo live.
Tareas
- 4.1 Reiniciar la VM
- 4.2 Verificar que el menú GRUB aparece con las entradas de las ISOs descargadas
- 4.3 Bootear Alpine Linux desde el menú GRUB
- Carga el kernel sin error
- Llega al prompt de login live
- 4.4 Reiniciar y bootear Debian Netinstall desde el menú GRUB
- Aparece el instalador de Debian
- 4.5 Documentar cualquier error de GRUB (mensajes, pantalla negra, kernel panic)
- 4.6 Si alguna ISO falla, registrar el mensaje de error exacto y la entrada
.cfggenerada - 4.7 Tomar snapshot:
03-post-boot-test
Notas de ejecución
[ espacio para registrar lo que ocurrió ]
Conclusión y hallazgos
| # | Hallazgo | Impacto en fase siguiente |
|---|---|---|
| — | (pendiente) | — |
¿Se ajusta el plan de la Fase 5? 🔲 Sí / 🔲 No
Ajustes realizados: (ninguno hasta completar esta fase)
FASE 5 — Prueba de casos borde y condiciones adversas
Estado: 🔲 Pendiente
Prerequisito: Fase 4 completada y hallazgos revisados.
Objetivo: Validar el comportamiento del script ante situaciones no ideales:
sin red, disco lleno, partición ya existente, modo UEFI, etc.
Tareas — Sin conexión a internet
- 5.1 Deshabilitar la red de la VM en VirtualBox
- 5.2 Ejecutar el script y elegir "Descargar desde catálogo"
- 5.3 Verificar que cae al fallback local (
isos.confjunto al script) - 5.4 Rehabilitar la red
Tareas — Gestión de ISOs
- 5.5 Probar "Ver ISOs disponibles" y verificar que muestra estado correcto
- 5.6 Eliminar una ISO desde el menú y verificar:
ls /mnt/multiboot/isos/ ls /mnt/multiboot/grub/entries/ grep -c menuentry /boot/grub/grub.cfg - 5.7 Reiniciar y verificar que la ISO eliminada ya no aparece en GRUB
Tareas — Modo UEFI
- 5.8 Restaurar snapshot
00-base-limpia - 5.9 Cambiar la VM a modo EFI en VirtualBox (Configuración → Sistema → Habilitar EFI)
- 5.10 Reinstalar el SO base en modo UEFI
- 5.11 Repetir el setup con
rm-multiboot.shy verificar detección UEFI - 5.12 Verificar que el hook de GRUB funciona igual en UEFI
Notas de ejecución
[ espacio para registrar lo que ocurrió ]
Conclusión y hallazgos
| # | Hallazgo | Impacto en fase siguiente |
|---|---|---|
| — | (pendiente) | — |
¿Se ajusta el plan de la Fase 6? 🔲 Sí / 🔲 No
Ajustes realizados: (ninguno hasta completar esta fase)
FASE 6 — Correcciones, optimizaciones y cierre
Estado: 🔲 Pendiente
Prerequisito: Fases 1–5 completadas y hallazgos consolidados.
Objetivo: Aplicar todos los fixes identificados, re-validar los casos que
fallaron y documentar el estado final del script para uso en producción.
Tareas
- 6.1 Consolidar todos los bugs encontrados en las fases anteriores
- 6.2 Priorizar fixes por impacto (bloqueante / menor / cosmético)
- 6.3 Implementar y commitear cada fix por separado con mensaje descriptivo
- 6.4 Re-ejecutar los casos que fallaron en las fases anteriores
- 6.5 Actualizar
isos.confsi se detectaron URLs rotas o desactualizadas - 6.6 Actualizar versión del script según la magnitud de los cambios
- 6.7 Hacer push final al repositorio
- 6.8 Documentar el estado "apto para uso en equipos reales" o las condiciones pendientes
Notas de ejecución
[ espacio para registrar lo que ocurrió ]
Conclusión y hallazgos — Cierre del plan
| # | Hallazgo / Resultado | Acción tomada |
|---|---|---|
| — | (pendiente) | — |
Bugs encontrados: 0 (actualizar)
Bugs resueltos: 0 (actualizar)
Pendientes para próximo ciclo: (ninguno hasta completar)
Registro de versiones del script durante las pruebas
| Fase | Versión del script | Cambios relevantes |
|---|---|---|
| Inicio | 2.3.2 | Versión inicial de pruebas |
| — | — | — |
Checklist general de avance
- Fase 1 — Entorno VirtualBox preparado
- Fase 2 — Setup inicial validado
- Fase 3 — Descargas y catálogo validados
- Fase 4 — Arranque GRUB validado
- Fase 5 — Casos borde validados
- Fase 6 — Correcciones aplicadas y plan cerrado