Files
rm-MULTIBOOT/investigacion-plan.md
Ricardo MonlaandClaude Sonnet 4.6 489af9b387 feat: initial multiboot manager script and research doc
Script interactivo para configurar multiboot desde disco interno.
Auto-detecta sistema, crea partición MULTIBOOT en espacio libre,
gestiona ISOs con entradas GRUB automáticas (loopback + fallback).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 16:55:22 -03:00

254 lines
8.9 KiB
Markdown
Raw Permalink 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.
# Multiboot Nativo desde HD — Investigación y Plan
## Objetivo
Reemplazar el pendrive booteable con ISOs por una partición del disco duro interno que permita arrancar distintas ISOs de instalación de Linux directamente, sin depender de hardware externo.
**Flujo deseado:**
```
Reiniciar PC → Menú GRUB → Elegir ISO → Instalar distro en la PC de turno
```
---
## Panorama de Enfoques
### Opción A — GRUB2 Loopback Manual
**¿Qué es?** GRUB2 incluye soporte nativo para montar ISOs en tiempo de arranque (loopback) y pasar el kernel/initrd directamente desde el archivo `.iso` sin descomprimirlo.
**Cómo funciona:**
1. La ISO vive en cualquier partición que GRUB pueda leer (ext4, NTFS, FAT32)
2. GRUB monta la ISO como loop device en tiempo de boot
3. Se carga el kernel + initrd extraídos de adentro de la ISO
4. El kernel recibe un parámetro que le indica dónde está la ISO para continuar
**Requisito clave:** La ISO debe incluir un archivo `boot/grub/loopback.cfg` — la mayoría de distros modernas lo tienen (Ubuntu, Debian, Fedora, Arch, etc.).
**Ejemplo de entrada GRUB:**
```grub
menuentry "Ubuntu 24.04 LTS" {
set isofile="/isos/ubuntu-24.04-desktop-amd64.iso"
loopback loop (hd0,3)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/casper/initrd
}
```
**Pros:**
- Sin dependencias externas — GRUB puro
- Control total sobre el menú
- Funciona con BIOS/Legacy y UEFI (con Secure Boot desactivado)
**Contras:**
- Cada ISO requiere una entrada manual en grub.cfg
- Sintaxis varía entre distros (Ubuntu usa `casper`, Fedora usa `rd.live.image`, Arch es diferente)
- Mantenimiento manual al agregar ISOs
---
### Opción B — GLIM (GRUB2 Live ISO Multiboot)
**Repo:** https://github.com/thias/glim
**¿Qué es?** Colección de scripts y configuraciones GRUB prehechas para arrancar múltiples ISOs. Detecta la distro por nombre de archivo y aplica la configuración correcta automáticamente.
**Estructura de uso:**
```
/boot/isos/
ubuntu/ ← Ubuntu ISOs van aquí
debian/ ← Debian ISOs van aquí
fedora/ ← Fedora ISOs van aquí
arch/ ← Arch Linux ISOs van aquí
...
```
**Soporte de particiones:**
- Partición 1: FAT32, etiqueta `GLIM` (100MB mínimo, para el bootloader)
- Partición 2: ext4, etiqueta `GLIMISO` (para ISOs > 4GB que no caben en FAT32)
**Pros:**
- Agregar ISO = copiar archivo a la carpeta correcta
- Soporta > 60 distros out-of-the-box
- Maneja automáticamente las diferencias de sintaxis por distro
**Contras:**
- Diseñado para USB, adaptarlo a HD interno requiere ajustes
- Requiere partición FAT32 separada para el bootloader GLIM
- Puede coexistir con un OS existente, pero necesita configuración adicional
---
### Opción C — Ventoy en Disco Interno
**Repo:** https://github.com/ventoy/Ventoy
**¿Qué es?** Herramienta que convierte un disco (o partición) en un multiboot que simplemente copia ISOs y listo.
**Instalación en HD interno:**
```bash
# Instalar Ventoy en un disco dedicado o partición reservada
sudo sh Ventoy2Disk.sh -I /dev/sdX
# Luego copiar ISOs a la partición Ventoy
```
**Pros:**
- La más simple: copiar ISO → aparece en el menú al reiniciar
- Soporta > 1300 sistemas operativos
- Funciona con BIOS y UEFI (incluyendo Secure Boot)
- Soporta ISO, WIM, IMG, VHD, EFI
**Contras / Riesgo importante:**
- Ventoy toma control del MBR/GPT del disco donde se instala
- Si se instala en el disco del OS actual: **riesgo de romper el boot existente**
- La solución más segura es un **disco físico separado** o un disco dedicado solo a Ventoy
- Durante la instalación de un OS destino, el installer puede confundirse y seleccionar el disco Ventoy
**Mitigación:** Reservar un disco SSD secundario o una segunda unidad NVMe solo para Ventoy.
---
### Opción D — grml-rescueboot (paquete Debian/Ubuntu)
**¿Qué es?** Paquete que se integra con `update-grub`. Escanea `/boot/grml/` y agrega entradas automáticamente al GRUB del sistema.
```bash
sudo apt install grml-rescueboot
# Copiar ISO a /boot/grml/
sudo update-grub # agrega la entrada automáticamente
```
**Pros:** Extremadamente simple, integrado con el sistema
**Contras:** Diseñado principalmente para ISOs Grml, soporte limitado para otras distros
---
## Comparativa Rápida
| Criterio | A: GRUB Manual | B: GLIM | C: Ventoy HD | D: grml-rescueboot |
|---|---|---|---|---|
| Simplicidad de uso | Baja | Media | Alta | Alta |
| Agregar nueva ISO | Manual | Copiar a carpeta | Copiar a partición | Copiar + update-grub |
| Soporte de distros | Todas* | ~60 | +1300 | Grml + pocas |
| Riesgo para OS actual | Bajo | Bajo | **Alto** | Bajo |
| UEFI Secure Boot | No** | No** | Sí | No** |
| Scripteabilidad | Total | Alta | Alta | Media |
*con entrada GRUB correcta
**requiere desactivar Secure Boot
---
## Recomendación: Plan en 3 Fases
### Fase 1 — Estructura Base (mínimo viable)
**Arquitectura elegida:** Partición dedicada ext4 en el disco actual + GRUB2 Loopback + script de gestión
**¿Por qué esta combinación?**
- Sin riesgo para el OS actual (es solo una partición nueva)
- Control total (no dependemos de proyectos externos)
- Scripteabilidad completa para automatizar el flujo
- Compatible con BIOS y UEFI
**Pasos:**
1. **Crear partición dedicada** (2050 GB, ext4, etiqueta `MULTIBOOT`)
```bash
# Identificar disco y espacio libre
lsblk
sudo fdisk /dev/sdX # o parted / gparted
sudo mkfs.ext4 -L MULTIBOOT /dev/sdXN
```
2. **Punto de montaje permanente** en `/etc/fstab`:
```
LABEL=MULTIBOOT /mnt/multiboot ext4 defaults,noatime 0 2
```
3. **Estructura de carpetas:**
```
/mnt/multiboot/
isos/
ubuntu/
debian/
fedora/
arch/
grub/
grub.cfg ← configuración principal
entries/ ← un .cfg por ISO
```
4. **Entradas GRUB:** Agregar a `/etc/grub.d/40_custom` o crear `/etc/grub.d/41_multiboot`:
```grub
menuentry "--- Multiboot ISOs ---" { echo }
source (hd0,X)/grub/grub.cfg
```
### Fase 2 — Script de Gestión (`add-iso.sh`)
Script que dado un archivo ISO:
1. Lo copia a la partición en la carpeta correcta según la distro detectada
2. Genera automáticamente la entrada GRUB para esa ISO
3. Ejecuta `sudo update-grub` para registrarla
```bash
#!/bin/bash
# add-iso.sh <ruta-al-iso>
# Uso: ./add-iso.sh ~/downloads/ubuntu-24.04.iso
```
Detección de distro por nombre: `ubuntu*` → carpeta ubuntu, `debian*` → debian, etc.
### Fase 3 — Mejoras
- Script `list-isos.sh`: listar ISOs disponibles con info de tamaño y fecha
- Script `remove-iso.sh`: eliminar ISO y su entrada GRUB
- Soporte para ISOs con `loopback.cfg` nativo (delegar la config a la propia ISO)
- Considerar migrar a **GLIM** si el número de distros crece mucho
---
## Consideraciones Importantes
### UEFI vs BIOS Legacy
- Si la PC usa **UEFI**, hay que asegurarse de que **Secure Boot esté desactivado** para que GRUB cargue ISOs de terceros
- En UEFI, el GRUB de la partición EFI existente es el que controla el arranque
### ISOs que soportan loopback.cfg (recomendadas)
- Ubuntu / Xubuntu / Kubuntu / Lubuntu
- Debian (live e installer)
- Linux Mint
- Fedora Workstation
- openSUSE
- Manjaro
- Kali Linux
### ISOs con soporte limitado o especial
- Arch Linux: no tiene loopback.cfg, requiere entrada GRUB personalizada
- Windows ISOs: requieren enfoque diferente (memdisk o Ventoy)
- Alpine Linux: funciona pero con parámetros especiales
### Riesgo de confusión del installer
Cuando se arranca una ISO de instalación desde el HD interno y se va a instalar en **otra PC** (escenario típico del usuario), no hay problema porque la ISO corre en la PC fuente como live environment. El riesgo existe si se intenta instalar en la **misma PC** del multiboot.
---
## Próximos Pasos Concretos
1. **Determinar la máquina host:** ¿Qué disco/partición tiene espacio libre? (`lsblk -f`)
2. **Elegir modo boot:** ¿BIOS/Legacy o UEFI? (`[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS`)
3. **Crear la partición MULTIBOOT** con el espacio disponible
4. **Implementar `add-iso.sh`** con soporte inicial para Ubuntu, Debian y Fedora
5. **Probar el boot** con una ISO conocida antes de ampliar
---
## Fuentes y Referencias
- [Ubuntu Wiki — GRUB2 ISOBoot](https://help.ubuntu.com/community/Grub2/ISOBoot)
- [ArchWiki — Multiboot USB Drive](https://wiki.archlinux.org/title/Multiboot_USB_drive)
- [GLIM en GitHub (thias)](https://github.com/thias/glim)
- [Ventoy — GitHub oficial](https://github.com/ventoy/Ventoy)
- [LinuxBabe — Boot ISO desde GRUB2](https://www.linuxbabe.com/desktop-linux/boot-from-iso-files-using-grub2-boot-loader)
- [DEV.to — Boot desde ISO sin USB](https://dev.to/oryaacov/how-to-boot-from-iso-file-using-grub-internal-hdd-without-external-usbcd-4a09)
- [grml-rescueboot — GitHub](https://github.com/grml/grml-rescueboot)
- [Loopback.cfg — Super Grub Disk Wiki](https://www.supergrubdisk.org/wiki/Loopback.cfg)