¿Todavía es posible instalar Ubuntu en un disco duro externo con UEFI?

Respuestas:

12

De hecho es posible .

Antes de continuar, estas instrucciones están destinadas a particiones de sistema EFI (ESP) en blanco y probablemente sobrescribirán los archivos existentes o no funcionarán como se esperaba. ¡Al menos haga copias de seguridad!

Agregar particiones requeridas para diferentes plataformas

Plataformas: PC heredada, computadora Windows basada en UEFI, computadora Apple

Agregue un ESP a una instalación existente con MBR

Debe seguir estas instrucciones desde otra instalación o medios en vivo.

  1. Instala el grub-efi-amd64-binpaquete. Esto solo instalará los recursos necesarios. No cambiará su instalación de estilo MBR existente a UEFI y cambiará las cosas.

  2. Reduzca su partición de Ubuntu en GParted para hacer espacio para un ESP. Los tamaños recomendados para ESP varían de 100 MB a 500 MB, pero los archivos creados siguiendo estas instrucciones aquí no requerirán más de 2 a 5 megabytes.

    Nota: No debería importar dónde se encuentre su ESP en el disco y reducir su partición de Ubuntu en unos pocos megabytes desde el final debería ser rápido y seguro. Reducirse al principio no es seguro . Sin embargo, una advertencia, su ESP debe ser una partición primaria y no parte de una partición extendida o un volumen lógico, los números de partición del 1 al 4 están bien, los números anteriores indican una partición extendida en las tablas de partición MBR.

    Elija FAT32 como sistema de archivos y establezca el indicador de arranque.

  3. Monte el ESP que acaba de crear y el sistema de archivos raíz que redujo:

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Nota: Reemplace $esp_devicey $root_devicecon los dispositivos apropiados, por ejemplo, /dev/sdb2y /dev/sdb1. Los puntos de montaje /mnt/esp y /mnt/rootfsson solo ejemplos elegidos para trabajar con la parte restante de esta respuesta.

    Instale la imagen EFI de GRUB y un archivo de configuración mínima con:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Tenga en cuenta que $devicees todo el dispositivo /dev/sdb, por ejemplo , no una partición.

  4. Eso es todo, ya hemos terminado, pero déjenme intentar explicar algunas cosas.

    El parámetro --target x86_64-efiasegurará que las imágenes y módulos UEFI se instalen en las rutas dadas. --removableinstalará la imagen UEFI en la ruta codificada \EFI\BOOT\BOOT{arch}.EFIpara medios extraíbles, en lugar de una ruta específica de distribución. Su grub.cfgen /boot/grub/debe trabajar con ambos métodos de arranque y una nueva carpeta llamada x86_64-efiahora debe existir al lado i386-pc.

    Para completar, este es el comando para medios no extraíbles que escribe y se basa en entradas de NVRAM en la plataforma:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    Las instalaciones UEFI adecuadas incluyen una línea similar a la que se muestra a continuación /etc/fstab, pero la configuración es funcional sin ella y la imagen UEFI (similar al gestor de arranque MBR) generalmente solo se escribe / actualiza durante la instalación del sistema operativo.

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

Agregar un ESP o GRUB-BBP a una instalación con GPT

Agregar un ESP a una instalación heredada en una unidad particionada GPT es muy similar a lo anterior:

  1. Instala el grub-efi-amd64-binpaquete.
  2. Cree una partición con un sistema de archivos FAT32 similar a las instrucciones anteriores cambiando el tamaño de la partición raíz y establezca el bootindicador.
  3. Monte las particiones y ejecute el grub-installcomando desde arriba que incluye el --removableparámetro.

Esto también funciona si solo desea iniciar su instalación UEFI existente en otra computadora.

Crear una partición de arranque del BIOS (BBP) para GRUB es un poco diferente:

  1. Instala el grub-pc-binpaquete.

  2. Cree una partición similar a las instrucciones anteriores cambiando el tamaño de la partición raíz y establezca el bios_grubindicador. Elija sin sistema de archivos y déjelo sin formato.

  3. Edite el archivo de configuración /etc/default/grubcon derechos administrativos y agréguelo GRUB_DEVICE=/dev/sdb6al final. Reemplace /dev/sdb6con el nombre real del dispositivo de su BBP. Puede usar el editor de línea de comandos nano para mantener las cosas simples.

    Instale la imagen GRUB MBR en el BBP con:

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    Es posible que desee eliminar o comentar la línea /etc/default/gruby agregarla a la instalación real.

Bonificación: agregue una partición para Mac en una instalación con GPT

Descubrí que la nueva Mac (Mac Mini A1347 EMC 2840) con la que estaba probando podía arrancar desde un ESP FAT32 estándar, ¡incluso desde MBR! De todos modos, aquí vamos:

  1. Instalar los grub-efi-amd64-bin, hfsprogs, mactel-booty mactel-boot-logo(opcional) paquetes. Debe habilitar los repositorios de Universe ( ¿Cómo habilito el repositorio de "Universe" desde la línea de comandos? ) Y agregar el PPA de soporte de Mactel actual (consulte el equipo de la Comunidad de Soporte de Mactel para obtener más detalles) para instalarlos.

  2. Cree una partición con un sistema de archivos HFS + similar a las instrucciones anteriores cambiando el tamaño de la partición raíz. Esta vez necesitamos unos pocos megabytes más de espacio, así que duplica el tamaño del ESP si antes solo tenías 5 megabytes o menos. No se requiere bandera.

  3. Monta las particiones:

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Nota: Elegí $esp-mac_devicey /mnt/esp-macpara evitar conflictos.

    Ejecute el grub-installcomando que incluye el --removableparámetro:

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Finalmente, configure la partición de la forma en que una Mac espera que sea:

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Para iniciar Ubuntu desde un medio externo en una Mac, ahora solo necesitaría presionar la tecla de opción o Alten los teclados de Windows y seleccionar el disco correcto.

    Mac Startup Manager mostrando volúmenes y el logotipo de Ubuntu

Acerca de las banderas de partición, códigos de tipo y GUID

Para ser lo más preciso posible, el indicador de arranque no es importante para GRUB, de forma predeterminada, GRUB busca UUID para encontrar el sistema de archivos adecuado desde el que iniciar. Establecer el indicador de inicio o el indicador bios_grub en GParted generalmente establece un tipo (MBR) o GUID (GPT) para la partición.

El beneficio de establecer el tipo o GUID correcto, además de tener una configuración que funcione correctamente, es que estas particiones estarán ocultas en el administrador de archivos. La forma más fácil de verificar y cambiar tipos y GUID es a través de Disks ( gnome-disks).

captura de pantalla que muestra unidades y particiones en gnome-disks

captura de pantalla que muestra el diálogo de edición de partición en gnome-disks

Alternativamente, puede usar parted o gdisk:

  • 0xef es el código de tipo para ESP en MBR para usar con fdisk
  • ef00 es el código de tipo abreviado para ESP en GPT para usar con gdisk
  • ef02 es el código de tipo abreviado para BBP en GPT para usar con gdisk

Wikipedia tiene una gran lista de GUID para GPT .

Los equivalentes de la línea de comandos partedsegún el manual son parted $device set partition esp ony parted $device set partition bios_grub on.

LiveWireBT
fuente
No documenté detalles. Pero pude particionar mi unidad flash en gpt, crear una partición efi y copiar archivos de arranque efi en la partición efi. El grub-mkimage crea un grubx64.efi que espera ciertas rutas para los archivos, así que simplemente copié la estructura del archivo de mi instalación en / boot / grub y agregué un grub.cfg con una entrada de archivo de configuración a otro grub.cfg en mi / iso carpeta para montar en bucle mis ISOs. Probablemente sea más correcto crear su propio grubx64.efi con la imagen de creación, pero la copia funcionó.
oldfred
Busqué por todos lados tratando de descubrir cómo hacer la parte "Agregar un ESP a una instalación existente con MBR". Estaba nervioso por eso, ¡pero funcionó en el primer intento! ¡Gran respuesta!
Mark E. Haase
Estoy tratando de agregar la capacidad de arranque EFI a una instalación completa de BIOS / MRR de Ubuntu en USB usando Agregar una ESP a una instalación existente con MBR como parte de la respuesta. Aparece un "Error: archivo /boot/no encontrado". La grub.cfgpartición en ESP apunta al UUID derecho. ¿Algunas ideas? Estaré encantado de publicar una nueva pregunta.
user68186
@ user68186 ¿pudiste hacerlo?
BRabbit27
Pude instalar Ubuntu en mi disco externo desde una Mac. Cuando se conecta a la Mac, se inicia correctamente en Ubuntu. Sin embargo, cuando se conecta a una máquina con Windows 10 (xps 15 9560) en los dispositivos de arranque, el disco duro externo no aparece. Mi presentimiento es que se debe a la UEFI. ¿Alguien puede confirmar si mi presentimiento es correcto y también si este hilo es lo que podría necesitar para poder arrancar desde una máquina Windows?
BRabbit27