• Agregar una entrada de grub para bootear una ISO Live de Ubuntu

    Guardamos la ISO de Ubuntu Live que queramos bootear en una carpeta de alguna partición ext4, fat32 o NTFS. Yo la voy a guardar en la carpeta /ISOs de la propia partición ext4 de Debian.

    Creamos o modificamos el archivo /etc/grub.d/40_custom y dentro agregamos:

    MODO CSM PARA PARTICIÓN EXT4 CON MAPA MBR

    menuentry "ISO de Ubuntu" {
      insmod part_msdos
      insmod ext2
      set isofile="/ISOs/ubuntu-22.04.2-desktop-amd64.iso"
      loopback loop (hd0,2)$isofile
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash
      initrd (loop)/casper/initrd
    }

    MODO UEFI PARA PARTICIÓN EXT4 CON MAPA MBR

    Para bootear una ISO en modo UEFI, es posible que debas agregar rmmod tpd, quedando el archivo /etc/grub.d/40_custom de la siguiente manera:

    menuentry "ISO de Ubuntu" {
      insmod part_gpt
      insmod ext2
      set isofile="/ISOs/ubuntu-22.04.2-desktop-amd64.iso"
      rmmod tpm
      loopback loop (hd0,2)$isofile
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash
      initrd (loop)/casper/initrd
    }

    EXPLICACIONES DE LAS SENTENCIAS

    insmod ext2 carga el módulo para manejar particiones ext4. Si el archivo estuviera en ntfs, esa línea sería insmod ntfs.

    set isofile indica la ruta hasta el archivo desde la ubicación de la partición donde está instalado grub.

    rmmod tpm quita el controlador del módulo tpm, para que no se generen concflictos de inicio si el TPM está habilitado en la BIOS UEFI.

    loopback monta el iso. hd0 es el primer disco duro y 2 significa que el archivo ISO será almacenada en la 2da partición de ese disco. Si se quiere guardar en una partición extendida, la partición extendida en sí será la quinta partición, y la primera partición de dentro de la partición extendida será la número 6.

    linux carga el kernel que especifiquemos en la ruta inmediatamente posterior. En este caso la ruta que le damos es /casper/vmlinuz.efi, que es la ruta del kernel de dentro del archivo iso.

    initrd carga en RAM el ramdisk que especifiquemos en la ruta inmediatamente posterior. En este caso la ruta donde está en ramdisk es /casper/initrd del archivo ISO. Pero ATENTO, sólo se puede cargar DESPUÉS de que se ha cargado el kernel que indicamos en la línea inmediatamente anterior.

    Nota 1: Para indicar hd0, hd1, etc, si tienes muchos discos, ten en cuenta que se numeran en este orden:

    1. Discos ópticos
    2. Discos USB
    3. IDE
    4. SATA
    5. NVMe

    Nota 2: Si tienes una partición que ocupa todo el disco, no hace falta indicar el número de partición en grub. Con especificar hd0 o hd1 bastaría.

    Nota 3: Si quieres iniciar una ISO en modo UEFI, tienes que agregar