LILO-COMO Logo

  Este documento es una guía de carácter práctico sobre qué es Lilo y cómo configurarlo. Está orientado a un usuario normal que tiene varios sistemas operativos en su ordenador (Windows y Linux, por ejemplo) y no se quiere complicar mucho la vida, pero le gusta saber cómo funcionan las cosas.

Contenido

1. Particiones
    1.1. Tipos de partición
    1.2. Gestor de arranque
    1.3. Nomenclatura de Linux
    1.4. La Bios
    1.5. Geometría de discos
    1.6. Creación y modificación de particiones y unidades lógicas
    1.7. El problema de la visibilidad de particiones de Microsoft
2. Instalación de Lilo
3. Estructura general del archivo de configuración
4. Opciones globales
5. Definición de tipos de partición
6. Secciones Linux o de otros OS
7. Opciones comunes
8. Opciones particulares de imágenes Linux
9. Opciones particulares de otros OS
10. Manipulación de la tabla de partición
11. Ejemplos
12. Nota final

1. Particiones

  Los discos duros se pueden dividir, de manera estándar, en hasta cuatro partes independientes de tamaño arbitrario (llamadas particiones), para tener por ejemplo distintos sistemas operativos (OS).

  La estructura general de los discos duros es la siguiente:

Estructura general de los discos duros

  Como vemos, lo primero que hay es lo que se llama el MBR (Master Boot Record), también llamado tabla de partición, y después viene el espacio de disco que pueden usar libremente las particiones. Por supuesto, no tiene que haber exactamente cuatro particiones hechas, podemos tener sólo una, dos, tres o las cuatro, según nuestras necesidades.

  El MBR es el lugar donde se indican cuántas particiones hay y cómo son. Para esto hay cuatro entradas, donde se guarda la información relativa a cada posible partición: si existe o no, de qué tipo es, en qué posición se encuentra dentro del disco duro, cuánto ocupa, flag de activo y demás.

  Además, el MBR contiene un pequeño programa (IPL), que podemos llamar gestor de arranque principal, encargado de arrancar una partición u otra. Este programita se ejecuta al arrancar el ordenador, después de los chequeos y otras cosas que hace la Bios.

1.1. Tipos de partición

  De forma más general, las particiones pueden ser primarias o extendidas. La diferencia entre unas y otras está en su estructura interna.

  Hay muchos tipos de particiones primarias, dependiendo del sistema de archivos que utilice la partición. Así por ejemplo, el Ms-Dos usa particiones tipo FAT16, el Windows 95/98 las FAT32, Windows NT/2000 las NTFS, Linux las EXT2, etc.

Particiones primarias

  Hemos de tener en cuenta que el tipo FAT16 tiene un tamaño máximo de 2G. Por eso, aunque Windows 95/98 se puede instalar en una partición FAT16, si queremos usar una partición de más de 2G, ha de usarse FAT32.

  Las particiones extendidas son unas particiones especiales que a su vez están divididas internamente en partes independientes (llamadas unidades lógicas), pero el número de unidades lógicas no está limitado. Las unidades lógicas son parecidas a las particiones primarias, pero están dentro de particiones extendidas. Una partición extendida no es útil por sí misma, su única función es ser el recipiente de unidades lógicas.

Particiones extendidas

  Hay hasta 256 tipos de particiones y cada una tiene un identificador numérico. Para conocerlos, se pueden usar varios programas, por ejemplo el fdisk de Linux. He aquí algunos:

    0x05 Partición extendida DOS
    0x06 Partición FAT16
    0x07 Partición NTFS
    0x0B Partición FAT32

    0x16 Partición FAT16 oculta
    0x17 Partición NTFS oculta
    0x1B Partición FAT32 oculta

    0x82 Partición Linux Swap
    0x83 Partición Linux Ext2

  Todos los OS se pueden instalar en particiones primarias, pero sólo algunos en unidades lógicas. Por ejemplo, Linux se puede instalar en unidades lógicas mientras que los OS de Microsoft no. Éstos últimos requieren obligatoriamente particiones primarias. Usan las unidades lógicas sólo para guardar datos. Esto limita el número de OS de este tipo que se pueden instalar, dado que como mucho puede haber hasta cuatro particiones primarias.

  El hecho de que no esté limitado el número de unidades lógicas es una característica muy interesante para Linux. Todas las particiones de Linux, incluidas las de Swap, se pueden instalar en unidades lógicas. No es obligatorio usar particiones primarias. De esta manera, instalando Linux en unidades lógicas aún podemos tener hasta tres OS más, en sus correspondientes particiones primarias. Por ejemplo, podemos tener un disco duro como el siguiente:

Ejemplo

  Como vemos, hay una partición primaria para MS-DOS, otra para Windows 98 y otra para NT. Después está la partición extendida donde tenemos tres unidades lógicas, dos para Linux y una tipo FAT para datos. La utilidad de la unidad lógica tipo FAT es que independientemente del OS que usemos, todos los datos se encuentren en un mismo sitio.

1.2. Gestor de arranque

  Todas las particiones primarias y extendidas comienzan con lo que se llama sector de arranque. El IPL por defecto, únicamente pasa el control al sector de arranque de la partición marcada con el flag de activo, también llamado flag de arranque. Como se puede suponer, sólo debería haber una partición con el flag de activo marcado. De esta manera se controla la partición de arranque.

  En el sector de arranque se encuentra otro programa que es el encargado de arrancar el OS. En el caso de Linux, este programa es Lilo.

  Podemos usar otros gestores de arranque principal, en lugar del de por defecto, que incorporen diversas funcionalidades como menús, colores, usuarios, claves u otras opciones. Algunos gestores de arranque comerciales son el System Commander de V Communications, el BootMagic de PowerQuest, o el BootStar, pero no son gratis. Otro gestor que sí es gratis es el Ranish Partition Manager.

  Lilo no sólo puede arrancar Linux, sino que también puede arrancar otros OS. Además, no ha de instalarse necesariamente en el sector de arranque de una partición, sino que puede instalarse en el MBR, es decir, en el IPL, convirtiéndose en el gestor de arranque principal.

  Lilo también puede instalarse en el sector de arranque de una partición extendida, lo cual viene muy bien si tenemos Linux instalado en una unidad lógica y queremos usar otro gestor de arranque principal que no sea Lilo.

1.3. Nomenclatura de Linux

  Actualmente en los PC hay dos principales tecnologías utilizadas por los discos duros, CD-ROM, grabadoras, etc. Son los interfaces IDE y SCSI. Los IDE son los más comunes y baratos mientras que los SCSI son más caros y ofrecen mejores prestaciones.

  Los discos, como todo dispositivo en Linux, son tratados como archivos, localizados en el directorio /dev. Así, estos son algunos de los nombres utilizados:

    /dev/hda      Disco maestro del primer bus IDE.
    /dev/hda1    Primera partición del disco /dev/hda.
    /dev/hda2    Segunda partición del disco /dev/hda.
    /dev/hda3    Tercera partición del disco /dev/hda.
    /dev/hda4    Cuarta partición del disco /dev/hda.
    /dev/hda5    Primera unidad lógica del disco /dev/hda.
    /dev/hda6    Segunda unidad lógica del disco /dev/hda.

  Las siguientes unidades lógicas se van llamando /dev/hda7, /dev/hda8, etc. Los demás discos IDE se llaman:

    /dev/hdb      Disco esclavo del primer bus IDE.
    /dev/hdc      Disco maestro del segundo bus IDE.
    /dev/hdd      Disco esclavo del segundo bus IDE.

  Para los discos SCSI se usan los nombres /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd, etc.

1.4. La Bios

  La BIOS (Basic Input Output System) es el sistema básico de entrada/salida de los PC y tiene varias funciones. Físicamente es un chip situado en la placa base y hay varios fabricantes.

  Por un lado, proporciona un interfaz sencillo para el manejo de los dispositivos básicos del PC: pantalla, discos, puertos serie y paralelo, teclado, reloj de tiempo real, etc. Sin embargo, el acceso que ofrece es muy limitado y sin ninguna optimización.

  Linux no usa la Bios, ya que maneja directamente todos los dispositivos hardware, y así consigue una mayor eficiencia y salva las limitaciones que tiene la Bios. Sin embargo, Lilo se ejecuta antes de arrancar Linux y por eso sí que usa la Bios. Debido a esto, Lilo depende de la capacidad de la Bios.

  Por otro lado, la Bios permite ajustar diversos parámetros y opciones de la placa base, como son la Shadow RAM, modos APM, periféricos integrados, etc.

  Por último, la Bios también se encarga del arranque del ordenador. Realiza unos chequeos y pruebas, llamadas POST, para detectar ciertos errores críticos. Cuando termina, le pasa el control al IPL del disco de arranque por defecto.

1.5. Geometría de discos

  Los discos en general están formados por una serie de platos dispuestos uno encima de otro. Cada plato tiene dos caras, la superior y la inferior. Cada cara se divide en pistas y sectores. Las pistas de cada plato que ocupan la misma posición forman los cilindros. Los discos tienen una cabeza de lectura/escritura para cada cara de los platos.

Geometría de discos

  El número total de cilindros, cabezas y sectores depende de cada disco y es lo que se conoce como parámetros 3D, también llamados CHS (cilindros/cabezas/sectores). Cada sector tiene un tamaño estándar de 512 bytes, con lo que es fácil calcular la capacidad total del disco.

  Es sumamente importante el primer sector del disco, el que se encuentra en la primera cara de la primera pista, puesto que es donde se sitúa el MBR. Si se estropea este sector, el disco entero quedará inutilizado.

  Para poder manejar discos duros cada vez más grandes, los fabricantes introdujeron un nuevo modo de direccionamiento, llamado LBA, en el que se accede a los sectores a través de una dirección lineal. A pesar del nuevo modo de acceso LBA, hay todavía situaciones particulares en las que sigue siendo obligado trabajar con direcciones 3D.

1.6. Creación y modificación de particiones y unidades lógicas

  La creación de una partición consiste sólo en reservar el espacio en la tabla de partición. Para hacer esto hay muchos programas de diversas características.

  Por ejemplo, si vamos a crear una partición para MS-DOS o Windows 95/98, el método más común es usar su programa fdisk. De la misma manera, para crear particiones para Linux, normalmente se usa el fdisk de Linux.

  Según el programa que usemos para crear particiones, hemos de tener en cuenta que todas las particiones deben comenzar en un límite de pista. Esto nos evitará problemas de compatibilidad posteriores.

  Después de crear la partición hay que formatearla para instalar el sistema de archivos que se desee, FAT16 para MS-DOS, FAT32 para Windows 95/98, etc. Esto se puede hacer con diversos programas. Por ejemplo, para formatear particiones tipo FAT, el método más común es usar el format de MS-DOS o Windows 95/98. Para formatear particiones de Linux, el mkext2fs de Linux, y para formatear particiones Swap de Linux, el mkswap de Linux.

  Después de crear y formatear una partición, ya se puede usar. Lo mismo ocurre con las unidades lógicas. Primero hay que crear una partición extendida (si no existe), luego se crea la unidad lógica dentro de la partición extendida, y luego se formatea la unidad lógica. El hecho de volver a formatear una partición o unidad lógica ya formateada, significa que se borrará su contenido.

  Cuando se instala un OS, el programa de instalación permite crear y formatear las particiones que necesita, si no existe ninguna. En el caso del MS-DOS o Windows 95/98/NT, su programa fdisk es muy limitado y no da mucho control sobre las particiones, así que puede resultar mejor idea crear primero las particiones nosotros con otro programa e instalar después el OS.

  Es obligado en este apartado hablar del programa Partition Magic de PowerQuest. Este maravilloso programa, que se ejecuta bajo MS-DOS o Windows, permite manejar particiones y unidades lógicas de Windows y Linux con entera comodidad. Las crea, formatea, redimensiona, convierte, desplaza, une y chequea, todo de manera sencilla, automática y eficazmente, además de presentar una agradable interfaz gráfica. El único inconveniente es que no es gratis.

1.7. El problema de la visibilidad de particiones de Microsoft

  Los OS de Microsoft pueden dar problemas al arrancar (y al instalarse) cuando hay varias particiones primarias visibles de tipo FAT. Lo que puede pasar es que al arrancar el OS, se quede colgado y haya que rearrancar. Esto se produce por ejemplo si tenemos en el mismo disco duro dos particiones MS-DOS, o una MS-DOS y otra Windows 95, o dos Windows 95 ...

  Para solucionar este problema, lo que se hace es hacer visible la partición que se quiere arrancar y ocultar las otras. De esta forma no podremos acceder a las otras particiones pero nos aseguramos que no tendremos problemas al arrancar. De todas formas, si en un momento dado necesitamos hacer visibles varias particiones de Windows, podemos hacerlo. Sólo hay que evitar hacerlo de forma continuada para evitar cuelgues indeseados.

  Las particiones de Microsoft se ocultan simplemente cambiando su tipo. Por ejemplo, para ocultar una partición MS-DOS, cambiamos su tipo de FAT16 (0x06) a FAT16 oculta (0x16). Podemos notar que los tipos de particiones ocultas de Microsoft tienen el mismo identificador numérico que la partición visible sumando 0x10.

  Otra característica a tener en cuenta, es que cuando arranca un OS de Microsoft situado en una determinada partición, su flag de arranque ha de estar marcado. Esta es una necesidad que no tiene Linux.

  Para activar y desactivar el bit de arranque de las particiones, así como cambiar su tipo, se pueden usar varios programas, por ejemplo el fdisk de Linux. Sin embargo, lo que a nosotros nos interesa es hacer estas cosas automáticamente, de manera adecuada, en el momento del arranque, según el OS que decidamos arrancar. Como no podía ser menos, lo podemos hacer con Lilo.

2. Instalación de Lilo

  Para instalar Lilo hay que crear primero el archivo de configuración /etc/lilo.conf y después ejecutar como superusuario el comando:

lilo

  Hay programas como el linuxconf, que permiten crear el archivo de configuración de Lilo, pero la verdad es que una vez que se conoce el formato de este archivo, es más fácil, seguro, rápido y potente crearlo uno mismo a mano.

  Antes de instalar Lilo, podemos hacer una copia de seguridad de la zona que vamos a sobreescribir. Por ejemplo, para hacer una copia del MBR del primer disco IDE, ejecutamos el comando:

dd if=/dev/hda of=<archivo> bs=512 count=1

  Para restaurar el IPL salvado sólo tenemos que ejecutar el comando:

dd if=<archivo> of=/dev/hda bs=446 count=1

  También podemos instalar el IPL por defecto, desde MS-DOS, con el comando:

fdisk /mbr

  Después de cargarse Lilo en el arranque, mira si se encuentra activo BloqMay o BloqDesp, o si se ha pulsado Control, Alt o Shift, en cuyo caso muestra el boot prompt, desde el que se puede elegir el OS que se quiere arrancar. Para más información sobre este tema, véase el BootPrompt-HowTo.

3. Estructura general del archivo de configuración

Estructura general del archivo de configuración

  Como se ve en la figura, hay una primera parte de opciones globales y después tantas secciones como sistemas operativos queramos arrancar. Cada opción ocupará una línea en el archivo de configuración. Se consideran comentarios y por tanto se ignoran, todo lo que hay a partir del carácter # hasta el final de la línea actual.

4. Opciones globales

boot=<device>
Lugar donde instalar Lilo. Por defecto se toma la partición donde está el actual sistema de archivos raíz de Linux.
linear
Usar direcciones lineales en lugar de 3D. Necesario en discos SCSI.
message=<file>
Imprime el archivo indicado al cargar Lilo. Este archivo debe ocupar menos de 65535 bytes. El carácter 0xff hace que se borre la pantalla.
timeout=<tsecs>
Décimas de segundo que espera Lilo la pulsación de una tecla antes de arrancar un OS. Por defecto se espera indefinidamente.
prompt
Fuerza la aparición del prompt de Lilo.
default=<name>
OS de arranque por defecto.

5. Definición de tipos de partición

  Esta opción global define tipos de partición. Esto sirve para poder ocultarlas y hacerlas visibles.

change-rules
Inicia la sección de definición de tipos de partición. Las demás opciones de esta sección han de comenzar al menos una columna más a la derecha.
reset
Elimina los tipos predefinidos.
type=<name> normal=<byte> hidden=<byte>
Se puede omitir el argumento normal o bien el hidden, en cuyo caso el otro se toma el mismo número con el quinto bit invertido.

  Por cada tipo de partición que se quiera definir, se tendrá una línea type. Por defecto están predefinidos los siguientes tipos de partición:

type=DOS12 normal=0x01
type=DOS16_small normal=0x04
type=DOS16_big hidden=0x16

6. Secciones Linux o de otros OS

  La estructura general de estas secciones es la siguiente:

Secciones de OS

  Como se ve en la figura, primero está el encabezado que define si es una imagen Linux o bien otro OS. Después viene una parte de opciones comunes y después una última parte de opciones particulares. Todas las opciones comunes y particulares han de comenzar al menos una columna más a la derecha que donde comienza la línea de inicio de la sección.

7. Opciones comunes

label=<name>
Define el nombre de la imagen Linux o del OS. Por defecto se usa el nombre del archivo principal de la imagen Linux o del OS.
alias=<name>
Define un segundo nombre para la imagen Linux o el OS.
single-key
Permite arrancar la imagen Linux o el OS mediante la pulsación de una tecla. Para ello, o bien la etiqueta, o bien su posible alias, o ambos, han de ser de sólo una letra.
password=<passwd>
Define una clave de acceso.

  Excepto las opciones label y alias, el resto pueden colocarse junto a las opciones generales, pasando entonces a ser el valor por defecto en todas las imágenes Linux y OS.

8. Opciones particulares de imágenes Linux

root=<device>
Especifica el dispositivo sobre el que montar el sistema de ficheros raíz.
read-only
Opción recomendable para uso normal.
append=<cadena>
Añade la cadena indicada a la línea de parámetros que se pasa al kernel en el arranque.

  Estas opciones pueden colocarse junto a las opciones generales, pasando entonces a ser el valor por defecto en todas las imágenes Linux.

9. Opciones particulares de otros OS

  Las siguientes opciones sirven para poder arrancar desde otro disco duro, como podemos ver en el último ejemplo que expongo más adelante.

table=<device>
Especifica el dispositivo que contiene la tabla de partición del OS que se quiere arrancar.
map-drive=<bios-code> to=<new-bios-code<
Remapea los discos en la Bios, permitiendo arrancar desde otros discos distintos del de por defecto.

10. Manipulación de la tabla de partición

  Las siguientes opciones sirven para modificar los tipos de las particiones y sus flag de arranque.

change
Inicia la sección de modificación de la tabla de partición. Las demás opciones de esta sección han de comenzar al menos una columna más a la derecha.
partition=<device>
Indica la partición a modificar.
activate | deactivate
Activa o desactiva el flag de arranque de la partición.
set=nombre_estado
Establece el tipo de la partición al indicado por nombre y estado, según los tipos definidos. estado puede ser normal o hidden. Así por ejemplo, set=DOS16_big_normal hace visible una partición DOS (FAT16) y set=DOS16_big_hidden la oculta.

  Por cada partición que se quiera modificar se añaden grupos partition/activate/deactivate/set.

10. Ejemplos

1) Tengo un disco duro con sólo Linux, en la partición /dev/hda1, y la imagen del núcleo es /boot/vmlinuz. Queremos instalar Lilo como gestor de arranque principal.
boot=/dev/hda		# Instalar Lilo en el MBR del primer disco IDE
image=/boot/vmlinuz 	# Imagen del núcleo de Linux
 root=/dev/hda1 	# Partición donde está el sistema raíz de Linux
 read-only		# Opción recomendable para particiones Linux ext2
2) Tengo Linux en la partición primaria /dev/hda2. Quiero instalar Lilo en el sector de arranque de esa partición porque uso otro gestor de arranque principal. La imagen del kernel es /boot/vmlinuz.
image=/boot/vmlinuz 	# Imagen del núcleo de Linux
 root=/dev/hda2 	# Partición del sistema raíz y donde se va a instalar Lilo
 read-only		# Opción recomendable para particiones Linux ext2
3) Tengo el sistema raíz de Linux en la unidad lógica /dev/hda5. Quiero instalar Lilo en el sector de arranque de la partición extendida, que es la /dev/hda4, porque uso otro gestor de arranque principal.
boot=/dev/hda4		# Instalar Lilo en el sector de arranque de la partición extendida
image=/boot/vmlinuz 	# Imagen del núcleo de Linux
 root=/dev/hda5 	# Unidad lógica donde está el sistema raíz de Linux
 read-only		# Opción recomendable para particiones Linux ext2
4) Tengo un disco duro con Ms-Dos en /dev/hda1, Windows 95/98 con FAT32 en /dev/hda2, NT en /dev/hda3 y Linux en la unidad lógica /dev/hda5 de la partición extendida /dev/hda4. Además tengo un segundo disco duro con Ms-Dos o Windows 95/98. Quiero usar Lilo como gestor de arranque principal y se imprimirá un mensaje inicial.
# Opciones globales

boot=/dev/hda		# Instalar Lilo en el MBR del primer disco IDE
message=/boot/message	# Mensaje inicial
single-key		# Permitir seleccionar el OS con la pulsación de una sola tecla
change-rules		# Inicio de definiciones de tipos de partición
 type=DOS32 normal=0x0b # Definición del tipo de partición FAT32
 type=NTFS normal=0x07	# Definición del tipo de partición NTFS

# Sección de la imagen de Linux

image=/boot/vmlinuz 	# Imagen del núcleo de Linux
 label=linux		# Nombre identificativo
 alias=1		# Nombre alternativo
 root=/dev/hda5 	# Unidad lógica donde está el sistema raíz de Linux
 read-only		# Opción recomendable para particiones Linux ext2

# Sección para el Ms-Dos

other=/dev/hda1 	# Partición donde está el Ms-Dos
 label=dos		# Nombre identificativo
 alias=2		# Nombre alternativo
 table=/dev/hda 	# Opción necesaria para los OS de Microsoft
 change 		# Inicio de la sección de modificación del MBR
  partition=/dev/hda1	# Modificar la partición Ms-Dos
   activate 		# Activar el flag de arranque
   set DOS16_big_normal # Hacer visible la partición
  partition=/dev/hda2	# Modificar la partición Win 95/98
   deactivate		# Desactivar el flag de arranque
   set DOS32_hidden 	# Ocultar la partición
  partition=/dev/hda3	# Modificar la partición del NT
   deactivate		# Desactivar el flag de arranque
   set NTFS_hidden	# Ocultar la partición

# Sección para el Win 95/98

other=/dev/hda2 	# Partición donde está el Win 95/98
 label=win		# Nombre identificativo
 alias=3		# Nombre alternativo
 table=/dev/hda 	# Opción necesaria para los OS de Microsoft
 change 		# Inicio de la sección de modificación del MBR
  partition=/dev/hda1	# Modificar la partición del Ms-Dos
   deactivate		# Desactivar el flag de arranque
   set DOS16_big_hidden # Ocultar la partición
  partition=/dev/hda2	# Modificar la partición del Win 95/98
   activate 		# Activar el flag de arranque
   set DOS32_normal 	# Hacer visible la partición
  partition=/dev/hda2	# Modificar la partición del NT
   deactivate		# Desactivar el flag de arranque
   set NTFS_hidden	# Ocultar la partición

# Sección para el NT

other=/dev/hda3 	# Partición donde está el NT
 label=nt		# Nombre identificativo
 alias=4		# Nombre alternativo
 table=/dev/hda 	# Opción necesaria para los OS de Microsoft
 change 		# Inicio de la sección de modificación del MBR
  partition=/dev/hda1	# Modificar la partición del Ms-Dos
   deactivate		# Desactivar el flag de arranque
   set DOS16_big_hidden # Ocultar la partición
  partition=/dev/hda2	# Modificar la partición del Win 95/98
   deactivate		# Desactivar el flag de arranque
   set DOS32_hidden 	# Ocultar la partición
  partition=/dev/hda2	# Modificar la partición del NT
   activate 		# Activar el flag de arranque
   set NTFS_normal	# Hacer visible la partición

# Sección para el otro disco duro

other=/dev/hdb1 	# Partición del segundo disco donde está el OS
 label=disco2		# Nombre identificativo
 alias=5		# Nombre alternativo
 table=/dev/hdb 	# Opción necesaria para los OS de Microsoft
 map-drive=0x80 	# Intercambia el primer y segundo disco en la Bios
  to=0x81		# para así poder arrancar del segundo disco
 map-drive=0x81 	# Entonces, para la Bios, el segundo disco será el
  to=0x80		# primero, y el primero será el segundo

12. Nota final

  Agradecimientos a toda la comunidad Linux por hacer posible este gran sueño. Entre todos conseguiremos el mejor sistema operativo.

  Para sugerencias o cualquier otra cosa, me podéis mandar un mail.


Anillo Linux en castellano

[Home | Lista | Siguiente | Previa | Aleatoria | Estadisticas ]


Última actualización: 1/12/2001  -  Eres el visitante número
Hosting by WebRing.