Carga en cadena de syslinux usando grub2

Carga en cadena de syslinux usando grub2

Creé una ISO de CD híbrida syslinux/isolinux para arrancar BIOS heredadas o eufi, según lo que se necesita. La parte de la BIOS heredada funciona bien y ha funcionado durante muchos años. Estoy usando la versión más nueva (6.0.3) de syslinux. Utilicé un rhel7 efiboot.img que obtuve de un CD rhel7 bood para iniciar la parte eufi, solo como prueba. Puedo iniciar este CD iso en una máquina virtual con BIOS UEFI.

Esto me lleva a un shell grub2, que es el comportamiento esperado ya que todavía no creé ningún grub.cfg utilizable (solo el predeterminado que viene con el archivo de imagen). Entonces al menos puedo iniciar este CD en modo uefi.

Estoy intentando cargar en cadena syslinux.efi a través del shell grub2 para saber si puedo cargar syslinux en cadena (y cómo) y luego ver si puede cargar el menú que uso para BIOS heredadas.

He usado varias combinaciones de comandos de grub2, pero siempre termino con este error sin importar lo que intente. La búsqueda de este error no proporciona mucha información útil.

grub> set root='(cd0)'
grub> chainloader /syslinux/efi/syslinux.efi
grub> boot
Failed to locate root device to prep for file operations & ADV initialization
error: unknown error
grub>

Me pregunto si esto es un problema con grub2 o el archivo syslinux.efi, o algo completamente diferente.

No creo que sea un problema con efiboot.img que estoy usando, ya que proviene de un CD que se sabe que funciona con uefi.

Tenga en cuenta que creo que el comando "chainloader" ve el archivo como algo que grub2 podría usar para cargar. Si uso un archivo diferente o un archivo inexistente, aparece los siguientes errores:

grub> chainloader /isolinux/efi/libmenu.c32
error: cannot load image.
grub> chainloader /isolinux/efi/doesnotexist
error: file 'isolinux/efi/doesnotexist' not found.

Editar 9 de agosto de 2019

Creo que esto en realidad no es posible con la versión actual (6.03) de syslinux. Lo que hice como solución alternativa fue usar una imagen de arranque rhel7 y copiar el directorio EFI y usarlo como base para crear un CD híbrido de arranque que arranca en modo uefi y en modo BIOS heredado. Para crear un menú de inicio, el archivo EFI/BOOT/grub.cfg sólo necesita adaptarse a sus necesidades. Creo que esto en realidad usa gummiboot/systemd-boot. Usé lo mismo para configurar el arranque de la red UEFI.

información relacionada