UEFI, arranque dual y cosas así

Imagen de nolin
0 puntos

Esto, más que un tutorial, pretende ser una explicación para los que se quieren enterar de qué va eso de la UEFI y cómo funciona.

Un ordenador tiene un sistema operativo (SO) que es el que se encarga de ejecutar las aplicaciones (correo, juegos, etc). En el mismo ordenador pueden convivir varios SO. Por ejemplo, puedes tener Windows 8, Windows XP, Ubuntu 14.04 y Fedora 20. Sólo un SO puede ejecutarse a la vez.

Antes de arrancar un SO el ordenador realiza algunas comprobaciones: ¿Hay un teclado activo? ¿Cúantos discos duros hay? ¿Cómo se maneja cada disco? ¿Cuánta memoria RAM hay? Y otras muchas comprobaciones y configuraciones más. Todo ésto lo realiza un programa que reside en una memoria especial de la placa base (la ROM).
Este programa, durante muchos años se ha llamado la BIOS. Con el objetivo de mejorar la seguridad, se diseñó otro tipo de programa en esa ROM: Ahora se llama UEFI; pero muchos lo siguen llamando BIOS. Para acceder a este programa y realizar ajustes, lo normal es pulsar la tecla "Supr" (o "Esc" o alguna F2, F9, etc, según el fabricante) una o varias veces seguidas justo después de apretar el botón de encendido del ordenador.

¿Cómo sabe el ordenador cómo arrancar el SO?
Lo último que hacía la BIOS es buscar en el disco duro (en el primero en caso de que hubiera varios) un "programa de arranque" que tenía que estar ubicado en un trozo ("sector" en lenguaje apropiado) especial del disco: el MBR. Este programa de arranque a su vez ejecutaba el cargador del SO; y a partir de ahí el SO tomaba las riendas. Con la UEFI ahora se busca un archivo dentro de un subdirectorio dentro de una "partición" especial del disco.

Esta partición especial (llamada partición EFI) no necesita ser grande en absoluto. En teoría, con unos ridículos 150 MB es suficiente. Debe estar formateada con tipo FAT16 o FAT32. Dado que algunos (muy pocos) gestores de FAT no saben funcionar con particiones menores de 250 MB, lo mejor es que sea de unos 300 MB y evitamos problemas.
Con los discos "tipo MBR" sólo se pueden hacer cuatro particiones "primarias". Para tener más particiones hay que hacer partciones "extensibles" dentro de una primaria. Los discos modernos se organizan "tipo GPT" (en vez del antiguo MBR). Entre las ventajas de GPT está que se pueden tener más de 100 particiones primarias.

Además, esta partición EFI tiene que tener la "marca de arranque" (boot). Esto se debe a que puede haber varias particiones FAT en el disco que además contengan la estructura de directorios y archivos requeridos para EFI. Sólo aquella partición marcada como "bootable" es la que la UEFI utilizará para el programa de arranque.

Aquí empiezan las divergencias entre fabricantes. Algunos buscarán todas las EFI, "bootables" o no, y las ofrecerán como opción de arranque dentro de los ajustes de su programa UEFI.

Por ejemplo, el archivo que se busca en la partición EFI para arrancar Windows 8 es EFI/Microsoft/Boot/Bootmgfw.efi
Este archivo está encriptado con una clave que hay que almacenar en la ROM de la placa base. Si la desencriptación que hace la UEFI falla, no se carga el SO. Esta comprobación es lo que se llama "secure boot".

Al instalar Ubuntu en un sistema con UEFI, se copian los archivos necesarios dentro de un subdirectorio nuevo del directorio EFI de la partición EFI (sí, coinciden los nombres de tipo partición y directorio) y se le indica a la UEFI que añada una nueva clave para desencriptar esos archivos.
Aquí siguen las diferentes implementaciones de UEFI para cada fabricante. Algunos se resisten a que un programa añada claves; por eso el consejo de entrar en los ajustes de UEFI y desactivar "secure boot".

El arranque dual.
El Grub es un programa "cargador" de SO. Cuando se instala en discos tipo MBR, pone su cargador en ese sector especial. Cuando es en sistemas UEFI, añade los archivos necesarios en la partición EFI. Hay versiones diferentes de Grub para cada tipo de disco; el instalador de Ubuntu elige el tipo adecuado. Durante la instalación de Grub se buscan los SO existentes en los discos duros y se añaden sus entradas al menú de arranque de Grub.

Y seguimos con las diferencias entre fabricantes. Algunos no dejan que un cargador (que no sea su propia UEFI) ejecute ese archivo especial de la partición EFI; o sea que no dejan que Grub ejecute el Bootmgfw.efi que puse antes de ejemplo. Otros no dejan añadir a las opciones de arranque (en los ajustes de la UEFI, que si el CD, o la red, o el disco tal, etc) la opción de ejecutar el Grub; y si no es la primera opción, nunca se ejecutará Grub. En algunos laptops parece que Microsoft puso dinero y por eso "todo con tal de que Windows arranque como sea" y los demás SO que se busquen la vida.

El programa "boot-repair" intenta saltarse esos obstáculos con una trampa: sustituye el archivo de carga de Windows y en su lugar pone el archivo de Grub, pero con el nombre del archivo de Windows. Esto no está exento de posibles problemas. Por ejemplo, al actualizar o reinstalar Ubuntu, el Grub se puede confundir con ese archivo "falso" de Windows en la EFI. Yo aconsejo tener una copia de seguridad de la EFI en su estado anterior a instalar Ubuntu y restaurarla antes de instalar Ubuntu y el Grub. Aún así, te recuerdo que algunas UEFI no se lo pondrán fácil a otros SO, salvo que desactives "secure boot".

A los que instalen Ubuntu en sistemas UEFI les digo que no desesperen si a la primera no funciona. Desactivar "secure boot" y usar boot-repair pueden ser las ayudas necesarias.

Imagen de jarsoft
+1
0
-1

excelente articulo.

+1
0
-1
Imagen de usuariou
+1
0
-1

Por esa razon que comenta nolin,cuando tube que renovar mi pc,compre uno sin sistema operativo (tenia muy claro que eligiria linux),por lo tanto sin el s.o de la despotica corporacion microsoft,que en confabulacion con algunos fabricantes,dificultan o bloquean (lo digo por experiencia,antes de comprarme este pc sin s.o,devolvi dos pc con windows) la instalacion de otros s.o que no pertenecen a estos despotas...

+1
0
-1
Imagen de .doc
+1
0
-1

interesantísimo.
A mi no me ha tocado (todavía) usar un PC con UEFI (y sigo pensando que, si los argumentos para usar un particionado GPT es que 'pueden admitir hasta 100 particiones primarias', como no uso Windows trataría de convertir su tabla de particiones al tipo clásico MsDOS (MBR), si es que se puede... que me es más que suficiente), pero con este artículo se me han aclarado muchas cosas.

(me quedaría por saber cómo hacer esto sin el paquete boot-repair... que posiblemente solo exista en Ubuntu, no en otras distros).

+1
0
-1
Imagen de navagalicia
+1
0
-1

buenas, me parecio muy informativo el articulo, realmente me sacaste de muchas dudas, ya que desde hace 1 semana eh intentado instalar distribuciones de linux en mi laptop acer con windows 10 de fabrica y todas las veces en que las que lo eh intentado nunca se llega a instalar bien :s siempre habia problemas, y el problema con el que mas me encontre era que una vez instalado linux ... windows no me dejaba instalar el arranque dual con grub2 (siempre me aparecia su manager boot windows) , eh intentado de todo, dehabilite el secure boot, desactive el fastboot, booteaba la usb en formato FAT32, NTFS,exFAt (entre otros), hacia particiones GPT o MBR , incluso con el programa rufus intente bootearla en ISO y DD , y nada nada de nada siempre fallaba , ahora con la informacion de este articulo llego a entender los multiples fallos que me daba al tratar de instalar linux , ahora dicho que ya tengo el secure boot deshabilitado mi pregunta es la siguiente: el boot repair va antes o despues de instalar linux? (puede parecer estupida ya que apenas voy iniciando en el mundo linux, de hecho es la primera vez que trato de instalar linux en una pc)

+1
0
-1

keden