2 votos

¿Cómo crear una imagen ISO de arranque solo para UEFI?

Quiero crear una imagen ISO que botas SÓLO en UEFI entornos. Me las he arreglado para crear imágenes de arranque en la BIOS de los sistemas, pero no puedo averiguar cómo crear una imagen que sólo funciona en UEFI.

He leído xorriso del manual, y jugueteó un montón con sus opciones, pero no tuvo suerte.

Necesito que cuando la imagen se chapados en una memoria USB, que se inicia en UEFI, y no en el MBR basado en la BIOS.

2voto

Luis Lavaire Puntos 16

Una buena guía es esta página web de Debian.

Una imagen que se inicia en UEFI puede ser creado con xorriso como este:

xorriso -as mkisofs \
    -iso-level 3 \
    -r -V <ISO_LABEL> \
    -J -joliet-long \
    -append_partition 2 0xef <BOOT_IMG> \
    -e --interval:appended_partition_2:all:: \
    -no-emul-boot \
    -partition_cyl_align all \
    -o <OUTPUT_IMAGE> \
    <ISO_DIRECTORY>

El UEFI_BOOT_IMAGE es un ESP ([U]Partición de Sistema EFI) archivo de imagen. Que significa que debe estar formateado como un FAT32 de la partición. Se puede generar con:

BOOT_IMG_DATA=$(mktemp -d)
BOOT_IMG=<ISO_DIRECTORY>/boot/efi.img

mkdir -p $(dirname $BOOT_IMG)

truncate -s 8M $BOOT_IMG
mkfs.vfat $BOOT_IMG
mount $BOOT_IMG $BOOT_IMG_DATA
mkdir -p $BOOT_IMG_DATA/efi/boot

grub-mkimage \
    -C xz \
    -O x86_64-efi \
    -p /boot/grub \
    -o $BOOT_IMG_DATA/efi/boot/bootx64.efi \
    boot linux search normal configfile \
    part_gpt btrfs ext2 fat iso9660 loopback \
    test keystatus gfxmenu regexp probe \
    efi_gop efi_uga all_video gfxterm font \
    echo read ls cat png jpeg halt reboot

umount $BOOT_IMG_DATA
rm -rf $BOOT_IMG_DATA

Que va a crear el ESP imagen en <ISO_DIRECTORY>/boot/efi.img, por lo que debe reemplazar el marcador de posición con el real de la ruta de acceso del archivo.


Esta respuesta se basa en un coment por @ThomasSchmitt.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: