From 2e48ba0064c74f802c49fa32c4fd10818ab31eb5 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Sat, 6 Jun 2026 18:03:41 -0300 Subject: [PATCH] docs: agregar plan de pruebas en VM VirtualBox (plan 01) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- docs/plan/01_pruebas-vm-virtualbox.md | 336 ++++++++++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 docs/plan/01_pruebas-vm-virtualbox.md diff --git a/docs/plan/01_pruebas-vm-virtualbox.md b/docs/plan/01_pruebas-vm-virtualbox.md new file mode 100644 index 0000000..9a0aff5 --- /dev/null +++ b/docs/plan/01_pruebas-vm-virtualbox.md @@ -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 + + +``` +[ 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: + ```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