Nuestros terminales ligeros son NEC PowerMate VL4 sin disquetera ni CD-ROM. El problema que tenemos actualmente es que, tras unos años en funcionamiento, se están agotando las pilas. Como consecuencia, se borran los ajustes de la CMOS y los equipos dejan de arrancar porque la opción de arranque por defecto es el Floppy.
SOLUCIÓN:
Cambiar los ajustes por defecto de la BIOS para que el primer dispositivo de arranque sea "On Board LAN", es decir, la tarjeta de red integrada.
Lo interesante de esta actualización es que fijaremos los ajustes por defecto en la ROM de la BIOS y no en la CMOS. Así, aunque se agoten las pilas de los equipos, las opciones que deseamos tener, seguirán establecidas y no se perderan, como sucedería si estuvieran almacenadas en la CMOS y se agotara la pila.
AJUSTES FIJADOS COMO PREDETERMINADOS:
Éstos son los ajustes que he establecido por defecto en la ROM modificada:
- Fijado como primer dispositivo de arranque "On Board LAN", es decir, la tarjeta de red integrada y activado como "Show only" para que no pueda ser modificado por el usuario.
- Desactivado segundo y tercer dispositivo de arranque para que el usuario no pueda cambiarlo.
- Desactivado el arranque desde otros dispositivos.
- Desactivadas opciones de establecer passwords de setup y de usuario. Así los usuarios no van a poder cambiarlos en caso de reseteo de los valores de la CMOS.
HERRAMIENTAS:
Como nuestra bios es AWARD, para flashearla u obtener un backup tan sólo tendríamos que copiar la herramienta AWDFLASH.EXE y la imagen de la BIOS que vamos a grabar en nuestra máquina.
Ya que necesitaba un disquete de arranque, para flashear/obtener copia de la BIOS, he creado una imagen de un floppy con las siguientes herramientas, que me permitirá hacer algunas cosas más con la imagen de la BIOS, como por ejemplo, personalizarla:
- awd822a.exe -> Flash loader for Award BIOS. Permite flashear/hacer backup de la BIOS.
- modbin62.04.03.exe -> Nos permite modificar ajustes por defecto de BIOS Award.
PASOS SEGUIDOS:
Primero.- Crear un floppy disk con las herramientas mencionadas anteriormente que nos servirán para trabajar con nuestras BIOS Award.
Como comentaba al principio, nuestros terminales ligeros no disponen de disquetera ni de unidad de CDROM. Además, tampoco disponen de arranque vía USB, por tanto, nuestra mejor opción para actualizar la BIOS de los mismos es cargar una imagen de floppy mediante PXE, haciendo uso de memdisk (También se puede usar GRUB para arrancar una imagen de floppy, pero, como el sistema de terminales ligeros hace uso de PXE, vamos a aprovecharlo).
1.- Lo primero que necesitamos es un disquete de arranque.
Como se requiere un sistema operativo DOS para nuestros fines y podemos evitar usar versiones propietarias, descargamos FreeDOS, un sistema DOS compatible completamente free. Y como necesitamos espacio en nuestro floppy, descargamos la versión "OEM Bootdisk", que contiene lo justo:
- AUTOEXEC.BAT
- COMMAND.COM
- CONFIG.SYS
- KERNEL.SYS
- README
- sys.com
Así que descargamos la versión FreeDOS OEM Bootdisk:
# wget http://www.linuxinsight.com/files/FDOEM.144.gzY descomprimimos:
# gunzip FDOEM.144.gzObtendremos un fichero llamado FDOEM.144
En el siguiente enlace de Dropbox también econtraremos una imagen de un floppy de 1.44MB: http://dl.dropbox.com/u/5004198/floppies/dosdisk144.img
# wget http://dl.dropbox.com/u/5004198/floppies/dosdisk144.img2.- Descargamos de internet las herramientas que queramos incluir en nuestro disquete. Por ejemplo:
- awd822a.exe
- modbin62.04.03.exe
Montamos la imagen del Floppy Bootdisk en un directorio temporal:
# mkdir /tmp/floppy
# mount -t vfat -o loop FDOEM.144 /tmp/floppy
Y le añadimos las herramientas que necesitemos:
# cp awd822a.exe /tmp/floppy/He renombrado modbin para que el nombre del archivo no tenga más de 8 caracteres, ya que la actualización se hace en un sistema operativo DOS.
# cp modbin62.04.03.exe /tmp/floppy/modbin6.exe
También me ha parecido interesante añadir el editor de textos de freedos edit.exe, por si en algún momento tengo que editar ficheros en formato dos, como, por ejemplo el AUTOEXEC.BAT. Como en mi máquina tengo instalado dosemu, lo he copiado desde allí:
# cp /usr/lib/dosemu/freedos/bin/edit.exe /tmp/floppy/Por último, he pensado que la imagen debería permitir elegir con qué imagen flashear la rom, así que he añadido CHOICE.COM, que permite dar opción al usuario a elegir entre varias opciones desde el autoexec.bat:
# cp choice.com /tmp/floppy/Y listo. Ahora mi floppy contendrá lo siguiente:
- AUTOEXEC.BAT
- COMMAND.COM
- CHOICE.COM
- edit.exe
- MODBIN6.EXE
- sys.com
- awd822a.exe
- CONFIG.SYS
- KERNEL.SYS
- README
# umount /tmp/floppy5.- Comprobar que nuestro disquete funciona:
# cp FDOEM.144 /home/miusuario/Dropbox/bios/
# qemu -fda /home/miusuario/Dropbox/bios/FDOEM.144
Segundo.- Obtener una copia de nuestra BIOS en un fichero.
Ahora que ya tenemos una imagen de un disquete autoarrancable con las herramientas necesarias, vamos a hacer un backup de la BIOS de un equipo NEC para trabajar sobre ella y hacerle los ajustes planificados. Para ello:
1.- Grabamos la imagen en un disquete:
# dd if=/home/miusuario/Dropbox/bios/FDOEM.144 of=/dev/fd0 bs=10k count=1442.- Como tengo equipos NEC con disquetera, voy a usar uno de ellos para hacer un backup de la BIOS.
Seleccionamos como primer dispositivo de arranque "Floppy" en la BIOS, introducimos el disquete en el equipo del que vamos a obtener copia de la BIOS y reiniciamos para arrancar desde el mismo.
Se iniciará FreeDOS y se quedará esperando en la línea de comandos:
A:\Escribiremos el comando para hacer la copia y pulsamos Enter:
A:\ awd822a /pn /sy backup.bin
donde: /pn -> program no (no flashear la BIOS)
/sy -> save yes (guardar un backup de la BIOS actual)
Cuando el proceso termine, tendremos una copia de la bios en un fichero llamado backup.bin
Apagamos el equipo del que hemos hecho la copia.
3.- Introducimos el disquete en nuestro equipo para hacer una nueva imagen del mismo, ahora que tiene, el backup.bin, además de las herramientas y creamos la imagen:
# dd if=/dev/fd0 of=/home/miusuario/Dropbox/bios/fbiosnec.img bs=10k count=1444.- Montamos la imagen del disquete (fbiosnec.img) en un directorio temporal:
# mount -t vfat -o loop fbiosnec.img /tmp/floppy5.- Una vez montado, copiamos el fichero de backup a un lugar seguro para tener una copia, por ejemplo, a mi carpeta de Dropbox:
# cp /tmp/floppy/backup.bin /home/miusuario/Dropbox/biosLa primera copia (backup.bin) nos va a servir para tener un backup de la BIOS original.
La segunda copia (biosnec.bin) es la que vamos a modificar para que contenga los ajustes que queremos.
6.- Aprovechando que en mi equipo tengo wine, abrimos una consola de wine en un terminal:
# cd /tmp/floppy/Se nos abrirá una consola dos de wine en el directorio /tmp/floppy:
# wineconsole cmd
Z:\tmp\floppy>Como ya hemos guardado una copia de la imagen de la bios, renombramos el fichero del floppy:
Z:\tmp\floppy> ren backup.bin biosnec.binY, por último, abrimos MODBIN6.EXE para realizar los ajustes que queremos hacer en la BIOS:
Z:\tmp\floppy> MODBIN6MODBIN6 detectará todas las copias de las BIOS que haya. Como en el disquete sólo hay una (biosnec.bin), tan sólo se mostrará ésta. Pulsamos ENTER para cargarla. Se abrirá el programa y ya podremos hacer nuestros ajustes.
Cuando terminemos de hacer los ajustes en la copia de la BIOS, guardamos y cerramos la ventana "Wine Command Prompt".
7.- Al principio, usé una imagen de disquete de 1.44MB, suficiente cuando queremos almacenar una copia de la bios, pero como posteriormente pensé en incluir la imagen original de la bios, la imagen retocada, y modificar el autoxec para permitir elegir al usuario con qué imagen flashear, el disquete de 1.44MB se me quedaba pequeño. Así que opté por usar una imagen de floppy de 2.88MB, que nos deja más espacio libre en disco para añadir nuestras herramientas.
Podemos descargar la imagen del floppy desde http://dl.dropbox.com/u/5004198/floppies/dosdisk288.img:
# wget http://dl.dropbox.com/u/5004198/floppies/dosdisk288.imgMontamos la imagen de este nuevo floppy en una carpeta temporal y le copiamos el contenido del otro disquete:
# mkdir /tmp/floppy288Además, copiamos la imagen de la BIOS original:
# mount -t vfat -o loop dosdisk288.img /tmp/floppy288
# cp /tmp/floppy/* /tmp/floppy288/
# cp /home/miusuario/Dropbox/bios/backup.bin /tmp/floppy2888.- No olvidemos que tenemos montada la imagen del disquete fbiosnec.img en /tmp/floppy y la imagen del disquete dosdisk288.img en /tmp/floppy288 y que tenemos que desmontarlas. La desmontamos:
# umount /tmp/floppy9.- Editamos el autoexec.bat del floppy de actualización fbiosnec.img.
# umount /tmp/floppy288
Aquí dejo una copia del que he preparado: http://dl.dropbox.com/u/5004198/floppies/autoexec.bat
# wget http://dl.dropbox.com/u/5004198/floppies/autoexec.bat10.- Y hacemos una copia de nuestro floppy:
# cp dosdisk288.img /home/miusuario/Dropbox/bios/fbiosnec.imgTercero.- Crear una imagen iso de CD autoarrancable.
Como no cuesta nada, ahora que tenemos un floppy de arranque, podemos crear también una imagen de CD autoarrancable, por si la necesitamos en algún momento.
* Si nuestra máquina es Debian Lenny, tenemos que usar mkisofs:
# mkisofs -o fbiosnec.iso -b fbiosnec.img fbiosnec.img* Si nuestra máquina es Debian Squeeze:
# genisoimage -o fbiosnec.iso -b fbiosnec.img fbiosnec.img
Cuarto.- Preparar PXE para cargar la imagen de nuestro floppy disk mediante memdisk.
Bien. Ahora ya tenemos una imagen de un floppy con el que podemos flashear automáticamente la BIOS de nuestros equipos. Como ya comentamos al principio, para flashearlos nuestra mejor opción es cargar una imagen del floppy que hemos creado mediante PXE, haciendo uso de memdisk aprovechando que el sistema de terminales ligeros hace uso de PXE.
Las instrucciones que hacen arrancar un terminal ligero se encuentran en el fichero: /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Si mostramos el contenido de éste fichero:
# cat /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/defaultVeremos que tan sólo contiene una línea de comentario y otra que carga la imagen de los terminales:
# Para usar nbdAsí que lo retocaremos un poco para que podamos lanzar la imagen de nuestro disquete cuando queramos. Además, ya de paso, vamos a añadir la posibilidad de iniciar Plop Boot Manager, por si en algún momento necesitamos arrancar los equipos desde usb. Pero, antes, vamos a preparar el entorno:
DEFAULT vmlinuz ro initrd=initrd.img quiet
1.- Creamos un directorio llamado Floppy dentro /var/lib/tftpboot/ltsp/i386 en el servidor de terminales:
# mkdir /var/lib/tftpboot/ltsp/i386/FloppyMás que nada para ser organizados y si en algún momento, necesitamos otro disquete para otros fines, lo añadiremos aquí también.
2.- Copiamos la imagen del disquete para flashear la bios en /var/lib/tftpboot/ltsp/i386/Floppy/
# cp /home/miusuario/Dropbox/bios/fbiosnec.img /var/lib/tftpboot/ltsp/i386/Floppy/3.- Copiamos memdisk a /var/lib/tftpboot/ltsp/i386/
# cp /opt/ltsp/i386/usr/lib/syslinux/memdisk /var/lib/tftpboot/ltsp/i386/4.- Descargamos Plop Boot Manager y lo descomprimimos:
# cd /home/miusuario/Dropbox/bios/Se creará un directorio: plpbt-5.0.12. Dentro de él encontraremos un fichero: plpbt.bin. Lo copiamos a /var/lib/tftpboot/ltsp/i386/
# wget http://download.plop.at/files/bootmngr/plpbt-5.0.12.zip
# unzip plpbt-5.0.12.zip
5.- Copiamos plpbt.bin a /var/lib/tftpboot/ltsp/i386/
# cp plpbt.bin /var/lib/tftpboot/ltsp/i386/6.- Hacemos una copia de seguridad del fichero default:
# mv /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default.orig7.- Creamos una nueva copia del fichero default:
# nano /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Con el contenido que listamos a continuación:
# Fichero /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
DEFAULT ltsp
# Para usar nbd
LABEL ltsp
kernel vmlinuz
append ro initrd=initrd.img quiet
# Para flashear la BIOS del terminalSi nos fijamos en el fichero, podemos ver que tiene tres entradas:
LABEL flashbios
kernel memdisk
append rw initrd=Floppy/fbiosnec.img
# PLOP Boot Manager
LABEL plp
linux plpbt.bin
- ltsp (Para iniciar el terminal ligero)
- flashbios (Para flashear la bios del terminal ligero)
- plp (Para iniciar Plop Boot Manager)
Si en algún momento queremos flashear la bios de los terminales conectados a un servidor, no tenemos más que cambiar la entrada:
DEFAULT ltsppor:
DEFAULT flashbiosAl encender los terminales, arrancarán la imagen del floppy que flashea la BIOS.
Y, si en algún momento, queremos arrancar Plop Boot Manager, por ejemplo, para disponer de arranque USB en los terminales, cambiamos la línea DEFAULT a:
DEFAULT plp
0 comentarios:
Publicar un comentario en la entrada