03-05-2007, 10:46 AM
Instalando Hurd
Neal H. Walfield
Traducción: Augusto Maza (agus)
Tabla de Contenidos
1 Reseña
2 Estado real o buscando un hogar
3 El Boot Loader
4 Instalación
5 Iniciando Hurd
6 Instalación Nativa
#################################################
1 - Reseña
La distribución Debian GNU/Hurd, no es como otras distribuciones de otros sistemas operativos, no tiene un agradable programa de instalación. Un día éste lo será y quizás tu ayudes a diseñarlo e implementarlo. No obstante, hasta ese día, instalar GNU/Hurd requiere de otro sistema operativo; especificamente otro sistema tipo “UNIX”. Los usuarios han indicado instalaciones exitosas, usando diferentes sabores de GNU/Linux, como así también en BSD's.
Los requerimientos mínimos para correr el sistema operativo son tener la capacidad de:
Crear un sistema de archivos EXT2
Extraer un archivo *.tar
E instalar GNU Grub
GNU/Hurd es similar en naturaleza a cualquier sistema UNIX, luego de loggearse el usuario es recibido con un shell de la familia UNIX VFS (Sistema virtual de archivos). Aunque GNU intenta ser complemento de POSIX es no es “UNIX”. El HURD está construído sobre muchos conceptos de UNIX, extendiendolos y agregando nuevas funcionalidades o arreglando lo que se ha percibido como defectos en el diseño original. Las diferencias significativas están en los ports y en los espacios de usuario de los programas que interactuan con VFS. Este sistema de archivos no radica dentro del Kernel, este no necesita ser corrido como “root”, sólo necesita acceso al punto de montaje del almacenamiento.
Siendo familiar con los entornos UNIX, y teniendo experiencia con las herramientas de Debian, será además una prueba invaluable para la configuración y mantenimiento de GNU/HURD.
Esta guía se empeña en hacer la instalación de HURD, como un proceso indoloro y posible. Si hay errores ellos son por completo del autor. Por favor reporteme acerca de cualquier sugerencia o critica, serán alegremente aceptadas.
2 – Estado real o Buscando un Hogar
Si no posees una partición disponible o un disco duro extra, este puede ser un largo proceso. En ese caso necesitarás reparticionar el disco duro, una solución puede ser usar el editor de particiones GNU (Gparted), este presenta, no sólo un editor básico de reparticionamiento, sino que además redimenciona y mueve en forma funcional, este puede ser encontrado en “http://www.gnu.org/software/parted” el manual es completo e incluye muchos tutoriales.
Hurd sólo puede soportar particiones por encima aproximadamente a los 2GB, (aunque a la fecha de redacción de este HOWTO ya debería soportar particiones de tamaño mucho mayor) cualquier otro tamaño que esta tenga no funcionará. Esta limitación es debido a que, el diseño fue hecho hace varios años, con un mapeo de sistema de archivos completo, dentro de la memoria virtual.
Como el montaje de la memoria virtual disponible en una ia32 es de solamente 4GB, del cual Match asigna 3GB a su aplicación, esto significa que una porción es reservada sólo para el código, lo apilado y amontonado al final, es decir, la máxima aárea contígua de memoria virtual, esta se mantiene generalmente cerca de los 2GB. Esta limitación está agendada para ser removida; habiendo aclarado esto, con unos 2GB será más que suficiente para que el sistema funcione. Muchos, aunque sea, prefieren dos sistemas de archivos, una partición para 'root' y una segunda para '/home'. Este último esquema es altamente aconsejado para desarrolladores, compilar Hurd puede tomar un poco más de espacio.
Hurd soporta varias extensiones del sistema de archivos EXT2, para usar estas extensiones el usuario propietario de la partición deberá setear a Hurd, “mke2fs”, a menos que especificamente haya sobrelectura en la línea de comandos, seteará cualquier sistema operativo que esté corriendo. Como Hurd será seteado respecto de esta configuración, deberás ser cuidadoso y configurar apropiadamente o Hurd fallará de manera incidiosa.
Advierta que sea exacto, si un sistema de archivos es propiedad de otro OS en particular, otros pueden estar usándolo y este no podría ser capaz de ser usado en ciertas extensiones.
Para crear un sistema de archivos utilice “mke2fs” pasando el siguiente parámetro “-o hurd”, para designar a Hurd como propietario de este nuevo sistema de archivos.
Por ejemplo, asumiendo como partición “/dev/hda2”
#mke2fs -o hurd /dev/hda2
3 – El cargador de arranque
Al contrario que GNU/Linux y BSD, Hurd no tiene su propio BootLoader, cualquier BootLoader que soporte multibooteo estandar, puede ser usado para arrancar Hurd, al momento sólo hay un proyecto, el cual satisface estos requerimientos: GRUB (The Grand Unifed Boot Loader).
Al contrario de los tradicionales bootloaders para X86, como LiLo, Grub es muy poderoso. Este tiene una interface de línea de comandos, “bootp”, simula una terminal y presenta una variedad de otras caractarísticas, como suplemento, este puede bootear casi cualquier sistema operativo, si tienes que bootear eventualmente un “alpha” o “sparc”, entenderás que Grub puede hacerlo, por lo tanto, no te desanimes, Grub es mejor, te encantará, y ya no regresarás a los anteriores.
Para conseguir Grub visita la página “http://www.gnu.org/software/grub” aquí hay un source tarball y una floppy image. Si decides descargas el tarball, éste presenta una configuración normal: ./configure; make; make install. Incluye un excepcional manual, muy completo, de como hacer funcionar Grub, léelo. Pero si, de otra manera, decides descargar el floppy image, este es suficiente para copiarlo a un floppy y conseguir que Grub funcione.
Por ejemplo:
# dd if=grub-boot-image of=/dev/fd0
aunque siempre podrás instalar Grub en tu disco más tarde.
4 – Atravesando la instalación
El próximo paso será descargar el sistema base desde...
El tarball está configurado para extraer todo dentro del directorio actual, antes de montar el sistema de archivos, el tarball puede ser extraído asumiendo que el sistema de archivos está en “/dev/hda2”, el punto de montaje será “/gnu” y el archivo en el directorio “/home”; el siguiente requerimiento será:
#mount -t ext2 /dev/hda2 /gnu
#cd /gnu
#tar –same-owner -xvzpf ~/gnu-latest.tar.gz
5 – Arrancando Hurd
Ahora, arrancaremos Hurd por primera vez, antes verificaremos que el disco de booteo con Grub esté incerto (si es que usamos el floppy image), entonces “reboot”, si todo va bien, se nos mostrará un display con las opciones de Grub. Si se presentó un menú, presiona “c” para ir a la línea de comandos; primero, GNU Match necesita estar cargado, esto requiere conocer el sistema de archivos y la ruta a GNU Match. Grub usa una nomenclatura de partición diferente a otros bootloaders. En los casos de que se traten de dispositivos IDE o SCSI, ambos son nombrados de la siguiente manera:
(hdN;M) donde “N” es el número de la unidad (base cero) como lo enumera el BIOS; esto quiere decir que Grub no hace distinción entre dispositivos IDE o SCSI; “M” identifica la partición en el disco, esta entrada también está apoyada en la base cero, si esto te confunde, tranquilo, Grub es muy amigable; por ejemplo:
si poseemos dos unidades de disco duro se enumeraran d ella siguiente manera:
para la primera unidad y la partición #1:
(hd0,0)
para la segunda unidad y la partición #5
(hd1,4)
es decir, la primera unidad o master, se numerará con el número 0 (cero), la segunda unidad o esclavo, se numerará con 1 y así sucesivamente. Con respecto a las particiones, la primer partición con el número 0 (cero), las extendidas, en el caso que sean #5, #6, #7, etc...será, para la #5 (4), #6 (5), es decir, siempre se le resta uno.
Ahora bien, para poder bootear GNU Match debermos hacer los siguiente: para determinar en qué sistema de archivos o partición, reside en particular, Grub nos provee del comando “find”, cuando este comando es introducido junto al nombre del archivo, Grub buscará en cada sistema de archivos para encontrar el archivo requerido y nos mostrará donde fue encontrado; por ejemplo, para buscar el Kernel:
#'/boot/gnumatch.gz':
grub> find /boot/gnumatch.gz
(hd0,0)
Aquí Grub nos indicó que '/boot/gnumatch.gz' está en (hd0,0).
Luego de la carga del Kernel, por lo menos una opción, la partición de 'root', debe estar especificada en la línea de comandos. Esta será usada por Hurd especificamente, como se supone, esto debe estar en términos que Hurd comprenda.
GNU Match enumera los discos, comenzando desde cero, los dispositicos IDE, están prefijados con “hd”, mientras que los dispositivos SCSI, están prefijados como “sd”. Al igual que en GNU/Linux, los dispositivos están numerados por su posición en el canal IDE/SCSI. Por el momento el “primary-master” es “hd0” y el “secondary-slave” es “hd3”.
Las particiones usadas en sistemas BSD, deslizan una convención de nombres y añaden “SM” al nombre del dispositivo para indicar la partición dada. Observe que 'M' is un uno, no cero. El número de la partición es muy simple de calcular, sólo incrementa uno a la base que es usada por Grub.
Si Hurd aún no ha sido configurado, este debe arrancar en el mode 'single user'; adicionar el comando '-s' al kernel, es todo lo que se requiere.
Asumiendo que el primer dispositivo es (hd0) es el master sobre el controlador secundario, deberiamos tener:
grub> kernel (hd0,0) /boot/gnumatch.gz root=device:hd2s1 -s
[Multiboot-elf,...]
Seguido, el sistema de archivos raiz, ejecutará los servicios que deben ser cargados. Desde ext2fs, su linea de comandos ya está muy probado, en el normal desempeño de “UNIX”. Esté seguro de que no haya espacio delante al slash hasta el final de cada linea, también asegurese de diferenciar {and} de (and).
Una vez que GNU/Hurd está corriendo, el proceso puede ser automatizado, adicionando los comandos apropiados a GRUB '/boot/grub/menu.lst' archivo de configuración, GNU/Hurd puede ser arrancado grub>boot
Sientese y observe los mensajes, estos son más importante de lo que la gente piensa, hay un bug en GNU Match, por medio del cual, tocando una tecla durante el arranque que puede causar mensajes como “kernel panic”.
Si Hurd falla en el arranque esto se puede deber a que est{e compartiendo dos IRQ's, GNU Match no funciona bien con esto, por el momento en /proc/interrups, archivo bajo GNU/Linux.
Además como GNU Match no soporta la carga de modulos en el kernel, muchos de los drivers son compilados en el kernel por defecto. Si hay periféricos viejos, estos pueden causar problemas, un dispositivo podría responder incorrectamente a una prueba intentando completarla, y de tal modo causar un cuelgue general del sistema. Construyendo un nuevo kernel solamente con los drivers requeridos, rsolverá este problema. Compilar GNU Match es u proceso relativamente sencillo, si estás corriendo un sistema Debian intenta instalando “gcc-i386-gnu”. Si esto no ayuda, explora los recursos listados al final de este momento. Por último, consulta en la lista apropieada de correo si no consigues lo buscado.
6 – INSTALACION NATIVA
Una vez que te has presentado con el shell y el Hurd se encuentre en “single user mode”, será necesario setear una terminal:
#export TERM=match
ten cuidado ya que CONTROL-C y familia no funcionan en “single user mode”. Ahora podemos correr el script para la instalación nativa. Este configurar{a los paquetes y una importante cantidad de traductores.
#./native-install
después de que los scripts hayan terminado, estos te indicarán que necesitas correrlos una segunda vez; sigue las instrucciones y reinicia la máquina usando el comando “reboot”. Nuevamente ingresa em “single user mode” y corre el script:
#./native-install
Neal H. Walfield
Traducción: Augusto Maza (agus)
Tabla de Contenidos
1 Reseña
2 Estado real o buscando un hogar
3 El Boot Loader
4 Instalación
5 Iniciando Hurd
6 Instalación Nativa
#################################################
1 - Reseña
La distribución Debian GNU/Hurd, no es como otras distribuciones de otros sistemas operativos, no tiene un agradable programa de instalación. Un día éste lo será y quizás tu ayudes a diseñarlo e implementarlo. No obstante, hasta ese día, instalar GNU/Hurd requiere de otro sistema operativo; especificamente otro sistema tipo “UNIX”. Los usuarios han indicado instalaciones exitosas, usando diferentes sabores de GNU/Linux, como así también en BSD's.
Los requerimientos mínimos para correr el sistema operativo son tener la capacidad de:
Crear un sistema de archivos EXT2
Extraer un archivo *.tar
E instalar GNU Grub
GNU/Hurd es similar en naturaleza a cualquier sistema UNIX, luego de loggearse el usuario es recibido con un shell de la familia UNIX VFS (Sistema virtual de archivos). Aunque GNU intenta ser complemento de POSIX es no es “UNIX”. El HURD está construído sobre muchos conceptos de UNIX, extendiendolos y agregando nuevas funcionalidades o arreglando lo que se ha percibido como defectos en el diseño original. Las diferencias significativas están en los ports y en los espacios de usuario de los programas que interactuan con VFS. Este sistema de archivos no radica dentro del Kernel, este no necesita ser corrido como “root”, sólo necesita acceso al punto de montaje del almacenamiento.
Siendo familiar con los entornos UNIX, y teniendo experiencia con las herramientas de Debian, será además una prueba invaluable para la configuración y mantenimiento de GNU/HURD.
Esta guía se empeña en hacer la instalación de HURD, como un proceso indoloro y posible. Si hay errores ellos son por completo del autor. Por favor reporteme acerca de cualquier sugerencia o critica, serán alegremente aceptadas.
2 – Estado real o Buscando un Hogar
Si no posees una partición disponible o un disco duro extra, este puede ser un largo proceso. En ese caso necesitarás reparticionar el disco duro, una solución puede ser usar el editor de particiones GNU (Gparted), este presenta, no sólo un editor básico de reparticionamiento, sino que además redimenciona y mueve en forma funcional, este puede ser encontrado en “http://www.gnu.org/software/parted” el manual es completo e incluye muchos tutoriales.
Hurd sólo puede soportar particiones por encima aproximadamente a los 2GB, (aunque a la fecha de redacción de este HOWTO ya debería soportar particiones de tamaño mucho mayor) cualquier otro tamaño que esta tenga no funcionará. Esta limitación es debido a que, el diseño fue hecho hace varios años, con un mapeo de sistema de archivos completo, dentro de la memoria virtual.
Como el montaje de la memoria virtual disponible en una ia32 es de solamente 4GB, del cual Match asigna 3GB a su aplicación, esto significa que una porción es reservada sólo para el código, lo apilado y amontonado al final, es decir, la máxima aárea contígua de memoria virtual, esta se mantiene generalmente cerca de los 2GB. Esta limitación está agendada para ser removida; habiendo aclarado esto, con unos 2GB será más que suficiente para que el sistema funcione. Muchos, aunque sea, prefieren dos sistemas de archivos, una partición para 'root' y una segunda para '/home'. Este último esquema es altamente aconsejado para desarrolladores, compilar Hurd puede tomar un poco más de espacio.
Hurd soporta varias extensiones del sistema de archivos EXT2, para usar estas extensiones el usuario propietario de la partición deberá setear a Hurd, “mke2fs”, a menos que especificamente haya sobrelectura en la línea de comandos, seteará cualquier sistema operativo que esté corriendo. Como Hurd será seteado respecto de esta configuración, deberás ser cuidadoso y configurar apropiadamente o Hurd fallará de manera incidiosa.
Advierta que sea exacto, si un sistema de archivos es propiedad de otro OS en particular, otros pueden estar usándolo y este no podría ser capaz de ser usado en ciertas extensiones.
Para crear un sistema de archivos utilice “mke2fs” pasando el siguiente parámetro “-o hurd”, para designar a Hurd como propietario de este nuevo sistema de archivos.
Por ejemplo, asumiendo como partición “/dev/hda2”
#mke2fs -o hurd /dev/hda2
3 – El cargador de arranque
Al contrario que GNU/Linux y BSD, Hurd no tiene su propio BootLoader, cualquier BootLoader que soporte multibooteo estandar, puede ser usado para arrancar Hurd, al momento sólo hay un proyecto, el cual satisface estos requerimientos: GRUB (The Grand Unifed Boot Loader).
Al contrario de los tradicionales bootloaders para X86, como LiLo, Grub es muy poderoso. Este tiene una interface de línea de comandos, “bootp”, simula una terminal y presenta una variedad de otras caractarísticas, como suplemento, este puede bootear casi cualquier sistema operativo, si tienes que bootear eventualmente un “alpha” o “sparc”, entenderás que Grub puede hacerlo, por lo tanto, no te desanimes, Grub es mejor, te encantará, y ya no regresarás a los anteriores.
Para conseguir Grub visita la página “http://www.gnu.org/software/grub” aquí hay un source tarball y una floppy image. Si decides descargas el tarball, éste presenta una configuración normal: ./configure; make; make install. Incluye un excepcional manual, muy completo, de como hacer funcionar Grub, léelo. Pero si, de otra manera, decides descargar el floppy image, este es suficiente para copiarlo a un floppy y conseguir que Grub funcione.
Por ejemplo:
# dd if=grub-boot-image of=/dev/fd0
aunque siempre podrás instalar Grub en tu disco más tarde.
4 – Atravesando la instalación
El próximo paso será descargar el sistema base desde...
El tarball está configurado para extraer todo dentro del directorio actual, antes de montar el sistema de archivos, el tarball puede ser extraído asumiendo que el sistema de archivos está en “/dev/hda2”, el punto de montaje será “/gnu” y el archivo en el directorio “/home”; el siguiente requerimiento será:
#mount -t ext2 /dev/hda2 /gnu
#cd /gnu
#tar –same-owner -xvzpf ~/gnu-latest.tar.gz
5 – Arrancando Hurd
Ahora, arrancaremos Hurd por primera vez, antes verificaremos que el disco de booteo con Grub esté incerto (si es que usamos el floppy image), entonces “reboot”, si todo va bien, se nos mostrará un display con las opciones de Grub. Si se presentó un menú, presiona “c” para ir a la línea de comandos; primero, GNU Match necesita estar cargado, esto requiere conocer el sistema de archivos y la ruta a GNU Match. Grub usa una nomenclatura de partición diferente a otros bootloaders. En los casos de que se traten de dispositivos IDE o SCSI, ambos son nombrados de la siguiente manera:
(hdN;M) donde “N” es el número de la unidad (base cero) como lo enumera el BIOS; esto quiere decir que Grub no hace distinción entre dispositivos IDE o SCSI; “M” identifica la partición en el disco, esta entrada también está apoyada en la base cero, si esto te confunde, tranquilo, Grub es muy amigable; por ejemplo:
si poseemos dos unidades de disco duro se enumeraran d ella siguiente manera:
para la primera unidad y la partición #1:
(hd0,0)
para la segunda unidad y la partición #5
(hd1,4)
es decir, la primera unidad o master, se numerará con el número 0 (cero), la segunda unidad o esclavo, se numerará con 1 y así sucesivamente. Con respecto a las particiones, la primer partición con el número 0 (cero), las extendidas, en el caso que sean #5, #6, #7, etc...será, para la #5 (4), #6 (5), es decir, siempre se le resta uno.
Ahora bien, para poder bootear GNU Match debermos hacer los siguiente: para determinar en qué sistema de archivos o partición, reside en particular, Grub nos provee del comando “find”, cuando este comando es introducido junto al nombre del archivo, Grub buscará en cada sistema de archivos para encontrar el archivo requerido y nos mostrará donde fue encontrado; por ejemplo, para buscar el Kernel:
#'/boot/gnumatch.gz':
grub> find /boot/gnumatch.gz
(hd0,0)
Aquí Grub nos indicó que '/boot/gnumatch.gz' está en (hd0,0).
Luego de la carga del Kernel, por lo menos una opción, la partición de 'root', debe estar especificada en la línea de comandos. Esta será usada por Hurd especificamente, como se supone, esto debe estar en términos que Hurd comprenda.
GNU Match enumera los discos, comenzando desde cero, los dispositicos IDE, están prefijados con “hd”, mientras que los dispositivos SCSI, están prefijados como “sd”. Al igual que en GNU/Linux, los dispositivos están numerados por su posición en el canal IDE/SCSI. Por el momento el “primary-master” es “hd0” y el “secondary-slave” es “hd3”.
Las particiones usadas en sistemas BSD, deslizan una convención de nombres y añaden “SM” al nombre del dispositivo para indicar la partición dada. Observe que 'M' is un uno, no cero. El número de la partición es muy simple de calcular, sólo incrementa uno a la base que es usada por Grub.
Si Hurd aún no ha sido configurado, este debe arrancar en el mode 'single user'; adicionar el comando '-s' al kernel, es todo lo que se requiere.
Asumiendo que el primer dispositivo es (hd0) es el master sobre el controlador secundario, deberiamos tener:
grub> kernel (hd0,0) /boot/gnumatch.gz root=device:hd2s1 -s
[Multiboot-elf,...]
Seguido, el sistema de archivos raiz, ejecutará los servicios que deben ser cargados. Desde ext2fs, su linea de comandos ya está muy probado, en el normal desempeño de “UNIX”. Esté seguro de que no haya espacio delante al slash hasta el final de cada linea, también asegurese de diferenciar {and} de (and).
Una vez que GNU/Hurd está corriendo, el proceso puede ser automatizado, adicionando los comandos apropiados a GRUB '/boot/grub/menu.lst' archivo de configuración, GNU/Hurd puede ser arrancado grub>boot
Sientese y observe los mensajes, estos son más importante de lo que la gente piensa, hay un bug en GNU Match, por medio del cual, tocando una tecla durante el arranque que puede causar mensajes como “kernel panic”.
Si Hurd falla en el arranque esto se puede deber a que est{e compartiendo dos IRQ's, GNU Match no funciona bien con esto, por el momento en /proc/interrups, archivo bajo GNU/Linux.
Además como GNU Match no soporta la carga de modulos en el kernel, muchos de los drivers son compilados en el kernel por defecto. Si hay periféricos viejos, estos pueden causar problemas, un dispositivo podría responder incorrectamente a una prueba intentando completarla, y de tal modo causar un cuelgue general del sistema. Construyendo un nuevo kernel solamente con los drivers requeridos, rsolverá este problema. Compilar GNU Match es u proceso relativamente sencillo, si estás corriendo un sistema Debian intenta instalando “gcc-i386-gnu”. Si esto no ayuda, explora los recursos listados al final de este momento. Por último, consulta en la lista apropieada de correo si no consigues lo buscado.
6 – INSTALACION NATIVA
Una vez que te has presentado con el shell y el Hurd se encuentre en “single user mode”, será necesario setear una terminal:
#export TERM=match
ten cuidado ya que CONTROL-C y familia no funcionan en “single user mode”. Ahora podemos correr el script para la instalación nativa. Este configurar{a los paquetes y una importante cantidad de traductores.
#./native-install
después de que los scripts hayan terminado, estos te indicarán que necesitas correrlos una segunda vez; sigue las instrucciones y reinicia la máquina usando el comando “reboot”. Nuevamente ingresa em “single user mode” y corre el script:
#./native-install