Antes de proceder con los pasos voy a explicar porque he llegado a realizar mi custom BIOS aunque seguro ya imaginaran el porque y de su utilidad.
En mi caso he buscado modificar los strings mencionados de la BIOS ya que necesitaba realizar una maqueta con un producto de la marca Juniper y las licencias de prueba limitaban al producto para solo uno días de uso y en otros casos la licencia de prueba habilitaba solo algunos features con lo cual me limitaba para poder realizar mis labs.
Es el caso de Juniper como de otras muchas marcas la manera que tienen sus productos de validar una licencia es macheando contra el System Serial Number que suele ser el Sserial Number del Producto, así que si tienes la licencia mas el numero de serie del producto con esta molificación ya sea en la rom de una VM o la rom propia de una caja podrás tener n cantidad de productos full para jugar.
Estas modificaciones fueron probadas en los productos: STRM, IC, SA Juniper, tomando los valores de cajas físicas y pasando los mismos a la rom de una VM para los productos en formato Virtual, y he podido comprobar que los BIOS Rom de ESXi 4 son compatibles con ESXi 5 y las versiones de VMware Workstation.
Nota: Nadie pierda el tiempo en pedirme o intentar comprarme licencias y serials ya que no respondere a tal solicitud por mas gustosa que sea la oferta.
Se requiere:
Una PC con Linux.
Phoenix BIOS Editor Pro v2.2.1.3.tgz (6.5 MB) o mas reciente
Una PC o VM con Windows para instalar el BIOS Editor
Pasos:
Para revisar la tabla DMI del BIOS de nuestra PC o de cualquier otra podemos usar el comando de linux dmidecode.
# dmidecode | more
# dmidecode 2.7
SMBIOS 2.51 present.
34 structures occupying 1064 bytes.
Table at 0xE7EEA000.
Handle 0x0000, DMI type 0, 24 bytes.
BIOS Information
Vendor: Phoenix Technologies LTD
Version: 1.13
Release Date: 10/06/2008
Address: 0xE6B70
Runtime Size: 103568 bytes
ROM Size: 1024 kB
Characteristics:
ISA is supported
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
EDD is supported
3.5"/2.88 MB floppy services are supported (int 13h)
ACPI is supported
USB legacy is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
BIOS boot specification is supported
Handle 0x0001, DMI type 1, 27 bytes.
System Information
Manufacturer: Juniper Networks
Product Name: STRM 2500
Version: 1.0
Serial Number: 025006201000····
UUID: 80491C00-AD90-DF11-9F77-FD4FFE01····
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
Handle 0x0002, DMI type 2, 8 bytes.
Base Board Information
Manufacturer: Supermicro
Product Name: PDSMP-JN1
Version: PCB Version
--More--
- Tomamos nota de la sección System Information:
Manufacturer: Juniper Networks
Product Name: STRM 2500
Version: 1.0
Serial Number: 025006201000····
UUID: 80491C00-AD90-DF11-9F77-FD4FFE01···· - Pasos para extraer el BIOS Rom de VMware:
En un ESXi 4 el archivo que debemos buscar es s.z y en ESXi 5 es s.v00
Copiar el archivo a nuestra maquina por scp el archivo s.v00 que se encuentra en /bootbank (ESXi5):
mkdir -p ~/tmp/BIOS
scp root@172.16.1.10:/bootbank/s.v00 ~/tmp/BIOS
Descomprimir el archivo s.v00
cd ~/tmp/BIOS
file s.v00
tar xfv s.v00
Para chequear si se encuentra el bios440 en versiones de ESXi 4 debemos buscar el archivo vmx y para ESXi 5 el archivo se llama vmware-vmx
objdump --headers vmware-vmx | grep -i 440
Extraer el bios440
objcopy vmware-vmx --output-target=binary --only-section=bios440 --set-section-flags bios440=alloc bios440.rom.zl
Descomprimir el .zl
perl -e 'use Compress::Zlib; my $v; read STDIN, $v, '$(stat -c%s "./bios440.rom.zl")'; $v = uncompress($v); print $v;' < bios440.rom.zl > bios440.rom
- Ahora que tenemos el archivo bios440.rom vamos a editarlo con el Phoenix BIOS Editor
Abrir el Phoenix BIOS Editor
Abrir el bios440.rom e ir a la tabla DMI
- Para indicar a la VM que arranque con el BIOS custom hay que copiar nuestro BIOS rom por scp al ESXi junto al archivo .vmx de la VM que busquemos customizar.
Editar con el vi el .vmx de la VM elegida y agregar las siguientes lineas:
bios440.fileName = "BIOS440_STRM_JUNIPER.ROM"
isolation.tools.PatchSMBIOS.disable = "TRUE"
isolation.tools.getUUId.disable = "TRUE" - Para los que quieran un bios440 rom sin modificar les dejo un link:
bios440.rom ESXi5.tgz (207 KB)
bios440.rom ESXi4.tgz (207 KB)
Nota: Para los que quiera hacer un backup de su BIOS pueden usar la tool flashrom
# flashrom -r BkpBios.rom
# flashrom -wv UpdateBios.rom
Saludos!
Hernan
Hernan
No hay comentarios:
Publicar un comentario