Experiencia y práctica en la instalación y configuración de un nodo

Anuncio
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.
[email protected]
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.
[email protected]
Fabián Adolfo Lozada Mariño
Ingeniero de Sistemas de la Universidad El Bosque. Server Administrador. CCE Technical Services.
[email protected]
Descargar