Files
rm-MULTIBOOT/docs/plan/01_pruebas-vm-virtualbox.md
T
Ricardo MonlaandClaude Sonnet 4.6 2e48ba0064 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>
2026-06-06 18:03:41 -03:00

337 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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