Siempre trato de tener una imagen iso para arrancar un sistema directamente del gestor de arranque grub, pero debido a que el número de disco puede cambiar si uno tiene conectado un disco externo o algo y puede fallar mejor opté por hacerlo con el número de UUID de la partición. Se pude saber de varias formas:
en la consola cargamos el archivos de configuración de grub2 como administrador
nano /etc/grub.d/40_custom
Nos debe quedar algo como sigue:
!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Fedora 42 Cinammon" {
set isoFileFedora42Cinammon="/<tudirectorio>/Fedora-Cinnamon-Live-x86_64-42-1.1.iso"
insmod loopback
insmod iso9660
search --no-floppy --fs-uuid --set=root 02b7c914-a735-40ff-b6ba-cab5c7cdf657
loopback loop $isoFileFedora42Cinammon
linux (loop)/images/pxeboot/vmlinuz iso-scan/filename=$isoFileFedora42Cinammon root=live:CDLABEL=Fedora-Cinn-Live-42-1-1 rd.live.image quiet rhgb
initrd (loop)/images/pxeboot/initrd.img
}
Aquí creamos la variable "isoFileFedora42Cinammon" con la dirección donde se encuentra la imagen iso por supuesto cambiando directorio por el directorio donde esta la imagen.
set isoFileFedora42Cinammon="/directorio/Fedora-Cinnamon-Live-x86_64-42-1.1.iso"
ahora le indicamos la partición con número donde se encuentra la imagen iso que tenemos en la variable ya sabemos que es el número UUID que nos dio cuando usamos el mando blkid
search --no-floppy --fs-uuid --set=root 02b7c914-a735-40ff-b6ba-cab5c7cdf657
loopback loop $isoFileFedora42Cinammon
Luego lugar donde encontrar el kernel que se encuentra en el directorio /images/pxeboot/ el kernel llamado vmlinuz.
linux (loop)/images/pxeboot/vmlinuz iso-scan/filename=$isoFileFedora42Cinammon root=live:CDLABEL=Fedora-Cinn-Live-42-1-1 rd.live.image quiet rhgb
Después iso-scan/filename=$isoFileFedora42Cinammon donde está la imagen
las partes que siguen están dentro de la imagen .iso en el directorio /boot/grub2/grub.cfg
en las opciones de arranque del grub que serian las mismas, en ese archivo encontraremos las partes como sigue:
Archivo 40_grub.cfg en imagen iso
menuentry 'Test this media & start Fedora-Cinnamon-Live 42' --class fedora --class gnu-linux --class gnu --class os {
linux /images/pxeboot/vmlinuz root=live:CDLABEL=Fedora-Cinn-Live-42-1-1 rd.live.image rd.live.check quiet
initrd /images/pxeboot/initrd.img
}
ahora copiamos root=live:CDLABEL=Fedora-Cinn-Live-42-1-1 rd.live.image rd.live.check quiet en 40_custom y lo ponemos después de iso-scan/filename=$isoFileFedora42Cinammon y en la siguiente linea ponemos la linea de abajo de grub.cfg que sería /images/pxeboot/initrd.img como mostré después de initrd (loop) en el archivo de 40_custom.
initrd (loop)/images/pxeboot/initrd.img
es indicarle donde esta el archivo initrd.img vemos que es el mismo directorio donde esta el kernel, a initrd (loop) le ponemos seguido el directorio de dicho archivo.
Luego debemos actualizar el grub creando la configuración y actualizando grub2 este es en manjaro pero dependiendo la distribución lo hacemos de la madera adecuada.
sudo update-grub
en ubuntu:
sudo grub-mkconfig
sudo update-grub
¡ listo !