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

108

Tener medios en vivo que pueden arrancar en ambos sentidos puede ser un problema al instalar Ubuntu en las computadoras con Windows 8 actualmente disponibles.

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

Dado que Valve ya ha estado instalando USB de arranque solo UEFI con su sistema operativo Steam basado en Debian y UNetbootin, la alternativa más votada al Creador de discos de inicio de Ubuntu, no es compatible con UEFI y, por lo tanto, es engañoso, creo que deberíamos tener un tema separado para creando medios en vivo USB de arranque solo UEFI.

LiveWireBT
fuente

Respuestas:

133

Visión de conjunto

Crear un arranque UEFI solo para medios en vivo USB es bastante sencillo. Simplemente copie los archivos en su unidad USB con formato FAT32 . ¡Eso es!

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

Tabla de contenido

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

1. Copie archivos del 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 de terminal

Puede hacer algo como lo siguiente si 604A-00EAes su unidad USB y ya ha p7zipinstalado:

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

Ya ha terminado si solo tiene una partición en esta unidad USB; de lo contrario, debe marcar la partición como de arranque, por ejemplo, a través de parted:

# parted /dev/sdX set 1 boot on

¿Dónde /dev/sdXestaría su unidad USB y 1el 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+ Hen Nautilus para mostrar y copiar archivos ocultos también.

    Nautilus muestra Disk Image Mounter en el menú contextual cuando se selecciona .iso-file

  2. Agregue la bandera de arranque a través de GParted .

    GParted que muestra cómo administrar banderas de partición

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, presiona Windows/Super+ Rpara abrir el menú Ejecutar y abrir diskmgmt.msc, eso abriría Administración de discos.

2. El método ISO loopback (avanzado)

En lugar de extraer contenido de una imagen ISO, GRUB y GRUB2 han podido arrancar desde imágenes ISO directamente a través de un dispositivo de bucle invertido. Dado que la imagen ISO es UEFI arrancable, podemos configurar una unidad USB que contenga múltiples ISO con diferentes sistemas operativos sin crear un desastre en la unidad USB.

Si desea iniciar Windows también, es posible que desee ver SARDU . Recuerdo haberlo usado con Windows PE alrededor de 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?

  • Conocimientos muy básicos de los archivos de configuración de GRUB.
  • Conocimientos muy básicos de arranque UEFI y GRUB, ya que vamos a generar nuestra propia imagen de cargador 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 difícil), una máquina virtual Linux tradicional como en VirtualBox está bien.

2.1. Creando el binario

En su máquina Ubuntu o VM, asegúrese de que el paquete grub-efi-amd64-bin esté instalado (grub-efi-ia32-bin también está disponible para 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 todas las computadoras con firmware UEFI deberían 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

Cada firmware UEFI estándar debería buscar \EFI\BOOT\un archivo llamado boot{arch}.efi, así 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 seamos simples con x64 / amd64.

2.2. Crear el archivo de configuración

Un ejemplo muy básico para un grub.cfgarchivo de configuración que debería colocarse en el mismo directorio que bootx64.efise vería así:

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-magentaya que todavía se ve un poco Ubuntu-ish pero es fácilmente distinguible al cargar en cadena otras configuraciones. Puede encontrar más ejemplos para otras distribuciones en Arch Wiki y leer el manual de 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 /efi/boot/ubuntu-14.04.2-desktop-amd64.iso, así que copie su ISO \EFI\BOOT\y reemplácelo ubuntu-14.04.2-desktop-amd64.isoen la configuración con el nombre de archivo real de su ISO.

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

2.3. Agregar persistencia

Puede agregar una partición como se describe en: ¿Cómo consigo un live-USB para usar una partición para persistencia? O puede crear un casper-rwarchivo 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, debería 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 la (raíz) es una modificación del sistema de archivos superpuestos, incluso eliminando archivos.

2.4. Comprobando la integridad

Debe consultar las respuestas a las siguientes preguntas para verificar que el contenido de Live ISO en la unidad USB esté 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 Linux Foundation para agregar la funcionalidad de arranque seguro a esta configuración. Aquí hay algunas ilustraciones ASCII que ilustran los menús de la HashTool adjunta .


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

LiveWireBT
fuente
1
permítanme señalar (a) que todas las PC enviadas en los últimos 5 años tienen esta capacidad; (b) que la raíz del instalador .iso puede usar la memoria USB completa como almacenamiento persistente ordinario. (use las opciones de montaje en ro para protegerse de la eliminación accidental). Para PC modernas y patrones de uso comunes, esta parece ser una mejor solución que la solución predeterminada de live-usb-creator.
user1539216
3
Al usar el método GUI me he encontrado con algunos errores de enlaces simbólicos . ¿Es esto relevante? ¿Puedes por favor elaborar?
VRR
1
Hola LiveWireBT! ¡Gracias por tan interesante respuesta! Seguí 2. El método de bucle de retorno ISO (avanzado) y logré arrancar UEFI desde una unidad flash USB. Pero, al final del arranque, recibí el mensaje de error: No se puede montar / dev / loop2 en / cow y después de presionar enter vi un indicador (initramfs). ¿Me pueden ayudar con eso?
zuba
También quiero agradecerles por una gran guía, fue clara y concisa. Nunca pensé en particionar la memoria USB y tener múltiples sistemas operativos. ¡Gracias de nuevo!
Hatem Jaber
2
Al menos en 16.04, "copiar todos los archivos" no se inicia debido al argumento de la línea del núcleo grub.cfg "file = / cdrom / preseed / ubuntu.seed". No existe tal archivo, probablemente relacionado con el enlace simbólico que falta mencionado anteriormente (ubuntu a.). Edite grub.cfg para eliminar el archivo = ... y reemplácelo con "live-media-path = / casper / ignore_uuid"
ubfan1
3

Extracto del archivo ISO a FAT32

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

Prueba si se ejecuta en modo UEFI o BIOS

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

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

Esto facilita el uso de sistemas en vivo que se pueden 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

sudodus
fuente
2

Usar ddfuncionó para mí, por alguna razón, la versión GUI no funcionó. Entonces, primero, es posible que desee monitorear el progreso de dd , otra opción es usar la opción SIGUSR1 para disparar ddpara informar 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_usenormalmente será /dev/sdb, pero consulte con df!)

cenar
fuente
8
Crear medios de esta manera no da como resultado dispositivos de arranque UEFI solamente . El énfasis está en el último párrafo de la pregunta: "También hay una ventaja de crear medios en vivo USB de arranque solo UEFI: sabes que definitivamente se arrancó a través de UEFI". Tener medios que puedan arrancar en ambos sentidos es un problema al intentar comprender y configurar una instalación de Ubuntu UEFI arrancable.
LiveWireBT
1
Veo. Lo extraño es que de esta manera, pude producir una imagen que arrancó en modo UEFI (lo sé, ya que la computadora portátil estaba configurada para permitir solo el arranque uefi y también debido a la pantalla inicial). La respuesta preferida no funcionó para mí, la computadora simplemente no arranca con una imagen creada simplemente copiando los archivos.
sup
55
@sup este método crea medios que pueden arrancarse con UEFI. El problema es que no solo se puede iniciar UEFI, como se solicitó en la pregunta: también se puede iniciar en modo BIOS.
Darael