¿Cómo crear medios USB de arranque de UEFI solo?

89

Tener un medio en vivo que se inicie en ambos sentidos puede ser un problema al instalar Ubuntu en computadoras con Windows 8 actualmente disponibles.

En otras palabras, la ventaja clave para crear medios USB de arranque solo UEFI es: Usted sabe que definitivamente se inició y se instaló a través de UEFI.

Dado que Valve ya ha estado utilizando los instaladores USB de arranque UEFI con su SO Steam Debian y UNetbootin - la mejor alternativa elegida para el Startup Disk Creator de Ubuntu - no es compatible con UEFI y, por lo tanto, engañoso, creo que deberíamos tener un tema aparte para crear medios USB de arranque UEFI-only.

    
pregunta LiveWireBT 26.12.2013 - 11:03

3 respuestas

110

Descripción general

Crear un medio de arranque UEFI USB live media es bastante sencillo. Simplemente copie los archivos en su unidad USB con formato FAT32 . ¡Eso es todo!

Recuerde que para una instalación o arranque de medios:

Tabla de contenido

  • Copia archivos desde el método ISO
    1. Ejemplo a través de terminal
    2. Ejemplo a través de GUI
    3. Ejemplo en Windows
  • El método de loopback ISO (avanzado)
    1. Creando el binario
    2. Creando el archivo de configuración
    3. Añadiendo persistencia
    4. Comprobando la integridad
    5. Arranque seguro de UEFI

1. Copie archivos desde el método ISO

Este método también funciona para otros medios de instalación que contienen cargadores EFI, como Windows, por ejemplo.

1.1. Ejemplo a través del terminal

Puedes hacer algo como lo siguiente si 604A-00EA es tu unidad USB y ya tienes p7zip instalado:

$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/

Ha terminado si solo tiene una partición en esta unidad USB; de lo contrario, deberá marcar la partición como de arranque, p. ej. a través de parted :

# parted /dev/sdX set 1 boot on

Donde /dev/sdX sería su unidad USB y 1 el número de partición que debería usarse para arrancar.

1.2. Ejemplo a través de GUI

  1. Monte el archivo .iso y copie el contenido en su unidad USB. Presione Ctrl + H en Nautilus para visualizar y copiar también los archivos ocultos.

  2. Agregue el indicador de inicio a través de GParted .

1.3. Ejemplo en Windows

  1. Igual que el anterior, solo copie los archivos.
  2. Presione Windows / Super + X , vaya a Administración de discos y verifique si la partición está marcada como activa. En las versiones de Windows anteriores a Windows 8, presione Windows / Super + R para abrir el menú de ejecución y abra diskmgmt.msc , que abriría la Administración de discos.

2. El método de loopback ISO (avanzado)

En lugar de extraer contenidos de una imagen ISO, GRUB y GRUB2 han podido arrancar desde imágenes ISO directamente a través de un dispositivo de retroalimentación. Dado que la imagen ISO es de arranque UEFI, podemos configurar una unidad USB que contiene múltiples ISO con diferentes sistemas operativos sin crear un lío en la unidad USB.

Si también desea iniciar Windows, puede consultar SARDU . Recuerdo haberlo usado con Windows PE en 2005 y parece que se actualizó para admitir unidades USB y UEFI, pero recuerde que esta herramienta también admite el arranque heredado.

¿Qué necesitamos?

  • Conocimiento muy básico de los archivos de configuración de GRUB.
  • Conocimiento muy básico del arranque de UEFI y GRUB, ya que vamos a generar nuestra propia imagen de gestor de arranque GRUB con muchos módulos incluidos.
  • Una imagen ISO de arranque UEFI, una unidad USB con formato FAT y una máquina que ejecuta Linux.
    • No, no necesitamos una instalación UEFI de Linux (que puede ser una situación de gallina y huevo), una VM Linux tradicional como en VirtualBox está bien.

2.1. Creando el binario

En su máquina Ubuntu o máquina virtual, asegúrese de que el paquete grub-efi-amd64-bin está instalado (grub-efi-ia32-bin también está disponible para las arquitecturas Intel de 32 bits en versiones más recientes). El paquete puede tener un nombre diferente en otra distribución, puede comparar la lista de archivos del paquete para encontrar el paquete correcto en su distribución.

El siguiente comando generará la imagen GRUB, en este caso un binario EFI que cada computadora con un firmware UEFI debería poder ejecutar:

grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
 fat iso9660 part_gpt part_msdos \
 normal boot linux configfile loopback chain \
 efifwsetup efi_gop efi_uga \
 ls search search_label search_fs_uuid search_fs_file \
 gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
 exfat ext2 ntfs btrfs hfsplus udf

Todos los firmware UEFI estándar deberían buscar \EFI\BOOT\ para un archivo llamado boot{arch}.efi , de modo que cree las carpetas en la unidad USB y copie la imagen que acabamos de crear en esta ubicación. Son posibles otras arquitecturas en lugar de x64, pero vamos a simplificar con x64 / amd64.

2.2. Creando el archivo de configuración

Un ejemplo muy básico para un archivo de configuración grub.cfg que debería colocarse en el mismo directorio que bootx64.efi sería este:

set timeout=3
set color_highlight=black/light-magenta

menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
        set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
        initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
    menuentry 'Ubuntu' {
            chainloader /efi/ubuntu/grubx64.efi
    }
    menuentry 'Windows' {
            chainloader /efi/Microsoft/Boot/bootmgfw.efi
    }
    menuentry 'Firmware Setup' {
            fwsetup
    }
}

Lo importante es el bloque de configuración con el título Boot Ubuntu 14.04.2 LTS from ISO .Puede cambiar el color y el tiempo de espera según sus preferencias. Elegí black/light-magenta ya que todavía se ve un poco Ubuntu-ish, pero se distingue fácilmente cuando se cargan otras configuraciones. Puede encontrar más ejemplos para otras distribuciones en Arch Wiki y leyendo Manual GRUB realmente vale la pena si quiere ir más allá.

Volviendo al bloque de configuración, debería ser obvio que se hace referencia al ISO como /efi/boot/ubuntu-14.04.2-desktop-amd64.iso , así que copie su ISO a \EFI\BOOT\ y reemplace ubuntu-14.04.2-desktop-amd64.iso en la configuración con el nombre real de su ISO.

loopback loop $isofile es la línea que cargará nuestro archivo ISO en un dispositivo de bucle desde el cual podemos arrancar el kernel de Linux directamente. Esto es posible porque nuestra imagen de EFI GRUB incluye el módulo de bucle invertido. (Un poco de prueba y error estuvo involucrado en averiguar qué módulos son razonables incluir. No debería ver ningún mensaje de error, aunque todavía no es perfecto.) Hablando del núcleo, puede agregar parámetros kernel como toram , parámetros para diferentes idiomas (ejemplo locale=de_DE bootkbd=de ) y como en el ejemplo: persistent

2.3. Añadiendo persistencia

Puede agregar una partición como se describe en: ¿Cómo obtengo un USB en vivo para usar una partición para persistencia? O puede crear un archivo casper-rw y colocarlo en la raíz de su unidad USB.

dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw

No he probado cuál es el máximo absoluto, debe estar entre 4094 y 4096 MB. Use una partición si tiene la intención de usar más espacio. Tenga en cuenta que cada cambio en (raíz) es una modificación del sistema de archivos de superposición, incluso eliminando archivos.

2.4. Comprobando la integridad

Debería ver las respuestas a las siguientes preguntas para verificar que el contenido de Live ISO en la unidad USB se encuentre en perfectas condiciones:

2.5. Arranque seguro UEFI

El arranque seguro será obligatorio con las máquinas con Windows 10, le sugiero que eche un vistazo al precargador de la Fundación Linux para agregar la funcionalidad de arranque seguro a esta configuración. Aquí hay algunos arte ASCII que ilustran los menús de la HashTool que los acompaña .

Felicidades, diría que ahora dominaste el arranque de UEFI y ya no deberías tener miedo.

    
respondido por el LiveWireBT 26.12.2013 - 11:03
1

Usar dd me funcionó, por alguna razón, la versión de la GUI no funcionó. Entonces, primero, es posible que desee monitorear el progreso de dd , otras opciones están usando la opción SIGUSR1 para activar dd para reportar su progreso periódicamente, pero esto es más complicado que pv .

Entonces:

sudo dd if=path/to/image/file | pv | sudo dd of=/dev/device_you_want_to_use

( /dev/device_you_want_to_use será típicamente /dev/sdb , pero consulte con df !)

    
respondido por el sup 27.07.2014 - 14:43
1

Extracto del archivo ISO a FAT32

Extraer el contenido de un archivo ISO de escritorio Ubuntu 64 bits en una partición con un sistema de archivos FAT32 y un indicador de arranque hará el trabajo: crear una unidad en vivo, que se inicie solo en modo UEFI. Se llama 'Copiar archivos desde el método ISO' aquí (en la respuesta aceptada).

Prueba si se ejecuta en modo UEFI o BIOS

Pero es fácil de probar en un sistema Ubuntu en ejecución (tanto vivo como instalado), si se inició en el modo UEFI o BIOS. Ejecuta esta línea de comando,

test -d /sys/firmware/efi && echo efi || echo bios

Esto hace que sea sencillo usar sistemas en vivo que se puedan usar en ambos modos de arranque, lo que también puede ser una ventaja.

Consulte también los siguientes enlaces para obtener una explicación más detallada y una descripción del método,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy

    
respondido por el sudodus 19.09.2017 - 22:21

Lea otras preguntas en las etiquetas