<?xml version="1.0" encoding="ISO-8859-1"?><!-- generator="FeedCreator 1.7.2-ppt (info@mypapit.net)" --><rss version="2.0">    <channel>        <title>e-hurtado, en las marañas de la web</title>        <description><![CDATA[Erik es un tecnico de television y estudiante de Ing. Informatica, se dedica a estudiar la magia negra de los sistemas unix y a investigar de politica.]]></description>        <link>http://e-hurtado.blogcindario.com/</link>        <lastBuildDate>Sat, 14 Aug 2010 20:33:11 +0100</lastBuildDate>        <generator>FeedCreator 1.7.2-ppt (info@mypapit.net)</generator>        <item>            <title>Pagina en nuevo servidor linux</title>            <link>http://e-hurtado.blogcindario.com/2008/03/00011-pagina-en-nuevo-servidor-linux.html</link>            <description><![CDATA[ahora en una nueva maquina y con renovados brios, un linux limpiesito y administrado por mi, nuevo servidor<br /><br /><a href="http://blog.paho-vb.cl" title="http://blog.paho-vb.cl" target="_self">http://blog.paho-vb.cl</a>]]></description>            <pubDate>Mon, 03 Mar 2008 22:11:55 +0100</pubDate>        </item>        <item>            <title>Open archmage</title>            <link>http://e-hurtado.blogcindario.com/2006/10/00010-open-archmage.html</link>            <description><![CDATA[Bueno, ahora me he embarcado en un nuevo proyecto, en <a href="http://sourceforge.net/projects/openarchmage">sourceforge</a> estamos desarrollando una alternativa open source para archmage, los invitamos a unirse a este nuevo proyecto.]]></description>            <pubDate>Thu, 12 Oct 2006 00:40:54 +0100</pubDate>        </item>        <item>            <title>Averiguar que proceso esta escuchando en un puerto determinado</title>            <link>http://e-hurtado.blogcindario.com/2006/09/00009-averiguar-que-proceso-esta-escuchando-en-un-puerto-determinado.html</link>            <description><![CDATA[Hoy me he encontrado con una salida extraña en netstat -l luego de instalar postgresql para averiguar si habia quedado funcionando el demonio<br /><tt><br />pluton:~# netstat -l<br />Active Internet connections (only servers)<br />Proto Recv-Q Send-Q Local Address           Foreign Address         State<br />tcp        0      0 *:3813                  *:*                     LISTEN<br />tcp        0      0 localhost.localdo:mysql *:*                     LISTEN<br />tcp        0      0 *:sunrpc                *:*                     LISTEN<br />tcp        0      0 *:auth                  *:*                     LISTEN<br />tcp        0      0 localhost.lo:postgresql *:*                     LISTEN<br />tcp        0      0 localhost.localdom:smtp *:*                     LISTEN<br />tcp        0      0 localhost.localdoma:606 *:*                     LISTEN<br />tcp6       0      0 *:www                   *:*                     LISTEN<br />tcp6       0      0 *:ssh                   *:*                     LISTEN<br />udp        0      0 *:1029                  *:*<br />udp        0      0 *:991                   *:*<br />udp        0      0 *:sunrpc                *:*<br /></tt><br />el puerto 1029 y el 991 no me preocuparon ya que sabia que son ejecutados por rpc, pero el puerto 3813 no lo habia visto nunca abierto, asi q me puse a investigar, y eureka!!!!!! en el man de netstat ponia algo util(nunca me termino de sorprender de la potencia de los comandos unix<br /><tt><br />pluton:~# netstat -nlp --inet<br />Active Internet connections (only servers)<br />Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name<br />tcp        0      0 0.0.0.0:3813            0.0.0.0:*               LISTEN     9295/rpc.statd<br />tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     18097/mysqld<br />tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     4447/portmap<br />tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN     5032/inetd<br />tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     20009/postmaster<br />tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     9665/exim4<br />tcp        0      0 127.0.0.1:606           0.0.0.0:*               LISTEN     5094/famd<br />udp        0      0 0.0.0.0:1029            0.0.0.0:*                          9295/rpc.statd<br />udp        0      0 0.0.0.0:991             0.0.0.0:*                          9295/rpc.statd<br />udp        0      0 0.0.0.0:111             0.0.0.0:*                          4447/portmap<br /></tt><br />con esto ya veo que el puerto 3813 es un puerto abierto por RPC asi que me puedo quedar trankilo.<br /><br />Tambien se puede agregar un grep en la forma <tt>netstat -nlp --inet | grep -w 80</tt> La primera parte de la instrucción, netstat -nlp --inet, imprime las conexiones disponibles en formato numérico que estén escuchando (LISTEN), indicando los identificadores de proceso, e incluyendo únicamente lo que corresponda a puertos udp, tcp y raw. En caso de querer obtener tanto los sockets que estén en “listening” como los “non-listening”, en vez del parámetro l utilizaríamos a.]]></description>            <pubDate>Tue, 26 Sep 2006 05:33:10 +0100</pubDate>        </item>        <item>            <title>Investigacion preliminar contraseñas de un solo uso.</title>            <link>http://e-hurtado.blogcindario.com/2006/09/00008-investigacion-preliminar-contrasenas-de-un-solo-uso.html</link>            <description><![CDATA[INTRODUCCIÓN<br /><br />El constante crecimiento de las tecnologías de la información, hacen que cada día que pasa los usuarios de sistemas informáticos se sientan menos protegidos con respecto a información crucial, de índole personal e índole profesional, axial como empresarial.<br /><br />Es cierto que disponer de información, a toda hora del día y en el lugar que nos encontremos, es de suma importancia y validez, pero nos lleva a pensar, ¿Qué pasaría si esa información cayera en manos equivocadas?, de hecho ya ha pasado, y la cantidad de problemas que esto ha traído consigo ha sido devastador, solo es cosa de buscar un caso.<br /><br />El caso de Inverlink, donde una secretaria ingresa en forma no autorizada al correo de un alto ejecutivo, sustrayendo información de suma importancia, y entregándosela a otra compañía.<br /><br />Sin mas duda, es posible que el lector no maneje información tan crucial y de suma importancia, como en el caso anteriormente citado, pero que pasaría, si el día de mañana, se ocupara un puesto de confianza, en donde si se filtrara información podría llegar ocurrir un problema de esta índole, o si una persona cercana hiciera mal uso de nuestras claves(Password), y realizara transferencias de fondos, de una cuenta personal bancaria, ¿o de una cuenta de la empresa en la que trabajamos, y contáramos con plena confianza de la gerencia?.<br /><br />Sin más dudas, nos encontraríamos en grandes aprietos, y problemas.<br /><br />Es por ello que debemos dar las gracias, a la tecnología y el desarrollo que hay detrás, por que nos brinda todo lo mejor de si para nuestro bienestar. Desde las compras del supermercados. Hasta temas mucho mas complicados, como los grandes negocios.<br /><br />Temática a investigar:<br /><br />•	Problemas de seguridad:<br />o	Local(red intranet)<br />o	Global(red Internet)<br /><br />Local<br /><br />Hoy la tendencia es centralizar la información, para que esta este disponible, 24 horas los 365 días del año. Esta tendencia no es mala, pero las personas y las intenciones que estas puedan tener son las peligrosas,  es por esto que no toda la información debe estar disponible para toda la organización, sino que solo la que cada sección de esta necesita manejar.<br /><br />Basta que una persona no debida, tenga acceso a partes criticas de la información (como podrían ser listados de proveedores y clientes),  para que la seguridad de la información se vea mermada en gran medida. Expondríamos a la empresa ya que la filtración de esta información,  podría tener graves consecuencias, incluso extremos como la quiebra y cierre de la misma.<br /><br /> <br />Global<br /><br />El uso de la red Internet, es en una palabra “maravillosa”,  pero deja al descubierto problemas de seguridad al alcance de cualquier persona con los conocimientos suficientes, como para aprovecharse de ellos. Esta demás nombrar casos, ya que al lector se le vendrán a la mente, no uno, sino miles de casos de violaciones de seguridad que han sucedido.<br /><br />El constante crecimiento de la red, hace que cada día, mas y mas personas, se conecten, y hagan uso de las tecnologías de la información, debido a los bajos costos actuales de conexión y a las grandes bondades que aporta.<br /><br />Los riesgos<br /><br />En más de una ocasión, en charlas informales con nuestros amigos y conocidos,  revelamos información confidencial, además, con el crecimiento de Internet, y los salones de Chat, nos encontramos con gente inescrupulosa, que se valen de la técnica de la ingeniería social, para que nosotros mismos revelemos en una conversación, datos personales y claves de acceso.<br /><br />En el ambiente empresarial o quizás en un ámbito un poco mas serio, donde se maneja información de índole gerencial o de importancia personal, NO revelaríamos información que nos pudiera comprometer, pero que pasaría que sin darnos cuenta, entregamos información confidencial, por ejemplo, en la pagina web de nuestro banco, y por desgracia esta ha sido hackeada, mediante el método del “phishing” (técnica utilizada por crackers, con el fin de obtener información).<br /><br /><br /> <br />&#61553;	METODOLOGÍA<br /><br />En la sección anterior, se hablo sobre los problemas que traen los descuidos de la seguridad, en esta sección explicaremos como funciona un dispositivo de seguridad, conocido como Digipass orientado al usuario final, el porque de la elección de este dispositivo, y la forma en que se espera comercializar este equipo.<br /><br />El Digipass<br /><br />Es un dispositivo de hardware, medianamente pequeño, y cómodo, del tamaño de un llavero, fácil de transportar, que a través de la pulsación de su único botón, entrega una clave de seguridad, única, que solo es válida, por un tiempo determinado, un minuto.<br /><br />Ahora cabe la pregunta, ¿Cómo puede un dispositivo tan pequeño, entregarme una clave de seguridad?<br /><br />El Digipass, al ser presionado su único botón, genera una clave numérica, que rota a través del tiempo como variable principal, mas fácil de entender, si definimos las variables de las que se vale, para generar dicho numero.<br />•	Año<br />•	Mes<br />•	Día<br />•	Numero de la semana<br />•	Numero día de la semana<br />•	Numero del día del año<br />•	Hora<br />•	Minuto<br /><br />Si tomamos estas variables, y solamente las sumamos, obtendremos un número, que se incrementa en el tiempo, a medida que pasan los minutos.<br /><br />Ejemplo de descomposición de fecha:<br /><br /><br /><br /><br /><br /><br /><br />Miércoles 19 de enero del 2005<br />10:20 Horas.<br /><br />-	Año					=	2005<br />-	Mes 					=	1<br />-	Día					=	19<br />-	Número de Semana		=	4<br />-	Número de día de la Semana	=	3<br />-	Número del Día del Año		=	19<br />-	Hora					=	10<br />-	Minuto 				=	20<br /><br />Nos daría como resultado:<br /><br />Año + Mes + Día + Número de Semana + Número de Día de la Semana + <br />2005 +  1    +   19  +               4                +                         3                      +<br />Número del Día del Año + Hora + Minuto =	 Clave de Seguridad<br />                    19                +   10  +    20     =	               2081<br />Y así sucesivamente, obviamente en el algoritmo final se utilizan otras variables o simplemente se suman números mas elevados, se dividen, multiplican, restan, etc. Entre si, y se obtiene cada vez un numero distinto, mas elevado, y lo que es mas importante mas difícil de predecir que el del ejemplo.<br /><br />El resultado de esto es que dicho numero nos sirve como segunda password que valida a la primera.]]></description>            <pubDate>Thu, 21 Sep 2006 01:30:34 +0100</pubDate>        </item>        <item>            <title>Disponible Crack para television digital de Telefonica</title>            <link>http://e-hurtado.blogcindario.com/2006/09/00007-disponible-crack-para-television-digital-de-telefonica.html</link>            <description><![CDATA[Entrando a ver las caracteristicas del servicio de TV satelital de telefonica, y mediante una pequeña busqueda en internet, me entere que su sistema de encriptación, nagravision 2 ya ha sido crackeado.]]></description>            <pubDate>Thu, 14 Sep 2006 19:01:35 +0100</pubDate>        </item>        <item>            <title>Desarrollo de prototipo de contraseñas de un solo uso</title>            <link>http://e-hurtado.blogcindario.com/2006/09/00006-desarrollo-de-prototipo-de-contrasenas-de-un-solo-uso.html</link>            <description><![CDATA[Bueno, habia tenido algo botado esto, les cuento que comenzare un desarrollo de un sistema de contraseñas de un solo uso(para segurizar sistemas) como prototipo, esto consistira en una placa electronica(conectada al puerto paralelo del pc mientras este en fase de prototipo) que nos dara una segunda contraseña(valida solo 1 vez y por un tiempo limitado) para ingresar al sistema, la idea es afinar los algoritmos para la creacion y validacion de la contraseña y en un futuro poder lograr que esta contraseña sea completamente independiente de la conexion con el computador/sistema que estamos segurizando, estare posteando los avances del proyecto.]]></description>            <pubDate>Sun, 10 Sep 2006 23:42:22 +0100</pubDate>        </item>        <item>            <title>Mini Manual de grub</title>            <link>http://e-hurtado.blogcindario.com/2006/06/00005-mini-manual-de-grub.html</link>            <description><![CDATA[TUTORIAL DE GRUB<br /><br />	Imagino que la mayoria de vosotros estara familiarizado con lo que es un cargador de arranque y con la terminologia y conceptos que le rodean, pero para hacer este documento mas accesible a iniciados en la materia intentare empezar desde cero. Espero no aburriros con lo que ya sabeis <img style="border:0px;width:15px;height:15px;padding:0px;margin:0px;background:none;"  src="http://miarroba.st/017/caretos/smile.gif" alt="Sonrisa" title="Sonrisa" />.<br /><br />1. HISTORIA: ORIGEN DE LOS "BOOT LOADER"<br /><br />	Antes que nada, hay que tener claro lo que es un cargador de arrangue (Boot loader) y entender su razón de ser. Para ello, repasemos la evolucion del arranque del S.O. hasta la aparicion de los cargadores de arranque. En cualquier ordenador, tras cargar BIOS, detectar hardware y decidir desde qué dispositivo se arrancará el equipo es necesario tomar el núcleo del sistema (que, recordemos, es un programa más) y cargarlo en memoria. El problema es que el núcleo estará alojado en algún sistema de ficheros (ext2, ext3, NTFS, FAT...), por lo que si queremos que BIOS lo cargue tendriamos que dotarla de soporte para leer todo tipo de sistemas de ficheros, lo cual es impracticable. La solucion fue crear un registro especial en el disco duro, el MBR (Master Boot Record, Registro de Arranque Maestro), que tenia un tamanyo limitado pero suficiente para meter el nucleo del sistema. Conforme los SS.OO. fueron creciendo en complejidad crecieron también en tamaño, y el MBR se quedó pequeño. Así, en lugar de escribir el núcleo del sistema en el MBR, se pasó a escribir un pequeño programa con capacidad para explorar el sistema de ficheros y cargar el núcleo en memoria. El cargador de arranque había nacido.<br /><br />	Con el paso del tiempo, este pequenyo programa fue evolucionando y adquiriendo mayores prestaciones, como opciones de multi-arranque o solicitud de password, llegando a las prestaciones que hoy presentan cargadores tales como GRUB.<br /><br />2. PRESENTACION DE GRUB<br /><br />	El cargador de arranque mas extendido por la comunidad Linux es LiLo (Linux Loader), por lo que recurrire a el para hacer comparaciones. LiLo es, como su nombre indica, un cargador de Linux que puede explorar cualquier sistema de ficheros tipico de Linux, tomar el nucleo y cargarlo en memoria; sin embargo, no puede cargar otros SS.OO. como Hasefroch, por lo que tiene que pasar el testigo a un segundo cargador capaz de ello, normalmente alojado en la misma particion que el sistema a cargar. Aqui encontramos la primera diferencia con GRUB: mientras LiLo solo puede cargar de forma nativa el sistema Linux, GRUB puede explorar y cargar todo sistema cuya especificacion de arranque sea libre, como FreeBSD o GNU/Hurd (entre otros), aunque sigue precisando de un segundo cargador para sistemas privativos, como Hasefroch o Mac OS. Si bien es cierto que la mayoria de nostros no hacemos uso de esta caracteristica, ya que solo tenemos Linux y tal vez Hasefroch, no deja de ser un punto a considerar a la hora de elegir el cargador de arranque.<br /><br />	Otro punto importante es el funcionamiento basico de GRUB. Mientras el nucleo de LiLo esta en lilo.conf, su archivo de configuracion, GRUB concentra su accion en el mismo programa, una shell con un conjunto de comandos que incluyen exploracion y busqueda de ficheros y ordenes para la carga de sistemas. Para los que no les guste la shell, GRUB permite la edicion de un archivo de configuracion con el que crear un menu de arranque de forma sencilla (y para mi gusto mejor que el de LiLo), adquiriendo las mismas prestaciones que aquel. Los principales comandos de la shell asi como la creacion del menu se trataran en el siguiente capitulo.<br /><br />	Uno de los puntos mas importantes en el funcionamiento de GRUB es el sistema que utiliza para nombrar los dispositivos, ligeramente distinto al "/dev/hda3" que solemos ver. Para empezar, todo dispositivo, ya sea disco entero o particion, se expresa encerrado entre parentesis; para acceder a discos flexibles se utiliza las siglas "fd" (floppy disk), mientras que para acceder a discos duros se usa "hd" (hard disk). Decir tiene que GRUB no hace distincion entre un disco IDE y un SCSI, por lo que ambos se direccionan con hd.<br /><br />	Una vez indicado el tipo de dispositivo (disco duro o flexible) hay que indicar de que dispositivo estamos hablando. Para ello, GRUB numera los dispositivos siguiendo un orden analogo al a,b,c,d de Linux, aunque empezando desde cero (!!). El orden habitual numera los discos IDE antes que los SCSI (a no ser que se intercambie el orden de arranque en la BIOS), y comienza a numerar por el maestro del puerto IDE. Asi, algunos ejemplos de indicacion de dispositivos son:<br /><br />		(hd0)	Disco maestro en el puerto IDE 1<br />		(fd)	Disco flexible<br />		(hd5)	Sexto disco duro, presumiblemente SCSI<br /><br />	Para acceder a una particion solo tenemos que anyadir el numero de particion en la indicacion de dispositivo, separando con una coma `,` y sin incluir espacios. Tambien las particiones se numeran desde cero, como lo indica el siguiente ejemplo:<br /><br />		(hd0,3)	Cuarta particion en el primer disco duro<br /><br />	Es importante el hecho de que GRUB siempre numera las particiones extendidas desde 4, independientemente de cuantas particiones primarias haya. De este modo, en un disco con una particion primaria y una extendida, los accesos serian (hdx,0) y (hdx,4) respectivamente (donde x es el numero de disco).<br /><br />	Dado que GRUB puede acceder tambien a particiones de FreeBSD tambien tiene un modo de acceder a los slices de su sistema de archivos, sin embargo, no tengo mucha idea en este campo, asi que lo dejo para alguien mas ducho en la materia.<br /><br />	Una vez seleccionada una particion, podemos meternos en el sistema de archivos para buscar el nucleo del sistema o cualquier otro archivo que necesitemos, suponiendo que el sistema en concreto este soportado por GRUB; en teoria, todos los sistemas libres son soportados, personalmente he probado con exito ext2 y reiser, mientras que no pudo con NTFS. La forma de acceder un fichero concreto es indicado la ruta completa justo despues del nombre de particion, sin ningun espacio (salvo los que esten en los nombres de ruta). Asi, la siguiente linea accede al nucleo de un sistema Linux presente en la segunda particion extendida del tercer disco duro.<br /><br />		(hd2,5)/boot/vmlinuz<br /><br />	Para facilitar su uso, la shell de GRUB dispone de una herramienta de autocompletado analoga a la de la bash, con lo que pulsando Tabulador nos completara el comando, particion o archivo o nos mostrara una lista de opciones posibles en caso de ambiguedad.<br /><br />	Una vez conocidas las capacidades y el funcionamiento basico de GRUB podemos empezar a trastear con el, que ya iba siendo hora... <br /><br />3. PRIMERA APROXIMACION<br /><br />3.1. Instalando GRUB<br /><br />	Obviamente, lo primero para instalar GRUB es descargarlo y compilarlo <img style="border:0px;width:15px;height:15px;padding:0px;margin:0px;background:none;"  src="http://miarroba.st/017/caretos/smile.gif" alt="Sonrisa" title="Sonrisa" />. Para ello, podeis acceder al sitio oficial del proyecto GRUB[1]. Una vez hemos compilado los binarios necesarios, tenemos que decidir donde instalaremos GRUB y que metodo de instalacion usaremos. Los lugares posibles para instalarlo son un disquete, el MBR o el primer registro de la particion; la primera opcione es recomendable hacerla siempre, de forma que tendremos un cargador GRUB disponible en caso de desastre, la segunda es la mas comoda (y tipica), y en la tercera necesitaremos de otro cargador en el MBR que llame a este (otro GRUB? <img style="border:0px;width:16px;height:16px;padding:0px;margin:0px;background:none;"  src="http://miarroba.st/017/caretos/wink.gif" alt="Guiño" title="Guiño" />).<br /><br />	En cuanto a los modos de instalacion, podemos usar el script automatizado grub-install o podemos hacer una instalacion a mano. Personalmente he probado ambos modos y, aunque el script automatizado me funciono perfectamente, sigo prefiriendo el modo manual; de hecho, en el propio manual de GRUB desaconsejan utilizar el script.<br /><br />	Instalar mediante script es harto sencillo, solo necesitas poner "grub-install <dispositivo>", aunque creo que solo vale para discos duros. El dispositivo puede ser un disco duro (con lo que se instalara en su MBR) o una particion, ademas, al llamar este comando desde la shell de Linux, podemos utilizar tanto la nomenclatura hda como la de GRUB (si utilizas la de GRUB acuerdate de escapar los parentesis). Para instalar GRUB en un disquete solo tenemos que copiar los archivos stage1 y stage2 en el primer y segundo bloques del disquete, respectivamente; para hacer esto basta con ejecutar:<br /><br />		dd if=(...)/stage1 of=/dev/fd0 bs=512 count=1<br />		dd if=(...)/stage2 of=/dev/fd0 bs=512 seek=1<br /><br />	Para facilitar esta tarea, Knoppix incluye un script llamado grub-floppy que automatiza esta tarea haciendo unas cuantas comprobaciones adicionales; adjunto dicho script para quien pueda serle util.<br /><br />	En cuanto a la instalacion manual, primeramente necesitamos crear un disco de arranque con GRUB del modo que se ha descrito. Tras ello, tenemos que copiar los archivos stage1, stage2 y *stage1_5 a /boot/grub (creando el directorio si fuera necesario). Tras esto, reiniciamos con el disquete de arranque y llegamos a nuestro primer contacto con la shell de GRUB. Los principales comandos los ire explicando segun se vayan necesitando, para un listado completo aconsejo acudir al manual[2].<br /><br />	Lo primero que tenemos que hacer es indicarle a GRUB cual es su particion raiz, es decir, donde estan los archivos base de GRUB. Esta particion no es necesariamente la particion raiz del sistema, sino simplemente aquella donde se encuentra el directorio /boot/grub. Si no nos acordamos o si el primer contacto con GRUB nos conunde, podemos utilizar el comando find para buscar alguno de los archivos de GRUB y asi localizar la particion:<br /><br />		find /boot/grub/stage1<br /><br />	Cuando ya sabemos cual es la particion de GRUB, lo indicamos mediante el comando root:<br /><br />		root (hdx,y)	Substituyendo x e y<br /><br />	Por ultimo, con el comando setup le indicaremos donde queremos que instale el cargador, pudiendo ser en el MBR o en una particion:<br /><br />		setup (hd0)	Lo instala en el MBR del primer disco<br />		setup (hd1,2)	Lo instala en la tercera particion del segundo disco<br /><br />	Hayamos escogido el camino que sea, ya tenemos GRUB en el lugar deseado. Ahora tenemos que ver que hacer en la shell de GRUB para cargar un sistema u otro.<br /><br />3.2. Cargando sistemas<br /><br />	Antes que nada, decir que intentare hacer una explicacion de uso general para cualquier S.O. pero centrandome en Linux, al fin y al cabo, es el unico que he probado.<br /><br />	Hemos encendido el ordenador y ha llegado hasta la shell de GRUB, la cual esta esperando que le digamos lo que tiene que hacer. Las acciones necesarias son diferentes si cargamos directamente el nucleo (caso Linux) o llamamos a un segundo cargador (caso Hasefroc), cosa que llamamos cargador encadenado o chain-loader. Empezaremos por el primero que es el mas interesante.<br /><br />	Como hemos dicho antes, con el comando root le indicamos a GRUB la particion raiz donde explorar, por lo que es bastante comodo indicar con root la particion donde se encuentran los archivos del nucleo (tipicamente la de /boot), aunque no es obligatorio. Nuevamente, con el comando find podemos localizar dicha particion:<br /><br />		find /boot/vmlinuz	Nos dice que (hd0,4)<br />		root (hd0,4)<br /><br />	A continuacion hemos de indicarle la ubicacion del nucleo con el comando kernel. Este comando solo acepta un argumento, que es la ruta del nucleo, por lo que todo lo que pongamos despues seran los argumentos a pasar al propio kernel; esto es muy importante, ya que es el unico sitio donde podemos hacerlo.<br /><br />		kernel /boot/vmlinuz<br />		kernel (hd0,4)/boot/vmlinuz	--> Si no hubieramos hecho "root (hd0,4)"<br /><br />	Cada uno puede pasar al kernel los parametros que este acostumbrado a usar, pero lo que es absolutamente necesario es que le indiqueis la particion que sera raiz del sistema linux; si no lo haceis, no podra encontrar ni ejecutar el proceso INIT y os dara un "Kernel panic". Aqui tendremos que usar la notacion de Linux (o del S.O. que toque), asi, suponiendo que la particion raiz es /dev/hda5, la orden minima correcta es:<br /><br />		kernel /boot/vmlinuz root=/dev/hda5<br /><br />	Si acostumbrais a ejecutar initrd al iniciar Linux (lo mas probable) lo indicais ahora con el comando initrd (como veis bastante intuitivo):<br /><br />		initrd /boot/initrd.gz<br /><br />	Tras esto ya hemos indicado a GRUB todo lo que necesita saber para cargar Linux, por lo que procedemos al arranque con el comando boot (sin argumentos).<br /><br />	Arrancar un sistema mediante encadenamiento de cargador es aun mas sencillo. Lo primero es indicar la particion raiz del sistema pero sin montar dicha particion, cosa que hacemos con el comando rootnoverify <particion>, y lo segundo indicar que se va a hacer una carga encadenada. Esto se hace con el comando chainloader, al cual hay que indicarle donde esta el siguiente cargador. Para el caso de Hasefroch (el mas comun entre nosotros), el cargador suele estar en el primer sector de la particion, por lo que el argumeno "+1" es suficiente. Para otros sistemas puede ser necesario indicar la ruta del cargador en el sistema de ficheros, cosa que no conozco y me abstengo de mostrar ejemplos.<br /><br />		chainloader +1		Indica que debe usar un segundo cargador situado en el primer sector de la particion indicada <br />		chainloader (hd0,0)+1	Si no se indico particion<br /><br />	En ocasiones puede ser necesario activar la particion como arrancable (con makeactive) o "remapear" los discos (algunos S.O. requieren que el disco sea el primero para poder cargar) con la orden map; sin embargo, yo no he hecho ninguna de estas cosas, por lo que no puedo decir mas que el propio manual. Si lo haceis, debeis hacerlo antes del chainloader.<br /><br />	Por ultimo, ejecutais boot y a correr.<br /><br />3.3. Creando un menu de arranque<br /><br />	Llegados a este punto ya os habreis dado cuenta de lo engorroso que puede ser tener que escribir todas las ordenes cada vez que endemos el ordenador, por lo que el uso de un menu se hace imperativo. Creando un archivo llamado menu.lst en el directorio /boot/grub tendremos acceso sencillo y potente al sistema. Este archivo funciona como un script de la shell de GRUB, de forma que indicamos los pasos (comandos) a realizar en cada una de las opciones del menu; por otra parte, incluye una serie de comandos genericos que tratan del menu en si.<br /><br />	Para cada entrada de menu necesitamos una etiqueta "title", a la que le asignaremos la entrada que queremos ver en el menu. Aque GRUB nos da mas flexiblidad que LiLo, ya que cogera como entrada todo lo que haya entre "title=" y el final de linea, espacios incluidos. A continuacion escribiremos el conjunto de ordenes que queremos ejecutar al seleccionar dicha entrada de menu, tipicamente las ordenes de carga del sistema concreto; decir tiene que la orden boot se da por supuesta y no es necesaria. Parametros como la opcion por defecto y el tiempo de espera para ejecutarla pueden ser tambien establecidos. Estos parametros forman parte de los comandos generales del menu, y se indican al principio del archivo.<br /><br />	Para indicar la opcion por defecto escribimos "default x", donde x es un numero que representa la opcion a elegir (cuidado, contamos desde cero). Para indicar el tiempo de espera usamos "timeout y", donde y es el tiempo en segundos. Como ejemplo, este pequenyo archivo:<br /><br />		# Tras 10 segundos de inactividad cargo la primera opcion, Gentoo Linux en este caso<br />		default 0<br />		timeout 10<br /><br />		# En este caso, los archivos de arranque estan en una particion separada del root de Linux<br />		title=Gentoo Linux<br />		root (hd0,1)<br />		kernel /boot/vmlinuz root=/dev/hda6 vga=792<br />		initrd /boot/initrd.gz<br /><br />		# Tipica carga de Hasefroch (que hace esto aqui??)<br />		title=Hasefroch 2000<br />		root (hd0,0)<br />		chainloader +1<br /><br />	Como habreis imaginado, con # indicamos un comentario.<br /><br />	El menu se hara activo si lo configuramos antes de instalar GRUB en el lugar elegido; si ya tenemos GRUB instalado (siguiendo los pasos anteriores) podemos reinstalar para que cargue automaticamente el menu o podemos cargarlo manualmente desde la shell de GRUB cada vez. Esto lo haremos con el comando configfile, al que le indicamos la ruta del archivo; como siempre, esta ruta la daremos indicando tambien la particion o hacieno previamente un root.<br /><br />		root (hd0,4)<br />		configfile /boot/grub/menu.lst		equivalente a -->  configfile (hd0,4)/boot/grub/menu.lst<br /><br />	Aquellos que prefieren tener un nombre de archivo como "grub.conf" en lugar de "menu.lst" puede crear un enlace simbolico del primero al segundo, ya que GRUB maneja enlaces simbolicos sin dificultad.<br /><br />		ln -s menu.lst grub.conf<br /><br />	Un detalle importante acerca del uso de menus y otros archivos en GRUB es que dicho menu no se graba en el MBR, sino que la mini-shell alli instalada lo busca en la ruta que se almacena al ser configrada. Lo mismo ocurre con otros archivos como los stage*, cuya finalidad se explicara mas adelante. Esto nos da cierta flexibilidad y al mismo tiempo nos la quita: si queremos modificar el menu de GRUB no tenemos mas que editar el archivo menu.lst y, la proxima vez que el sistema arranque, lo hara con los nuevos parametros; pero si cambiamos la particion, el orden de discos, forteamos o cualquier otra cosa que pueda "caducar" las rutas completas de archivo (incluido el nombre de disco y particion) almacenadas en el MBR tendremos nuestro GRUB desconfigurado.<br /><br />4. FIN DEL PRIMER FASCICULO<br /><br />	Con esto ya tenemos suficiente para montar la configuracion basica que todos usamos. En mi opinion, GRUB representa un cargador mucho mas flexible que LiLo, y su menu de configuracion es bastante mas sencillo. Cierto es que LiLo enmascara ciertas pasos que con GRUB hay que indicar explicitamente, como el paso de parametros al kernel, pero tambien hay que tener en cuenta que no hemos hecho mas que empezar en el mundo GRUB. Segun vaya controlado aspectos mas avanzados de GRUB, como es la utilizacion de contrasenyas, tanto en texto plano como con md5, cargar el sistema por red (levantando la red mediante ifconfig) o la utilizacion de colores y menus dinamicos.<br /><br />	Por ahora os dejo tiempo para que jugueis con lo que ya he soltado. Agradeceria cualquier comentario o critica constructiva acerca del articulo, bien para corregir erratas, preguntar dudas, sugerir formato o cualquier otra cosa. A mandar.<br /><br />5. ENLACES<br /><br />	[1] http://www.gnu.org/software/grub/<br />	[2] http://www.gnu.org/software/grub/manual/<br /><br />Gracias a:<br />Abraham Marin Perez <abraham@alumni.uv.es>]]></description>            <pubDate>Sat, 10 Jun 2006 02:59:48 +0100</pubDate>        </item>    </channel></rss>
