docs: agregar plan de pruebas en VM VirtualBox (plan 01)

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>
This commit is contained in:
Ricardo Monla
2026-06-06 18:03:41 -03:00
co-authored by Claude Sonnet 4.6
parent de2a86fe78
commit 2e48ba0064
+336
View File
@@ -0,0 +1,336 @@
# 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 -f` que hay espacio libre sin particionar
- [ ] **1.4** Instalar dependencias necesarias en la VM:
```bash
sudo apt install -y git curl wget parted e2fsprogs
```
- [ ] **1.5** Verificar acceso a internet desde la VM:
```bash
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:
```bash
git clone https://github.com/ricardomonla/rm-MULTIBOOT.git ~/rm-MULTIBOOT
```
#### Notas de ejecución
<!-- Completar durante la ejecución -->
```
[ espacio para registrar lo que ocurrió, comandos ejecutados, salidas relevantes ]
```
#### Conclusión y hallazgos
<!-- Completar al finalizar la fase — es el INPUT de la Fase 2 -->
| # | 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:
```bash
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:
```bash
lsblk -f
grep MULTIBOOT /etc/fstab
ls /mnt/multiboot/
cat /etc/grub.d/41_multiboot
```
- [ ] **2.5** Verificar que GRUB fue actualizado sin errores:
```bash
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`
- [ ] **3.5** Verificar post-descarga:
```bash
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 `.cfg` generada
- [ ] **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.conf` junto 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:
```bash
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.sh` y 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 15 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.conf` si 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