EFI Shell – Itanium – HP-UX/Linux

Que es y para que sirve? que podemos hacer con la EFI shell?

La EFI es la precursora de la UEFI, hoy en dia bastante difundida en equipos de uso hogareño. Pero este no es por lejos el tema que nos ocupa, si no mas bien la utilidad de la EFI Shell en servidores del tipo Itanium. Encontrarás en este post, el uso básico y algunos tips de utilidad a la hora de instalar o recuperar sistemas operativos.

Introducción

Si te primera pregunta es: Que es EFI?
La respuesta mas clara la tiene Wikipedia cuando dice:

La Interfaz Extensible del Firmware, Extensible Firmware Interface (EFI), es una especificación desarrollada por Intel dirigida a reemplazar la antigua interfaz del estándar IBM PC BIOS, interactúa como puente entre el sistema operativo y el firmware base.

Básicamente cuando HP decidió vender servidores con procesadores Intel, se comenzó a desarrollar un sistema que permita a los servidores tener altas prestaciones (esto fue cerca del 2002), por ejemplo soportar hasta 9,4 Zetta Bytes en lugar de los 10 Teras que podia llegar a soportar la BIOS en el mejor de los casos. Otro excelente ejemplo es la posibilidad de funcionar nativamente con 32 y 64 bits, cuando BIOS fue diseñada originalmente para andar con 16 bits.

AmiBios2
Server con iLO 2 Booteando con BIOS AMIBIOS

Ademas de estas y otras adelantos que conlleva el uso de la EFI, esta posee un Boot manager y una shell desde donde se pueden ejecutar ciertos programas prescindiendo de un OS.

En este post nos centraremos en esos beneficios, los commandos de EFI y el Boot Manager.

EFI Standard Commands

EFI tiene un set de comandos específicos, los cuales podemos observarlos utilizando el comando help -?. También pueden encontrar una lista completa de los comandos de la EFI en este link.

El funcionamiento de esta “shell” es muy al estilo DOS, aunque tiene un par de ayudas para los que venimos del mundo unix, y escribir ‘dir’ en lugar de ‘ls’ nos cuesta muchísimo.
La primer ayuda que tenemos es el comando ‘alias’, el cual nos mostrará los alias de los comandos y crear nuestros propios ‘comandos’.

La mayoria de las descripciones de los comandos en el comando help -? son muy explicativas, en caso de que necesitemos mas información sobre un comando en particular podemos ejecutar ‘help commando’ o bien ‘commando -?’.

Aquí les dejo algunos comandos básicos:

ver

Existen varias versiones de EFI, por lo que te recomiendo ejecutar el comando ver, para saber que versión de EFI estas usando. Una de las diferencias entre versión y versión es la lista de comando. Quizás alguno de los comandos que tratamos aquí no estén disponibles en tu EFI.

Hardware desde la EFI

A la hora de configurar el hardware del servidor, tenemos algunos comando muy útiles.

map

El comando map, nos muestra una lista de dispositivos reconocidos por la EFI.

Shell> map
Device mapping table
fs0 : Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig8E89981A-0B97-11D7-9C4C-AF87605217DA)
blk1: Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)
blk2: Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig8E89981A-0B97-11D7-9C4C-AF87605217DA)
blk3: Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part3,SigC9D7945C-0BA7-11D7-9B31-FBA1AECDAF7E)

Este listado, por supuesto varía de servidor en servidor, dependiendo de que dispositivos (discos, fibras, placas de red, etc etc)
Puedes encontrar aquí una explicación de la nomenclatura usada.

Si quisiéramos refrescar (escanear nuevamente) el listado

map -r

Si quisiéramos listar sólo los filesystems

map -Fs

Si quisiéramos listar sólo los dispositivos de bloque

map -Blk
devices
Este comando, nos hará un listado de todos los dispositivos administrados por la efi (es decir la efi tiene drivers para esos dispositivos). Este comando es muy útil para poder saber que hard tenemos en el servidor.
devtree
Complementario al comando devices, con devtree podemos hacer prácticamente el mismo listado, pero con vista de árbol.

Acceso a un disco/lun

Para acceder a un filesystem, ejecutamos (muy al estilo MS-DOS):

Shell> fs0
fs0:>

Una vez dentro del filesystem podemos hacer uso de los siguientes comandos:
cd, comp, cp, edit, eficompress, efidecompress, hexedit, ls, mkdir, mode, mv, rm

Detallar estos comandos sería un despilfarro de letras, ya que son lo que todos queremos que sean, sin mas ni menos. Sin embargo, estos mismos comandos son útiles para scripts que podemos realizar con el fin de acortar ciertas tareas (tema que quedará pendiente para un futuro post).

Termino dejando un manual de la UEFI en servers proliants

~have fun!

Leave a Reply