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:
co-authored by
Claude Sonnet 4.6
parent
de2a86fe78
commit
2e48ba0064
@@ -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 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.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
|
||||
Reference in New Issue
Block a user