viernes, 12 de febrero de 2010

Espero tener en breve terminada la presentación de instalación de linux slackware, pero entre tanto hay que ir contando algunas cosillas. Por ejemplo, si hemos tenido la mala suerte de instalar un sistema linux en una única partición que ocupa por completo todo el espacio del único disco duro con el que contamos, y por alguna circunstancia necesitamos un area de intercambio swap para poder ejecutar una determinada aplicación, podemos salvar la situación realizandola en un fichero en lugar de una partición.
Lo primero que debemos hacer es crear un fichero con el tamaño que queramos asignar a la memoria de intercambio de nuestro equipo. Antiguamente se solia dar el doble del tamaño de la memoria principal, pero con el tamaño actual de esta memoria podria ser excesivo. Con dar el mismo tamaño será más que suficiente. Para crear el fichero, utilizaremos el comando dd. Suponiendo que queremos crear un fichero de 1GB dentro del directorio /root, escribimos el siguiente comando:

dd if=/dev/zero of=/root/memoriaswap bs=1M count=1024

tras esta operación, en la que hemos creado un fichero de 1024 MegaBytes (1GB), debemos dar formato al fichero para que pueda ser utilizado como memoria swap. Si, si, habeis leido bién, a un fichero se le puede dar un sistema de ficheros. Para ello ejecutamos el siguiente comando:

mkswap memoriaswap.

Ya tenemos el sistema de ficheros preparado. A continuación activamos el area swap ejecutando la siguiente orden:


swapon memoriaswap.

Por ultimo ejecutamos el comando free para comprobar que realmente ha funcionado.
Si queremos que el area de intercambio swap se monte automaticamente al arrancar el equipo, debemos añadir la siguiente línea en el fichero /etc/fstab

/root/memoriaswap swap swap defaults 0 0

En la siguiente imagen se muestra el proceso descrito anteriormente, pero con el area swap de 32MB.



A continuación una captura del fichero fstab con la entrada añadida al comienzo del fichero.

jueves, 4 de febrero de 2010

Hace poco que comence a trabajar como docente de informática, y desde el principio pude observar como es necesario contar con un entorno de trabajo que cumpla los siguientes requisitos:

-Control de los equipos de los alumnos desde el equipo del profesor.
-Poder activar y desactivar internet de los equipos de los alumnos.
-Poder compartir datos entre los equipos de la red de forma sencilla.

El primero de los requisitos es fundamental, poder monitorear lo que se esta haciendo en cada equipo, y poder bloquear el uso del equipo en caso no ser adecuado. Con este sistema funcionando se consigue que los alumnos vean a los equipos del aula como una herramienta de trabajo y no como un elemento de ocio.

La primera vez que probe una herramienta de este tipo, denominada netopschool, fue un desastre. La causa era que estaba instalada sobre un windows xp, en el que los alumnos eran administradores del equipo. Por lo tanto, en pocos días la herramienta no funcionaba en la mayoria de los equipos, ya sea por el firewall, por que la desinstalaran, o por que simplemente fallaba. Una solución hubiera sido que los equipos en los que no funcionaba no se utilizasen, y de esta manera los alumnos no se dedicarian a inutilizarla, pero a veces fallaba sin hacerla nada, por lo tanto no parecia una buena opción.

El problema estaba claro, los privilegios que los alumnos tenían en el equipo les permitian inutilizar la herramienta. Visto esto la solución es que los alumnos sean simples usuarios y la herramienta de control sea lanzada por el usuario administrador. Aqui hay otro problema, sin un directorio activo poco podiamos hacer con los permisos de usuario, hicimos varios remiendos que no dejaron de ser chapuzas para salir del paso, pero el sistema nunca llego a funcionar como queriamos.

Fue entonces cuando gracias a mis compañeros de trabajo conoci varias herramientas, que combinandolas adecuadamente, creaban el aula docente ideal.

Por un lado conoci linux slackware. Yo sabia algo de linux, pero tuve la suerte de coincidir con el Messi (le llamare así porque se que odia el barÇa tanto como a microsoft xP) de slackware del que aprendi practicamente todo lo que se de linux y que ire contando en este blog. Por otro lado, comence a probar la virtualización de maquinas con virtualbox de sun microsystem. Y por ultimo otro compañero me hablo sobre una aplicación llamada italc para el control de equipos en un aula.
Con toda esta información caida del cielo no tardo tiempo en surgir la idea:

Equipos de alumnos:
- Sistema operativo real: linux slackware, con un usuario para el alumnos, el italc corriendo como proceso de root.
- Sistema operativo virtual: los que necesitemos en función de la asignatura, todos implantados con virtualbox. De esta forma los alumnos son administradores en los sistemas virtuales, pero siempre tendremos el real bajo nuestro control.
Equipo de profesor:
- Sistema operativo real: linux slackware, con un usuario para cada profesor siendo del grupo root, el italc corriendo como proceso de root. De esta manera es el unico equipo en el que los usuarios (profesores) pueden manejar a los demas equipos de la red.
-Sistema operativo virtual: los que necesitemos en función de la asignatura, todos implantados con virtualbox.
-Enrutador: El ordenador del profesor debe funcionar como enrutador entre los equipos del aula y la red del centro. De esta manera, podemos administrar el acceso a internet.

Pues con esta idea comence el presente curso, y en este blog ire plasmando todo el trabajo realizado, impresiones, problemas encontrados... vamos, que va a ser la documentación del proyecto de aula para que cualquiera la pueda utilizar e implantar en su centro.

miércoles, 3 de febrero de 2010

El primer articulo lo voy a dedicar a la eliminación de un gestor de arranque. Hace poco tiempo me tope con un equipo donde estaba instalado el gestor de arranque gag (argg) y queria eliminarlo para instalar el lilo. La verdad es que con reinstalar el lilo a través de un live cd seria suficiente (este tema ya le tratare en otro articulo), pero queria ver si se podia eliminar de otra manera, como el antiguo format mbr x). La solución pasa por utilizar el comando dd, o como lo llama mi gran amigo y mentor en linux, "la motosierra". La mbr es el sector 0 del disco duro, es un sector de 512 bytes donde se incluye el gestor de arranque y la tabla de particiones (¡ Todo lo que entra en un sector¡ un poco más y da para meter un windows 7). En realidad, el gestor de arranque se ubica en los primeros 446 bytes del sector, de manera que solo necesitamos borrar esa información para borrar el gestor. El gestor de arranque simplemente pasa el control a la partición activa, aunque existen gestores más elaborados que pasan el control a un programa instalado en otros sectores. Esto que parece tan facil, si se piensa bien no lo es tanto, ya que no es un fichero de ninguna partición lo que queremos borrar. Acceder para borrar una ubicación física del disco no seria posible si no fuese por el comando dd.
El comando dd realiza una copia exacta entre ficheros, pudiendo indicarle la longitud de la copia. Ok...¿y esto para que me sirve? A primera vista de poco, pero si tenemos en cuenta que en linux un disco duro se trata como un fichero de bloques la cosa cambia. La sintaxis de dd es la siguiente:
dd if=nombredelorigen of=nombredeldestino
¿sencillo no?. De manera que podriamos hacer lo siguiente suponiendo que nuestro disco es sda

dd if=/dev/zero of=/dev/sda

stop¡¡¡ sencillo si que es.. pero con este comando nos cargamos la mbr, con la tabla de particiones incluidas, y de paso escribimos todo el disco con ceros para no poder recuperar nada de información. Vamos, que hay que escribir con ceros un poquito del disco, no todo. Para borrar solo los primeros 446 haremos lo siguiente:

dd if=/dev/zero of=/dev/sda bs=1 count=446

bs indica el tamaño de bloque, en nuestro caso 1 byte
count indica la cantidad de bloques, en nuestro caso 446
Otra manera de conseguir lo mismo seria con bs=446 y count=1 , asi tambien borrariamos solamente los primeros 446 bytes del disco.
Con esto borramos el gestor de arranque dejando la tabla de particiones intactas. Bien, una vez hecho esto no podemos arrancar nuestro equipo desde el disco duro, pero mantenemos la tabla de particiones intacta. Ahora para arrancar tenemos dos opciones:
1º) Con el cd de instalación de Windows dar a la opción de reparar y ejecutar el comando fixmbr. Con esto reinstalamos el cargador normal de la mbr que arrancara desde la partición activa del disco duro.
2º) Instalar un gestor de arranque como lilo o grub que permita arrancar desde diferentes particiones diferentes sistemas operativos.

Total, que lo explicado aqui es una manera de cargarse el sector de arranque de la mbr para luego repararlo. Si, es una tonteria, pero ayuda a entender mejor como funciona el arranque.
A empezar un blog de verdad¡¡. Hace casi un año que abri este blog en un curso al que asistí para rellenar horas de formación. A parte de estar de cachondeo con los compañeros en ese curso, en algún rato que nos dio por hacer algo abrimos un blog que posteriormente dejamos en el olvido. Hasta hoy¡, me he propuesto hacer un blog en condiciones, ya que asesorado por compañeros de trabajo respecto a que nunca documento nada de lo que hago (como se suele decir "lo tengo todo en la cabeza") me he propuesto ir anotando aqui todas las cosas interesantes que haga o vea por la red, principalmente sobre temas informáticos.. aunque no descarto alguna otra cosilla.

P.D. Espero que esto funcione y no lo deje en el olvido¡