Crear una imagen de arranque UEFI con mkisofs y -eltorito-boot efiboot.img

Crear una imagen de arranque UEFI con mkisofs y -eltorito-boot efiboot.img

Estoy intentando convertir una imagen de instalación ISO USB personalizada existente que actualmente arranca a través de BIOS a una que arranca a través de UEFI. Utilizo mkisofsy isohybridpara crear la ISO y arranca a través de ISOLINUX. Sé que se supone que debo usar las -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.imgopciones para habilitar el arranque UEFI, pero por mi vida no puedo encontrar ninguna página en Google que me diga dónde obtener el escurridizo efiboot.imgarchivo fuente. Todos lo mencionan pero todos asumen que ya lo tienes. ¿Cómo se construye u obtiene esto? La manpágina para mkisofsno sirve de nada. ¿Tengo que usar xorriso?

Para su información, estoy intentando iniciar esto a través de libvirt/kvm/qemu/virt-manager aunque eventualmente tiene que iniciarse en hardware real. El entorno de desarrollo es openSUSE Leap 42.1. No es necesario admitir BIOS ni múltiples plataformas. Preferiría no modificar demasiado el código de compilación existente, pero al menos un comentario (@mikeserv) sugirió que una ISO es completamente el mecanismo incorrecto para esto (lo que significa que es un truco asqueroso y totalmente innecesario). Pero eso implicaría renovar completamente la construcción, lo que llevaría mucho tiempo.

Se agradecerán los enlaces a tutoriales u otras páginas bien escritas sobre este tema. Ya miré el sitio web de Syslinux y la página de Rod Smith y me cansé por completo de mirar todo lo demás.

Respuesta1

¿Tengo que usar xorriso?

No necesariamente. Necesita un productor ISO que pueda marcar la partición del sistema EFI como imagen de arranque de El Torito. mkisofsProbablemente funcionará con las opciones que mencionaste. isohybrid --uefise puede aplicar posteriormente para que sea arrancable desde dispositivos similares a discos duros. (Es posible que también sea necesario tener una imagen de arranque del BIOS ISOLINUX para que isohybrid funcione).

El principal problema es que necesita un archivo de partición del sistema EFI, que tiene que ser una imagen del sistema de archivos FAT con los programas necesarios para abrir los archivos del sistema operativo, que están en la imagen FAT o en el sistema de archivos ISO 9660 adjunto.

El software SYSLINUX EFI no se inicia desde un medio óptico. Entonces, la mayoría de los proyectos usan GRUB 2 (no el legado de GRUB) para ese propósito y lo combinan con el software ISOLINUX BIOS. Debian netinst amd64 ISOpor ejemplo, tiene una pequeña imagen FAT con suficiente cerebro GRUB para saltar a la configuración de GRUB en ISO. El que esta en elopenSUSE NET-x86_64ISOes más grande.

Para inspeccionar el equipo EFI de Debian, móntelo como ISO y luego monte su archivo /boot/grub/efi.imgcomo FAT. En su interior encontrará un archivo /efi/boot/bootx64.efique, al ser inspeccionado por el programa, stringsrevela que contiene una configuración de GRUB integrada.

search --file --set=root /.disk/info
set prefix=($root)/boot/grub
source $prefix/x86_64-efi/grub.cfg
(memdisk)/boot/grub

Entiendo que el archivo de imagen FAT fue creado por el programa GRUB mkimage. Se considera que el archivo /.disk/infoexiste sólo en la ISO de Debian, por lo que searchse puede utilizar para encontrar el sistema de archivos ISO.

En SuSE ISO, la imagen FAT se denomina /boot/x86_64/efi. Contiene más cosas que el de Debian. Además del archivo de arranque EFI, bootx64.efi hay grub.cfgotros archivos que escapan a mi conocimiento de GRUB.

Si comienza el desarrollo de ISO de arranque desde cero, considere producir su ISO mediante el programa GRUB grub-mkrescue. (Ahí es cuando realmente lo necesitas xorriso, del cual soy el desarrollador).

En Debian habría que instalar los paquetes grub-pc, grub-efi-ia32-bin, para BIOS y grub-efi-amd64-binpara x86_64 EFI. Prepare su carga útil en un árbol de directorios y ejecute

grub-mkrescue -o output.iso my_prepared_dir

Supongo que SuSE ofrece paquetes GRUB similares a los de Debian, que se configuran para grub-mkrescueejecutarse para producir equipos BIOS y/o EFI.

información relacionada