Surface Pro 3: Instalación de Ubuntu en un USB con arranque EFI y secure boot habilitado

Objetivo

En dos post anteriores he tratado el tema de arrancar en modo Live dsde un Pendrive en la tablet Microsoft SUrface Pro 3.

Ahora se trata de hacer lo mismo con Ubuntu (GNOME 17.04) pero instalado en el pendrive (es decir, no en modo live) y con el secure boot del UEFI habilitado.

Existen muchos tutoriales en internet de cómo hacerlo, pero siempre hay algo que uno no comprende del todo bien…

Los pasos serán:

  1. Instalar Ubuntu en un Pendrive USB desde una máquina Virtual (o bien otro equipo) con arranque UEFI
  2. Arreglar la partición de arranque UEFI para que pueda arrancar desde la Surface Pro 3 (son secure boot habilitado o no)
  3. Arrancar el USB y actualizar Ubuntu

1. Instalación Ubuntu en USB con UEFI secure boot

Para ello usaré VMWare creando una máquina virtual de WIndows 10, 64 bits con la iso de ubuntu como unidad CD, y con el disco duro mapeado al USB, esto es muy sencillo con las opciones de configuración de VMWare (en Virtual box puede hacerse de manera similar, aunque mapear el disco duro al pendrive no es tan simple). El hecho de mapera el disco duro virtual  al USB facilita el arranque del pendrive. Si se hace de otra manera (se instala como USB, habrá que hacer unos cambios en los archivos de configuración del GRUB, que indicaré en el punto 2)

Máquina Virtual en VMWARE

Capturas con los ajustes

Windows 10 arranque EFI

Disco Duro (el disco físico ‘0’ es el disco duro del PC que estamos usando, y evidentemente NO hay que seleccionarlo):

Nos cercioramos que lo estamos haciendo bien (mi pendrive es de 16Gb)

Arrancamos la máquina virtual y seguimos el proceso de instalación

Aceptamos el arranque UEFI

Instalamos en todo el USB

Confirmamos, vemos que se van a crear dos particiones, la primera ESP (EFI System Partition) en FAT32 y la segunda en EXT4 con la instalación de Ubuntu

Ya sólo queda esperar a que finalice la instalación y ya tenemos nuestro pendrive con Linux instalado y casi preparado para arrancar en la Surface Pro 3 (y cualquier otro ordenador) con UEFI.

El resultado final de particiones del USB :

2. Partición de Arranque EFI

El USB se ha creado con dos particiones, nos interesa modificar la partición EFI. En un PC con windows la montará directamente (es FAT32 y advertirá de la segunda partición errónea diciendo que formateemos, por supuesto cancelar esta opción). En un PC con linux nos montará la partición EXT4 con la instalación de Ubuntu, por lo que tendremos que montar manualmente la partición EFI.

En la partición EFI aparece una carpeta EFI, dentro de ella una carpeta ubuntu con los archivos:

Antes de seguir, conviene aclarar un poco el modo de arranque EFI, para ello, buscando en internet, un par de enlaces aclaratorios:

https://askubuntu.com/questions/546582/surface-pro-3-no-grub-menu

https://askubuntu.com/questions/925531/ubuntu-16-04-does-not-install-working-uefi-when-installing-on-external-drive-no

De donde se obtienen las siguientes conclusiones:

  1. UEFI arranca desde unidades externas desde la carpeta y archivo /EFI/BOOT/bootx64.efi
  2. Ubuntu proporciona un archivo efi firmado por Microsoft para poder  arrancar con secure boot habilitado: shimx64.efi
  3. El archivo de arranque efi de Ubuntu  es grubx64.efi
  4. La carpeta ubuntu creada por la instalación en la partición EFI, debe permanecer, pues se usa

Captura de las firmas:

Por tanto, para poder arrancar nuestro Pendrive necesitamos:

  1. Crear una carpeta BOOT bajo la carpeta EFI
  2. Copiar en esa carpeta BOOT los dos archivos shimx64.efi y grub64.efi
  3. Tipo de arranque
    • Si queremos arrancar con secure boot habilitado renombrar shimx64.efi a bootx64.efi
    • Si queremos arrancar con secure boot deshabilitado renombrar grubx64.efi a bootx64.efi

Capturas para arranque con modo seguro:

    

2.1 Archivos grub.cfg (modificar si se ha instalado Ubuntu en el pendrive sin mapearlo como disco físico)

La ventaja de instalar Ubuntu en el pendrive mapeado como disco físico es que el programa de instalación lo toma como disco duro principal (sda/hd0) y el arranque EFI funcionará:

El archivo grub.cfg de la carpeta Ubuntu en la partición EFI del USB es el siguiente, donde vemos que la partición raíz está en hd0,gpt2 (correcta al arrancar desde el USB en la Surface Pro 3), si lo hubiésemos instalado en el USB directamente (sin maperalo) el grub.cfg indicaría hd1,gpt2 (u otro si hay más de un USB).

 

Adicionalmente habría que modificar el grub.cfg de la partición EXT4 con la instalación de linux (que es el que se llama en la línea 2 del anterior grub.cfg ). Para ello no queda más remedio que montar esa partición en una distribución linux (en una máquina virtual por ejemplo) y editarlo, cambiando hd1 por hd0:

3. Arrancar Ubuntu en la Surface Pro 3

Usando la secuencia para arrancar desde el USB (pulsar botón de bajar volumen y mantener pulsado, pulsar y soltar botón de encendido, cuando salga Surface en la pantalla soltar botón de bajar volumen), arranca Ubuntu. Tras actualizarlo (apt-get update / apt-get upgrade, en el siguiente inicio ya sale la pantalla del grub correcta, en el primer arranque no salió). El sistema funciona perfectamente, y ya por internet podemos buscar cualquier tipo de información , una buena fuente es: https://www.reddit.com/r/SurfaceLinux/

 

 

—–

Leave a Reply

Tu dirección de correo electrónico no será publicada.