# Cargar variables efi

## Luciernaga

Bueno, les pongo en antecedentes ...

Intento arrancar Gentoo que tengo instalado en una placa GA-990XA-UD3 con BIOS UEFI ...

He leído bastante sobre el tema, aquí en el foro y fuera por libre ...

Me encuentro en un punto que no puedo resolver y espero que me puedan dar algo de luz.

La instalación es correcta con el kernel 3.10.25, la compilación también salvo que no encuentro la forma de que las variables EFI se carguen ...

Me explico:

La máquina es virgen y el disco duro también. la BIOS UEFI está configurada por defecto, es decir, admite arranques con UEFI y Win8 o con Legacy only, he hecho las dos pruebas, y arranca con Win correctamente y con otras distros también, asimismo Gentoo con el GRUB2 de otras distribuciones.

He hecho cuatro particiones, una fat32 para que arranque la máquina, una /boot para ubicar el inicio de Gentoo, una swap y una raíz para el sistema de ficheros, entonces me preguntarán ¿cuál es el problema? ..

Bien, a eso vamos, si instalo GRUB2 en el entorno chroot no me crea el directorio /boot/grub y se va a /usr/lib/grub/i386-pc, con lo cual si pretendo instalar GRUB2 para arrancar la máquina falla y no se instala.

Si pretendo instalar un inicio sin GRUB2 me pide que cargue las variables efi (modprobe efivars), en la compilación del núcleo creo que las tengo correctamente compiladas, en cambio no se crea el directorio /sys/firmware/efi para ubicar dichas variables, tampoco me permite crearlo a mano ...

Finalmente al emitir el comando efibootmgr para instalar el arranque falla por la carencia de las variables efi y me pide que emita el consabido modprobe efivars, o sea, que entro en un bucle del cual no hay salida.

Todo ello me lleva a una conclusión o el CD minimal del cual intento instalar Gentoo (que me ha funcionado correctamente hasta la fecha con discos MBR en otras máquinas) no es apto, o bien la BIOS UEFI de mi máquina no es compatible con Gentoo; me extraña muchísimo porque en esta máquina he instalado Windows 7, Debian 7.3, Sabayon 14.1, openSuSE 13.1, y todas sin problemas excepto Gentoo ...

¿Cual es su veredicto? gracias por las respuestas ... Luci

----------

## quilosaq

 *Luciernaga wrote:*   

> ...
> 
> si instalo GRUB2 en el entorno chroot no me crea el directorio /boot/grub y se va a /usr/lib/grub/i386-pc
> 
> ...

 ¿Tienes montada la partición correspondiente en /boot (del chroot, claro)?

----------

## Luciernaga

Poooos si, elemental querido Watson, elemental ...

El problema está en que se carguen las variables efi, que no encuentro la forma y manera, en estos momentos estoy probando con la "hardened" en la misma máquina ...

Al parecer, en el momento de cargarse las variables ya se crea el directorio (o ruta) /sys/firmware/efi/ que, en mi caso, no existe, como tampoco grub2 se instala correctamente, son los dos supuestos para arrancar Gentoo, bien con GRUB2 o sin él pero con el bootloader manejado por efibootmgr ...

Ese es el kit de la cuestión ...

No estoy seguro pero creo que hay alguna clase de incompatibilidad entre la BIOS UEFI de mi máquina con los CDs de instalación de Gentoo, y mucho suponer sería que éstos no estuvieran preparados para las BIOS UEFI ...

Lo que más me sorprende es que he instalado la Sabayon 14.1 y funciona de perlas ... manda webs ...

Saludetes  :Smile: 

----------

## quilosaq

Para instalar GRUB2, normalmente, necesitarás crear una partición de arranque BIOS y marcarla como tal.

http://www.gentoo.org/doc/es/handbook/handbook-amd64.xml?part=1&chap=4#doc_chap3

----------

## quilosaq

 *Luciernaga wrote:*   

> ...
> 
> Si pretendo instalar un inicio sin GRUB2 me pide que cargue las variables efi (modprobe efivars), en la compilación del núcleo creo que las tengo correctamente compiladas, en cambio no se crea el directorio /sys/firmware/efi para ubicar dichas variables, tampoco me permite crearlo a mano ...
> 
> Finalmente al emitir el comando efibootmgr para instalar el arranque falla por la carencia de las variables efi y me pide que emita el consabido modprobe efivars, o sea, que entro en un bucle del cual no hay salida.
> ...

 La respuesta a esto creo que está documentada en (inglés):

https://wiki.gentoo.org/wiki/UEFI_Gentoo_Quick_Install_Guide

Por lo que entiendo necesitas ayudarte de una memoria usb, prepararla y arrancar una vez desde ella.

----------

## Luciernaga

Gracias por responder tan rápido amigo quilosaq ... estos enlaces los tengo más que leídos e impresos en papel como si fueran un manual ...

Para que tengan una visión más general del problema les pongo este enlace ... http://www.dvdadvdr.com/forums/showthread.php?t=69913

La configuración del BIOS UEFI la tengo cambiada (activando UEFI con Win8) ahora para probar resultados con la iso de hardened ...

Saludetes  :Smile: 

----------

## quilosaq

Creo que estas confundiendo la partición de arranque bios (2 MB al comienzo del dico físico y necesaria para grub2) con la  "EFI System partition" (200 MB, necesaria para UEFI).

¿Que USES tienes para GRUB2?

----------

## Luciernaga

 *quilosaq wrote:*   

> Creo que estas confundiendo la partición de arranque bios (2 MB al comienzo del dico físico y necesaria para grub2) con la  "EFI System partition" (200 MB, necesaria para UEFI).
> 
> ¿Que USES tienes para GRUB2?

 

Es posible que estuviera confundido pero ahora con tu respuesta lo que estoy es perplejo ....

Supongo que habrás visto lo que tengo escrito en el enlace que te puse antes ...

Bien, tengo entendido que para arrancar Linux en esa máquina necesita una partición FAT32 para ubicar el núcleo (especialmente compilado para UEFI) además de tener un sello o tag EF00 que la distingue para ese fin; el volumen de esta partición puede ser bastante controvertido mientras que en algún sitio se dice que debe ser de 2MB en otros se dice que debe ser más grande (100MB, 200MB, incluso hasta 512MB); lo que no veo explicación es que tiene que ver GRUB con ella y porqué no se me instala como debe, es más, he leído en algún sitio que no hace falta GRUB para iniciar Linux http://quepagina.es/linux/cargamos-linux-sin-grub-uefi-en-calidad-del-gestor-del-arranque.html , o sea, que se puede arrancar Linux sin GRUB, pero necesita una compilación especial para ello incluyendo las referencias apropiadas en "()Built-in kernel command line" y en "()Initramfs source file(s)", ver http://blog.realcomputerguy.com/2012/05/efi-stub-booting-without-bootloader.html y https://wiki.gentoo.org/wiki/EFI_stub_kernel respectivamente.

En cuanto a las USEs que tengo en el make.conf son las siguientes:

bindist mmx sse sse2 sse2check -gtk -gnome qt4 kde dvd cdr alsa nls svg X dbus consolekit cups ffmpeg png jpeg tiff pam php ppds ldap readline python winbind sqlite policykit ssl unicode icu java slp samba 64bit (multilib) nvidia udev

La primera partición ESP (EFI System Partition) he intentado crearla en diversos volúmenes y formateada como FAT32 y no veo qué relación tiene o debe tener con que no se carguen las variables EFI en el núcleo, tanto en cuanto no será montada en tiempo de instalación del sistema ni en tiempo de compilación del núcleo.

El resto de particiones son una /boot de 200MB, una SWAP de 8GB y una raíz de 128GB, en total cuatro particiones. Todavía no he terminado la instalación de Gentoo en un disco nuevo y solitario con la "hardened" ...

Saludets  :Smile: 

PostData: Rectifico la referencia a las USEs. Las anteriores son al completo cuando las Xs están para instalar y/o instaladas.

En la primera fase de instalación y antes de instalar Xorg solo tengo estas: bindist mmx sse sse2 -gtk -gnome qt4 kde dvd cdr alsa nls

----------

## quilosaq

 *Luciernaga wrote:*   

> ...
> 
> Finalmente al emitir el comando efibootmgr para instalar el arranque falla por la carencia de las variables efi y me pide que emita el consabido modprobe efivars
> 
> ...

 ¿Y si haces 

```
# modprobe efivars
```

 antes de entrar (o desde fuera) del chroot?

----------

## Luciernaga

Ciertamente, necesito muchísima más información de la que tengo y por eso van mis preguntas ... digo.

Pues acabo de enterarme por una lectura (hoy mismo) que NO SE PUEDEN cargar las variables efi desde dentro del entorno chroot y hay que hacerlo desde fuera en otra Termina l...

En ello estoy, pero no es menos cierto que se necesitan muchos más HOW-TOs y más específicos (y detallados) para tratar el tema de las BIOS UEFI y el cómo instalar los productos Linux en esa nueva hornada de motherboards que se avecina, eso lo digo para quien corresponda de estar al loro de la economía, lo digo porque el consumismo informático se puede resentir muy seriamente ...

Estoy en ello de hacer una prueba con un pendrive y a ver si lo termino hoy mismo ...

Muchas gracias por la ayuda prestada, saludetes  :Smile: 

----------

## Luciernaga

 *quilosaq wrote:*   

>  *Luciernaga wrote:*   ...
> 
> Finalmente al emitir el comando efibootmgr para instalar el arranque falla por la carencia de las variables efi y me pide que emita el consabido modprobe efivars
> 
> ... ¿Y si haces 
> ...

 

Nada todo me falla ... veamos ...

El LiveCD utilizado es el último, fechado el 16 de enero de 2014 y el fichero stage3-amd64-20140116.tar.bz2 también.

Ahora tengo en la máquina dos discos, un SSD con win 7 Pro x64 y otro SATA WD de 500GB en el cual he instalado Gentoo ...

He creado cuatro particiones a saber:

/dev/sdb1 con 512MB FAT32 y etiquetada con EFI System

/dev/sdb2 con 200MB ext4 /boot para el inicio de Gentoo

/dev/sdb3 con 8GB SWAP para intercambio de ficheros

/dev/sdb5 con 128GB para la raíz del sistema de ficheros.

Si intento cargar modprobe efivars desde el LiveCD me dice que no puede porque no las encuentra ...

Si lo hago dentro del chroot no me responde nada, pero al cargar GRUB2 falla porque me dice que no se han cargado las efivars, igualmente me sucede si lo hago con elilo ...

Las pruebas las he hecho con disco convencional, con pendrive y con disco sólido, en todas me topo con que las efivars no se han cargado.

Estoy llegando a la conclusión de que existe alguna incompatibilidad entre Gentoo y la placa GA-990XA-UD3 ... ¡ah! se me olvidaba la BIOS UEFI está configurada para que arranque en modo EFI ...

y la pregunta del millón es ¿cómo se cargan las efivars?

Toda la info encontrada y leído es bastante antigua (NO ES ACTUAL) de modo que me hace pensar con incompatibilidades, por ejemplo, he leído que existen inconsistencias entre la interfaz sysfs-efivars ANTIGUA (CONFIG_EFI_VARS) y la interfaz efivarfs NUEVA (EFI VARiable FileSystems) y, así a groso modo, en la configuración del núcleo me encuentro con las dos ... entonces ¿cómo resolverlo?

En fin, tengo muchas otras preguntas que me llevan al dilema, porque Debian, Ubuntu, OpenSuSE, Fedora que las tengo instaladas en esta máquina sin problemas y Gentoo causa tanto problema y cada una de ellas me reconoce Gentoo y la inician ...

Seguiré leyendo y probando ... saludetes  :Smile: 

----------

## Luciernaga

Estoy llegando a las conclusiones siguientes:

El LiveCD minimal de Gentoo amd64 citado anteriormente y el último liberado (en mi opinión) no es apto para instalarse en una máquina con BIOS UEFI y me baso en lo siguiente:

Emitiendo este comando: zgrep CONFIG_EFI /proc/config.gz me devuelve esto ...

livecd ~#_  zgrep CONFIG_EFI /proc/config.gz

CONFIG_EFI_PARTITION=y

CONFIG_EFI=y

# CONFIG_EFI_STUB is not set

CONFIG_EFI_VARS=m

# CONFIG_EFIVAR_FS is not set

livecd ~#_

Por consiguiente me lleva a otra pregunta ¿cómo puedo instalar Gentoo en mi máquina sin utilizar el LiveCD? acaso desde otro sistema operativo ... ?????

Saludetes  :Smile: 

----------

## quilosaq

Yo no veo que esta configuración impida la instalación. Supongo que lo dices porque CONFIG_EFI_STUB is not set. Esa variable sirve para preparar el kernel para ser cargado y ejecutado directamente por la EFI pero no impide que se pueda utilizar un gestor/cargador de arranque como GRUB para lanzar el kernel compilado con gentoo.

El problema que persiste hasta ahora es que efibootmgr da error al intentar registrar una nueva opción de arranque efi. Creo puede ser porque el arranqe desde el cd de gentoo se produce en modo legacy en vez de efi, posiblemente porque tengas configurado el arranque del equipo en modo auto. Prueba a forzarlo a modo efi.

Creo que la instalación de grub es necesaria para tener el mayor control posible del arranque. Te dejo un enlace que quizá ya hayas leido:

https://wiki.gentoo.org/wiki/GRUB2#UEFI.2FGPT

Saludos

----------

## Luciernaga

Efectivamente, no solo lo he leído por enésima vez sino que también lo tengo impreso en papel ...

El problema en términos coloquiales es como la pescadilla que se come la cola ... efibootmgr que es el encargado de instalar el Gestor de Arranque GRUB2 en la ESP (Efi System Partition) no lo puede hacer porque las variables EFI no están cargadas y éstas no se cargan (modprobe efivars) porque existen inconsistencias en el firmware BIOS UEFI ... esto me lleva a otra pregunta:

En el entorno chroot cuál es el núcleo activo, el kernel del LiveCD o el de las fuentes 3.10.25 recientemente descargado, configurado y compilado ...

En mi opinión es el del LiveCD y hasta que no se reinicie el sistema recién instalado no se activaría el kernel 3.10.25 compilado.

Es un tema candente y estoy leyendo con cierto interés las inconsistencias de las variables efivars (CONFIG_EFI_VARS) y efivarfs (CONFIG_EFIVAR_FS), al parecer, siendo la primera declarada obsoleta, la segunda es la que rige activa en la actualidad, esto me lleva a otra pregunta ... si al activarlas las dos en la configuración del núcleo no será éste el origen del problema.

Tengo que decir que conociendo, por lectura, el dilema he hecho pruebas en ambos sentidos y todo me ha fallado, en cuanto a la configuración de la UEFI de la máquina GA-990XA-UD3 está configurada en modo dual, es decir, UEFI y Legacy a la vez que es su origen, determinando ella misma el cómo debe actuar según el dispositivo hardware detectado.

Sorprendido estoy como otras distros se instalan sin problemas en esta máquina y Gentoo, si bien se instala correctamente, no puede iniciarse por si misma, también digo que la Sabayon 14.1 instalada incorpora el kernel 3.12.0 ...

Saludetes  :Smile: 

----------

## quilosaq

 *Luciernaga wrote:*   

> ...
> 
> En el entorno chroot cuál es el núcleo activo, el kernel del LiveCD o el de las fuentes 3.10.25 recientemente descargado, configurado y compilado ...

 Sin duda el nucleo en ejecución sigue siendo el mismo antes y después de entrar en el entorno chroot asi que es el del LiveCD. Lo que si que cambia son los módulos que ese nucleo podrá cargar. Fuera del chroot todo estárá en su sitio pero dentro no encontrará ningún módulo para cargar.

 *Luciernaga wrote:*   

> ...
> 
> Es un tema candente y estoy leyendo con cierto interés las inconsistencias de las variables efivars (CONFIG_EFI_VARS) y efivarfs (CONFIG_EFIVAR_FS), al parecer, siendo la primera declarada obsoleta, la segunda es la que rige activa en la actualidad, esto me lleva a otra pregunta ... si al activarlas las dos en la configuración del núcleo no será éste el origen del problema.
> 
> ...

 No lo se con seguridad pero no creo que esto sea un problema. Son dos mecanismos (programas) para acceder a las variables efi, sólo que uno tiene una limitación de tamaño de las variables que puede manejar y el otro no.

 *Luciernaga wrote:*   

> ...
> 
> en cuanto a la configuración de la UEFI de la máquina GA-990XA-UD3 está configurada en modo dual, es decir, UEFI y Legacy a la vez que es su origen, determinando ella misma el cómo debe actuar según el dispositivo hardware detectado.
> 
> ...

 Esto es lo que de verdad puede cambiar algo. La prueba sería no dejar que la maquina decida sino forzar el arranque en efi aunque éste se produzca desde un cd.

----------

## Luciernaga

Vamos a ver ... en estos momentos estoy terminando de instalar Arch Linux x86_64 en esta máquina sin problemas igual como se instaló OpenSuSE 13.1, Fedora 20, Debian 7.3, y Sabayon 13.1 y me a hecho ver algo que, a expensas de una futura prueba de configuración de la UEFI, resulta que la máquina no arranca con la EFI System activada.

Esta negativa me la ha proporcionado el comando mount -t efivarfs efivarfs /sys/firmware/efi/efivars seguido de este otro efivar -l

El resultado es que la máquina arranca en modo Legacy a pesar de tenerle activado UEFI, esto me llevará a establecer en BIOS UEFI el modo Windows 8 para comprobar si luego arranca correctamente para poder ejecutar las variables EFI ...

Veremos luego qué pasa ...  :Smile: 

PostData: ArchLinux rula como nunca ... OK

Cambiada la configuración de la BIOS UEFI como sigue:

Las características de la BIOS UEFI (UEFI Features) son:

OS Type = Windows 8

CSM Support = Always

Boot Mode Selection = UEFI and Legacy

LAN PXE Boot Option ROM = Disabled

Storage Boot Option Control = Legacy First

Other PCI Device ROM Priority = UEFI OpROM

Network Stack = Disable

Si la primera línea OS Type la cambio a Other OS cambian también las líneas siguientes con otro tipo de configuración ...

El resultado es el mismo comentado antes, he repetido el comando mount -t efivarfs efivarfs /sys/firmware/efivars y la respuesta es la siguiente:

mount point /sys/firmware/efi/efivars does not exist

Saludetes  :Smile: 

----------

## quilosaq

Yo también he hecho mis pruebas y llego a la conclusión de que es imposible arrancar con un cd (cualquier cd/dvd) en modo efi y por tanto no se puede acceder a las variables efi. En resumen, sólo con el LiveCD de gentoo no se puede configurar el arraque efi de gentoo (ni de grub).

Para ser justos tambien hay que decir que todas esas distribuciones que has podido instalar sin problemas, tampoco arrancan en modo efi y que con el LiveCD, gentoo podría instalarse de la menera habitual (arranque bios).

----------

## Luciernaga

EUREKA .... lo logrééééé ...

Ya tá ... 

si es que ....... no hay como leer lo último de lo último .... BINGO

Sencillísimo ... solo hay que seguir al pie de la letra las indicaciones del ultísimo manual de fecha 23 de enero de 2014 español ... iniciada la instalación con la ISO (amd64) de 30 de enero de 2014 ---

El hardware es el mismo citado anteriormente ...

Se inicia la ISO (LiveCD minimal) amd64 ...

Lanzo fdisk /dev/sdb y se crean las siguientes particiones ...

/dev/sdb1 con volumen de 2MB y se habilita el tag EF ... y no se formatea

/dev/sdb2 con volumen de 128MB y se habilita el tag de arranque (*), luego se formatea en ext4 ...

/dev/sdb3 con volumen de 8GB para intercambio SWAP

/dev/sdb4 se habilita como contenedor (Extendida)

/dev/sdb5 con volumen de 128GB para el sistema de ficheros y se formatea posteriormente con ext4 ...

Se sigue al pie de la letra las indicaciones del manual y termina la primera fase con la instalación de GRUB2 ...

Se culmina saliendo del entorno chroot y reiniciando la máquina y .... et VOILÁ ...

A ver si mañana les pongo unas fotos, saludetes  :Wink: 

PostData:

[IMG]http://img839.imageshack.us/img839/5256/z87x.png[/IMG]

[IMG]http://img571.imageshack.us/img571/3159/a5kd.png[/IMG]

[IMG]http://img822.imageshack.us/img822/9969/oyq2.png[/IMG]

[IMG]http://img841.imageshack.us/img841/9821/cb44.png[/IMG]

[IMG]http://img850.imageshack.us/img850/3209/af8z.png[/IMG]

Para más detalles a partir del mensaje #47 ... http://www.dvdadvdr.com/forums/showthread.php?t=69913&page=4

----------

