Experiencia y práctica en la instalación y configuración de un nodo de EVA R-GRID Daniel Burbano, PCPE Maria Paula Angarita, Ing. Sistemas Fabián Lozada, Ing. Sistemas Resumen Abstract El proceso de creación de un nodo dinámico de un Cluster para pasar del sistema operativo Linux a Microsoft Windows XP y viceversa (dual boot) , consiste en dividir el disco duro del computador en una partición FAT, las particiones que corresponden a Linux (/boot, /(root), swap) y una partición NTFS. La configuración de estos, aparentemente no tiene un orden específico y sería un proceso sencillo, pero las experiencias vividas en el transcurso del desarrollo de los proyectos de grado “Desarrollo de un prototipo de aplicación que permita pasar del sistema operativo Linux al sistema operativo Windows™ con una combinación de teclas.” y “Diseño e implementación de un software de planificación para cambiar el sistema operativo de Windows a Linux para generación dinámica de nodos de un Grid”, muestran que de todas las posibles formas de configuración de los nodos solo una permitía el correcto funcionamiento de ambos proyectos. The process of creating a dynamic Cluster node to switch from Linux to Microsoft Windows XP and vice versa consist OF the division of the computer hard drive into a FAT partition, the Linux partitions (/boot, /(root), swap) and a NTFS partition. At first sight the process is simple and doesn't have an specific order, but according to the experiences lived during the “Desarrollo de un prototipo de aplicación que permita pasar del sistema operativo Linux al sistema operativo WindowsTM con una combinación de teclas.” and “Diseño e implementación de un software de planificación para cambiar el sistema operativo de Windows a Linux para generación dinámica de nodos de un Grid” projects it´s clear that from all the possible ways of configuring a node there was only one that allowed both projects to work. Palabras claves: EVA R-GRID, Cluster, Linux, Windows, inicio dual, administrador de arranque, Master Boot Record. Key words: EVA R-GRID, Cluster, Linux, Windows, dual boot, Boot Manager. 8 Universidad El Bosque - Facultad de Ingeniería de Sistemas I. INTRODUCCIÓN EVA R-GRID[1] es el macroproyecto creado por el equipo de investigación en software libre (EQUIS), de la Facultad de Ingeniería de Sistemas de la Universidad El Bosque. Tiene como fin un Cluster diseñado con los computadores personales ubicados en las salas de cómputo de la Facultad de Ingeniería de Sistemas, que en primera instancia será utilizado como herramienta para el aprendizaje del sistema operativo Linux. La idea global de EVA R-GRID es tomar los computadores personales de las salas de cómputo los cuales se encuentran operando bajo sistema operativo Microsoft Windows XP Professional y de manera automática reiniciarlos para que queden operando en sistema operativo Linux. Una vez en Linux, el Cluster tomará control de estos equipos agregándolos como nodos propios. Cuando un usuario requiere usar un computador personal de éstos para trabajar en Microsoft Windows XP Professional, dicho computador deberá ser retirado del Cluster y reiniciado nuevamente en este sistema operativo. Existen dos sub-proyectos de EVA R-GRID los cuales hacen dichos procesos, estos proyectos son: “Desarrollo de un prototipo de aplicación que permita pasar del sistema operativo Linux al sistema operativo Windows™ con una combinación de teclas.”[3] y “Diseño e implementación de un software de planificación para cambiar el sistema operativo de Windows a Linux para generación dinámica de nodos de un Grid”[2]. Ambos proyectos requieren trabajar con el inicio de los computadores para controlar los cambios automáticos de sistema operativo, este trabajo se hizo en conjunto, ya que el correcto funcionamiento de uno no necesariamente significaba el correcto funcionamiento del otro. Este proceso se realizó dividiendo el disco duro en; una partición FAT, las particiones que corresponden a Linux (/boot, /(root), swap) y una partición NTFS. La partición FAT se utilizó en común para alojar los archivos de inicio de ambos proyectos. La razón para que esta partición sea FAT es por que era el único sistema de archivos que podía ser accedido desde ambos sistemas operativos. Por esto, el objetivo de iniciar el proyecto [3] fue probar la posibilidad de desarrollar un prototipo de aplicación en Linux para hacer el cambio de sistema operativo a Windows®, por medio de una combinación de teclas aplicando este resultado al proyecto EVA R-GRID. En este artículo se reportan los resultados de las pruebas y las exper iencias recopiladas en el proceso de configuración de un nodo en el contexto del proyecto antes referido. II. EL PROBLEMA En principio no se tenía definido un método de instalación y configuración para los nodos de EVA R-GRID. Algunos computadores de las salas de cómputo de la facultad de Ingeniería de Sistemas tenían instalado solamente Microsoft Windows XP Professional y otros tenían instalado Linux Fedora al mismo tiempo que tenían instalado Microsoft Windows XP Professional, es decir trabajaban dual boot. Se partió del hecho que todos los computadores que iban a hacer parte del Cluster tenían que tener instalados ambos sistemas operativos. Posteriormente surge el interrogante de cómo hacer para que sea posible conseguir un reinicio automático de Microsoft Windows XP Professional a Linux y viceversa [4]. Era necesario permitir que ambos sistemas operativos estuvieran en capacidad de acceder con permisos de lectura y escritura la partición del sistema operativo que tuviera el control de inicio del computador, con el fin de que ambos pudieran hacer el cambio en los archivos de inicio para así modificarlo e intercambiar los sistemas operativos. Lo primero que se intentó para conseguir dicho reinicio fue instalar primero Microsoft Windows XP Professional y posteriormente Linux. Cuando se hace en este orden el sistema operativo que queda con el inicio predeterminado es el último que se instala, en este caso Linux. Entonces era necesario modificar el boot Loader (Grub) de Linux para agregar en el menú de éste la ubicación donde se encont raba ins t a lado Micros oft Windows X P Professional. De este modo ya se podía escoger cualquiera de los dos sistemas operativos en el inicio. Pero con este esquema surge un problema: cuando se esta trabajando en Microsoft Windows XP Professional y se quiere hacer el cambio automático a Linux, no es posible ya que Windows tendría que acceder la partición boot de Linux, y Windows no tiene la capacidad de acceder a las particiones de Linux. Debido a esto se optó por hacer una instalación primero de Linux y posteriormente de Windows. Como se mencionó arriba, el inicio queda controlado por el último sistema operativo que se instala, en este caso Windows. Con este método se presentaba el mismo problema del caso anterior ya que Linux no tiene la capacidad de acceder a las particiones de Windows. Revista de Tecnología - Journal of Technology • Volumen 6, No. 2, Julio - Diciembre 2007 III. LA SOLUCIÓN a. FAT de 30 MB Como consecuencia a todo esto fue necesario buscar un sistema de archivos que pudiera ser accedido por ambos sistemas operativos, para este caso fue el sistema de archivos FAT. La idea era crear una partición FAT que alojara los archivos de inicio de ambos sistemas operativos con el fin que estos pudieran modificarlos a voluntad. b. /boot de 100 MB Como el ambiente en el que se trabajaba ya tenia ambos sistemas operativos instalados se decidió hacer uso del software Norton Partition Magic 8.0, el cual se instalaba en Windows con el fin de crear la partición FAT desde este. Dicho proceso fue exitoso desde el punto de vista que se tenían las particiones de Linux, las de Windows y la FAT que compartiría el inicio. El problema en este caso era que aunque se copiaran los archivos de inicio a la partición FAT el computador continuaba buscando los archivos de inicio en la partición que había sido configurada por última vez en el Master Boot Record, es decir, continuaba iniciando el sistema operativo instalado más recientemente. Para dar solución a lo anterior surge la idea de modificar el Master Boot Record del disco duro haciendo que este apunte el inicio a la partición FAT. Pero acá surgía un nuevo inconveniente el cual era la gran probabilidad de dañar el Master Boot Record[5] lo que dejaría inservible ambos sistemas operativos y conllevaría a formatear el disco duro para darle utilidad nuevamente. Así, entonces, se descartó la idea de modificar el Master Boot Record, así como el uso del Norton Partition Magic 8.0 para la creación de la partición FAT. Entonces se ve la necesidad de encontrar un método que copie los archivos de inicio de alguno de los sistemas operativos en el momento de la instalación, así el Master Boot Record queda apuntando a esta partición desde un principio y no se tenga que recurrir a métodos alternos. Analizando cual de los dos sistemas operativos tiene los archivos de inicio que era mas conveniente manipular, se llega a la conclusión que es Windows, ya que entre sus archivos de inicio el que controla como se inicia el sistema, es un archivo de texto plano llamado boot.ini que básicamente contiene un listado de los sistemas operativos instalados y la ubicación de estos. Teniendo en cuenta todas las pruebas anteriores, se decide instalar primero Linux. VI. PASOS DE LA SOLUCIÓN 1. Desde el instalador de Linux, cuando se llega al paso donde el instalador va a crear las particiones, se escoge la opción manual o personalizada y se proceden a crear las particiones en el siguiente orden y tamaño: c. / (directorio raíz) a discreción del usuario. d. SWAP se recomienda menor o igual a 1.5 veces el tamaño de la memoria física. e. Se deja un tamaño libre y suficiente para instalar Microsoft Windows XP Professional. 2. Después se continúa con la instalación normal de Linux. 3. Cuando se termina la instalación de Linux, el Master Boot Record apunta al inicio del sistema, a la partición /boot de Linux. 4. Se inicia la instalación de Microsoft Windows XP Professional, teniendo en cuenta que la partición FAT de 30 MB se convertirá en el disco C de Windows y la que se dejó libre cuando se instaló Linux se convertirá en el disco D del mismo. 5. Se selecciona instalar Windows en la partición D, donde luego el sistema pregunta primero qué sistema de archivos se debe dejar la partición C al formatearla, y luego pregunta el tipo de sistema de archivos que se debe dejar al formatear la partición D. 6. La partición C se formatea, desde este instalador, nuevamente en FAT y la D en NTFS. 7. Se continúa con la instalación de Windows en el disco partición D, a pesar de haber escogido este disco: • Windows copia los archivos de inicio en la partición C. • El Master Boot Record del disco duro queda apuntando a C (partición FAT). • El resto del sistema operativo queda alojado en la partición D. Así, entonces se tiene la partición FAT con los archivos de inicio de Windows pero que ahora pueden ser modificados tanto desde Linux como desde Windows. Los archivos de inicio alojados en la partición FAT son: • boot.ini • CONFIG.SYS • IO.SYS • MSDOS.SYS • NTDETECT.COM • ntldr • pagefile.sys 9 10 Universidad El Bosque - Facultad de Ingeniería de Sistemas El archivo boot.ini es el que va a hacer modificado por ambos sistemas operativos. V. CAMBIO DEL ARCHIVO BOOT.INI PARA HACER EL PASO DE LINUX A WINDOWS. Boot.ini contiene la información correspondiente al sistema operativo que se inicia por defecto; así como una lista de los sistemas operativos que están disponibles en el administrador de inicio. Cuando solo está instalado Windows, el contenido del archivo es como se muestra a continuación. Cuando el sistema inicia en Linux, el archivo boot.ini tiene el campo default en c:\boot.lnx, lo que quiere decir que cada vez que reinicie el sistema seguirá cargando siempre Linux. En ese momento es cuando se requiere que el Script que haga el cambio automático dentro del archivo a: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS para que en el próximo reinicio el sistema cargue Windows™. [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsof t Windows XP Professional" /fastdetect /NoExecute=OptIn Un Script creado con el Bash de Linux es el encargado de hacer este cambio en el campo default del archivo boot.ini. Este script se corre en el momento de iniciar Linux y cabe recordar que se hace en los niveles de inicio 2,3 y 5, los cuales son los más comunes entre los usuarios de Linux. Esto se hace, para que sin importar en que nivel inicie el usuario, se pueda asegurar que el script va a correr y que el sistema reiniciará la próxima vez en Windows. De esta forma el usuario no ve ningún menú debido a que solo hay un sistema operativo instalado. Para que aparezca el menú que permite escoger con cual sistema operativo se requiere iniciar, debajo de “operating systems” deben existir al menos dos. Una vez aparece el menú, este permite que el usuario escoja con cual quiere iniciar dándole un tiempo para que realice esta operación. Este tiempo es determinado por el “timeout”. Si un usuario no escoge ningún sistema operativo para iniciar el computador, el sistema operativo configurado en “default” cargará automáticamente cuando el tiempo se agote. Se hará una modificación a este archivo, agregando la ruta del archivo boot.lnx, el cual en ese momento estará local en la partición FAT. El archivo boot.ini quedará entonces así. 1. [boot loader] 2. timeout=30 3. default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 4. [operating systems] 5.multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micros o f t Win do ws X P P r o fe s s ion a l " / fa s t de te c t /NoExecute=OptIn 6. C:\boot.lnx=”LINUX” VI. FUNCIONAMIENTO DEL SCRIPT En la partición FAT se alojan los archivos de inicio del computador. EL archivo boot.ini tiene dos posibles estados: Estado 1: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsof t Windows XP Professional" /fastdetect /NoExecute=OptIn c:\boot.lnx=”LINUX” En este estado el computador siempre inicia por defecto en WindowsTM. Estado 2: [boot loader] timeout=30 default= c:\boot.lnx [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsof t Windows XP Professional" /fastdetect /NoExecute=OptIn c:\boot.lnx=”LINUX” Donde la sexta línea significa simplemente la ruta del archivo de arranque y lo que esta entre comillas es el título que va a aparecer en el menú. En este estado el computador siempre inicia por defecto en Linux. Posteriormente en el proyecto, el prototipo efectuará constantemente un cambio en el campo “default” del archivo boot.ini a: multi(0)disk(0)rdisk(0)partition(1)\WINDOW, para que cuando el computador se reinicie, cargue en Windows™ en vez de Linux. Teniendo en cuenta que el computador siempre buscará el archivo boot.ini en el inicio, y que se debe cambiar la línea default dentro de este, la forma más sencilla de hacerlo es teniendo dos copias de boot.ini con diferentes nombres y cada uno configurado con uno de los estados arriba mencionados. Es decir, se crean copias llamadas bootl.ini Revista de Tecnología - Journal of Technology • Volumen 6, No. 2, Julio - Diciembre 2007 y bootw.ini, y están configuradas como en los dos estados mencionados anteriormente; el primer estado para el archivo bootW.ini y el segundo estado para el archivo bootl.ini: Lo que hace el script cuando es ejecutado es simplemente reemplazar el contenido de boot.ini por el contenido de bootw.ini, para así asegurar que en el próximo reinicio será cargado Windows™ y no Linux. Teniendo en cuenta que en el paso de Windows a Linux se cambió el archivo boot.ini por bootl.ini explicado en [2]. El script en Linux, es un código en Bash que se ha creado en un archivo denominado ChangeBootL2W. El Script contiene un comando que copia un archivo al otro. EL código es: #!/bin/bash cp -f /mnt/DOS/bootW.ini /mnt/DOS/boot.ini ChangeBootL2W es un archivo plano que contiene el código y debe ser convertido a un ejecutable con el fin que pueda ser cargado en el momento del inicio como un demonio. Para volverlo ejecutable se debe correr el siguiente comando: chmod 700 ChangeBootL2W Ya como ejecutable ChangeBootL2W debe ser copiado en la siguiente ruta, que es necesario para la ejecución del script en tiempo de inicio: /etc/rc.d/init.d Luego teniendo en cuenta que ChangeBootL2W será ejecutado en los niveles 2, 3 y 5 de inicio de Linux, se debe hac er un enlac e simb ólico en la s c a r p et a s correspondientes a esos niveles (/etc/rc.d) respectivos. Es decir se ubica en rc2.d y se hace lo siguiente: Ln -s/etc/rc.d/init.d/ChangeBootL2W S95ChangeBootL2W Hay que tener en cuenta que para el ejemplo, S95 era un campo disponible. Es decir, en esa posición se pudo ubicar a ChangeBootL2W para que cargara. Si en caso real S95 esta siendo utilizado por otro demonio, se debe escoger otra posición que esté desocupada procurando que sea de las últimas. Este mismo paso se debe repetir para los niveles 3 y 5 cuyas carpetas serán rc3.d y rc5.d respectivamente. Así queda el script corriendo cada vez que el computador es iniciado en Linux en cualquiera de esos tres niveles de inicio. Por último, vale la pena decir que el cambio de Windows a Linux fue desarrollado en el proyecto de grado “Diseño e implementación de un software de planificación para cambiar el sistema operativo de Windows a Linux para generación dinámica de nodos de un Grid” [2]. CONCLUSIÓN En el desarrollo del proyecto “Desarrollo de un prototipo de aplicación que permita pasar del sistema operativo Linux al sistema operativo WindowsTM con una combinación de teclas” así como en el proyecto de grado “Diseño e implementación de un soft ware de planificación para cambiar el sistemas operativo de Windows a Linux para generación dinámica de nodos de un Grid”, se tenían unos objetivos claros, pero existían pasos intermedios como los que se menciona en este artículo, el cual pese aparentar ser algo muy sencillo requirió del trabajo en conjunto de ambos proyectos para la puesta a punto que permitiera la correcta consecución de cada proyecto sin afectar el otro. No es de importancia si en el momento de instalar Windows se escoge la partición C ya que por el tamaño tan pequeño el instalador siempre lo instala en la partición D, lo que si se debe tener en cuenta en el momento que el instalador solicite el formato de las particiones, es tener la precaución y asegurarse de formatear la partición C en FAT y la partición D en NTFS. De lo contrario Linux no podrá acceder a la partición D. REFERENCIAS [1] BURBANO, Daniel; SABOGAL, Guiovanna y ORGANISTA, Pedro. Entorno Virtual de Aprendizaje Remoto sobre Grid, EVA R-GRID en Revista de Tecnología. v.5, No.1 (EneroJunio 2006); p. 13-20 [2] GUZMAN, Cesar. Diseño e implementación de un software de planificación para cambiar el sistemas operativo de Windows a Linux para generación dinámica de nodos de un Grid. Bogotá D.C., 2006. Trabajo de grado (Ingeniero de Sistemas). Universidad El Bosque. Facultad de Ingeniería de Sistemas. Área de Telecomunicaciones. [3] LOZADA, Fabian; ANGARITA, Maria Paula. Desarrollo de un prototipo de aplicación que permita pasar del sistema operativo Linux al sistema operativo WindowsTM con una combinación de teclas. Bogotá D.C., 2007. Trabajo de grado (Ingenieros de Sistemas). Universidad El Bosque. Facultad de Ingeniería de Sistemas. Área de Telecomunicaciones. [4] SCHWENZFEGER, George. Setting up a Dual Boot with Win XP and Linux using the GRUB Loader (online). Abr. 2002 11 12 Universidad El Bosque - Facultad de Ingeniería de Sistemas (consultado 1 Dic. 2006). http://www.devhood.com/tutorials/tutorial_details.aspx?tut orial_id=405 [5] The PC Guide, Máster Boot Record (MBR), Jul. 2005 (consultado 22 Nov. 2006), Http://www.pcguide.com/ref/hdd/file/structMBR-c.html Artículo de Investigación Científica Tecnológica. Sometido a Arbitraje. Los Autores Daniel Alberto Burbano Sefair Docente de la Facultad de Sistemas de la Universidad El Bosque. Ingeniero electrónico, MCpE Ingeniería Eléctrica y Computadoras. Miembro de Equipo de Investigación en software Libre, Coordinador línea Grid computing. danielburbano@unbosque.edu.co María Paula Angarita Arz Ingeniera de Sistemas de la Universidad El Bosque. Gerente de Producto División de Soluciones Avanzadas. MPS Mayorista de Colombia S.A. mapyangarita@yahoo.com Fabián Adolfo Lozada Mariño Ingeniero de Sistemas de la Universidad El Bosque. Server Administrador. CCE Technical Services. falmoon@yahoo.com