Aprovechando que mi hermano ha jubilado su antiguo ordenador he decidido utilizarlo para sustituir mi viejo Pentium II 350Mhz que hasta ahora ejercía de servidor "casero". Cómo no, el sistema operativo bajo el que funcionará será Gentoo :). En esta entrada detallo los pasos que he seguido para instalar Gentoo en mi recién adquirido servidor.
Este documento no pretende ser una guía completa para que todo el mundo pueda instalar esta distribución y válida para todos los casos. La idea es tener una referencia rápida para uso personal, que permita instalar Gentoo sin indagar tanto como en el manual oficial. Solo es un recordatorio de los pasos que he seguido en los que se dice lo que se hace sin explicar detenidamente por qué se hace, para eso ya está el excelente Handbook de Gentoo. No recomiendo su lectura a aquellos que no tengan unas nociones mínimas de Gentoo y su sistema de instalación o que nunca hayan leído (y entendido) el manual de instalación oficial. Tampoco está orientada a entornos de producción, ya que, como he dicho, el ordenador en el que voy a instalar Gentoo va a ejercer de servidor doméstico.
Las particularidades a tener en cuenta que creo que hacen interesante esta guía son:
- Versión del liveCD de instalación: Gentoo 2005.1-r1, es decir, la última disponible hasta la fecha.
- Versión de GCC utilizada para compilar todos los paquetes del sistema: 3.4.4-r1.
- Instalación en una configuración de discos en RAID 1 para mayor fiabilidad y tolerancia a fallos.
- Sistema compilado con NPTL (Native POSIX Thread Library for Linux).
- Instalación desde Stage2 para tenerlo optimizado desde el principio.
- Instalación remota desde otro ordenador (útil por ejemplo para tener ratón y poder copiar/pegar los comandos o para consultar la documentación oficial en un navegador decente).
- Instalación mediante GNU/Screen que permite ser desatendida para poder retomarla cuando queramos.
- Al acabar tendremos un sistema configurado para usar por defecto el idioma español.
- Destinada a un servidor casero, por lo que las USE utilizadas no serán las más adecuadas para otros usos. De hecho no voy a insistir a penas en las USE utilizadas, incluso omitiendolas deliberadamente en algunos casos. Entiendo que el usuario es capaz de elegir las USE necesarias para su sistema y se preocupa por comprobar los valores antes de la instalación de cada paquete.
Para poder entender ciertos pasos o configuraciones utilizadas en la guía, a continuación describo el equipo en el que se instalará el sistema:
- Arquitectura x86
- Procesador AMD XP 2400+ K7
- Memoria 1GB de RAM
- Discos: 2 discos SATA de 200GB
- Contoladora SATA raid VIA
- Configuración de red con IP estática del rango 192.168.0.0/24
Preparando la instalación remota
Introducir el CD de instalación Minimal y arrancar con él.
Cuando nos pregunte por el mapa de teclado elegir el mapa de teclado español, es decir "es" (el 13)
En caso de no dar tiempo a elegirlo no pasa nada, una vez que haya iniciado desde el CD de instalación ejecutar
Configurar la red de forma automática
En mi caso, parece que hay un fallo en esta versión del LiveCD que hace fallar al comando anterior, así es que recurro a configurarla manualmente
Comprobar que la red funciona
Establecer clave de root
Iniciar el Demonio SSH para continuar la instalación remotamente y ahorrar tiempo
A partir de aquí, puedo continuar desde un ordenador remoto mediante una sesión SSH, desde mi entorno de ventanas favorito
Ejecutar screen para dejar desatendida la instalación en cualquier instante
Particionar los discos
La configuración de los discos que he decidido usar es la siguiente:
Partición de arranque de 32MB en RAID 1.
Partición de intercambio de 2GB en RAID 0.
Partición raíz de 10GB en RAID 1.
Partición home de 30GB en RAID 1
El restante espacio en ambos discos duros serán dos particiones independientes (sin raid). De momento las usaré para almacenamiento masivo pero así dejo la puerta abierta para darles algún uso en el futuro, posiblemente también en RAID.
Cargar los módulos necesarios para el RAID-1 y el RAID-0 de la swap:
Particionar los discos usando fdisk
Creación de la Partición primaria de Arranque de 32MB: n p 1 (INTRO) +32M
Establecerla de tipo fd (Linux raid autodetect):t 1 fd
Creación de la Partición primaria de Intercambio de 1GB:n p 2 (INTRO) +1024M
Establecerla de tipo fd (Linux raid autodetect):t 2 fd
Creación de la Partición primaria Raíz de 10GB:n p 3 (INTRO) +10240M
Establecerla de tipo fd (Linux raid autodetect): t 3 fd
Creación de la Partición extendida: n e (INTRO) (INTRO)
Creación de la Partición lógica de 30GB restante:n (INTRO) +30720M
Establecerla de tipo fd (Linux raid autodetect):t 5 fd
Creación de la Partición lógica restante: n (INTRO) (INTRO)
Establecerla de tipo fd (Linux raid autodetect): t 6 fd
Guardar el esquema de particionamiento y salir de fdisk:w
(repetir los mismos pasos que antes para crear exactamente las mismas particiones en el segundo disco)
Comprobar que ambos discos son idénticos
En mi caso:
Device Boot Start End Blocks Id System /dev/sdb1 1 5 40131 fd Linux raid autodetect /dev/sdb2 6 130 1004062+ fd Linux raid autodetect /dev/sdb3 131 1376 10008495 fd Linux raid autodetect /dev/sdb4 1377 24792 188089020 5 Extended /dev/sdb5 1377 5112 30009388+ fd Linux raid autodetect /dev/sdb6 5113 24792 158079568+ fd Linux raid autodetect
Crear los RAIDs
Antes de empezar a crear los "RAID arrays", necesitamos crear los metadispositivos:
Crear los RAIDs para tener la particion boot, swap, root y home en RAID-1(espejo) utilizando /dev/sda y /dev/sdb:
Guardar la información sobre los dispositivos creados en mdadm.conf
En este instante el driver de RAID por Software de Linux empezará a crear los metadispositivos.
Para ver su progreso ejecutar
IMPORTANTE: Esperar hasta que los metadispositivos hayan sido terminados. El comando anterior indica el tiempo aproximado que falta para completarse cada raid.
De ahora en adelante utilizaremos:
/dev/md0 para la partición boot,
/dev/md1 para la partición swap,
/dev/md2 para la partición raíz,
/dev/md3 para la partición home.
Crear los sistemas de ficheros
Crear los sistemas de ficheros en las particiones
Montar las particiones
Activar la partición de intercambio
Ajustando la Fecha/Hora correcta (MMDDhhmmAAAA Mes, Día, hora, minuto y Año)
Montar la particion raíz y copiar en ella el archivo /etc/mdadm.conf que es el que contiene la información sobre los raids que hemos creado.
Crear el punto de montaje y montar la particion /boot
Instalar el sistema base
Obtener y desempaquetar el stage2
Obtener y desempaquetaruna imagen del árbol de Portage
Configurar las opciones de compilación
hacer los siguientes cambios:
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"Copiar la información DNS
Montando el sistema de archivos proc
Montar /dev con la opción "bind" en /mnt/gentoo/dev para no tener que volver a crear los nodos de dispositivo en el ambiente enjaulado:
Enjaulamos
Actualizamos el entorno
Cargamos el perfil de usuario
Establecer clave de root para el chroot
Actualizar el árbol Portage
Si al finalizar nos advierte que existe una versión mas reciente de Portage, podemos ignorarlo, ya lo actualizaremos mas tarde.
Preparar el sistema para que solo se instalen los idiomas y las codificaciones que queremos
es_ES/ISO-8859-1 es_ES@euro/ISO-8859-15 en_US/ISO-8859-1 en_US.UTF-8/UTF-8
Vemos que paquetes del sistema necesitan actualizar y así podremos hacernos una idea de como modificar la variable USE.
En mi caso la variable USE queda USE="-X -ipv6 nls ssl nptl nptlonly -fortran -gtk".
Una vez modificada la variable USE a nuestro gusto instalar el sistema base
Cuando se acabe de instalar el paquete GCC pulsar Control+C para evitar que continué la instalación. El motivo de cancelar la instalación es que recientemente GCC 3.4 ha sido marcado como estable en Gentoo para arquitecturas x86 y no tienen sentido seguir compilando todo con el GCC 3.3, pues más tarde vamos a tener que recompilarlo de nuevo y sería perder el tiempo. Si no queremos ahorrar este tiempo o simplemente, no queremos estar presentes durante la compilación para así cancelarla en el momento oportuno, no pasa nada, simplemente dejar acabar el # emerge system y continuar con el resto de pasos de forma normal.
Actualizar lo poco que llevamos instalado a GCC 3.4 y establecer GCC 3.4 como compilador por defecto
Actualizar las configuraciones
Enlazar nuestra zona horaria
Instalar y compilar el kernel
Obtener el ultimo kernel
Comprobamos que se ha creado bien el enlace al kernel
Recuperar la configuración del kernel desde otro ordenador (la configuración que he usado la incluyo como adjunto al final de este documento, por si alguien está interesado).
Compilamos el kernel
Copiamos el kernel a boot con un nombre que lo represente
Añadimos a /etc/modules.autoload.d/kernel-2.6 los módulos que queremos que se carguen al principio. En mi caso los únicos que udev no me carga de forma automática son el de la tarjeta de red y el del puerto paralelo:
forcedeth ppdev
Crear fstab
Crear /etc/fstab (también lo incluyo como adjunto al final de este documento por si alguien está interesado).
#RAIDs /dev/md0 /boot reiserfs noauto,noatime,notail 1 2 /dev/md1 none swap sw 0 0 /dev/md2 / reiserfs noatime 0 0 /dev/md3 /home reiserfs noatime 0 0 #Sin RAID /dev/sda6 /mnt/almacenA reiserfs noauto,noatime 0 0 /dev/sdb6 /mnt/almacenB reiserfs noauto,noatime 0 0 #CDROM /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0 #Especiales proc /proc proc defaults 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Crear los puntos de montaje que nos faltan y borrar los que no necesitamos
Configurar el sistema
Damos nombre a nuestra máquina
HOSTNAME="servidor"
Configuramos la red
config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" ) routes_eth0=( "default gw 192.168.0.1" )
Hacer que la red se cargue automáticamente al inicio
Añadir los hosts conocidos
127.0.0.1 localhost 192.168.0.1 router 192.168.0.2 servidor gsmlandia.com exphera.com 192.168.0.3 nacho 192.168.0.4 azul
Configurar mi editor favorito ;)
EDITOR="/usr/bin/joe"
Configurar el teclado
KEYMAP="es"
Configurar el reloj
CLOCK="local"
Establecer idioma español añadiendo estas dos líneas
export LANG="es_ES@euro" export LC_ALL="es_ES@euro"
En Gentoo 2005.1-r1 hay un fallo en el paquete net-tools, el cual no incluye todas las funciones necesarias para levantar la red. Si no lo reinstalamos en este punto de la instalación, al terminar la instalación y reiniciar nos encontraremos con que la red no va.
Configurar sshd para que solo puedan hacer login los usuarios del grupo wheel
AllowGroups wheel
Para poder administrar remotamente el servidor añadimos sshd al inicio
Crear una cuenta de usuario
Instalar paquetes complementarios
Instalar herramientas necesarias para el sistema
Si nos dice que hay una actualización de /etc/mdadm.conf descartarla.
Instalar el logger y el cron y añadirlos al arranque
Instalar y configurar el gestor de arranque
Instalar el gestor de arranque en ambos discos
Configurar el gestor de arranque
default 0 timeout 10 title=Gentoo Linux 2.6.14-r5 root (hd0,0) kernel /boot/bzImage.2.6.14-r5 root=/dev/md2 video=vesa:ywrap,mtrr,1024x768-32@85
Finalizar
Salir del chroot, salir de screen, desmontar unidades y reiniciar
| Adjunto | Tamaño |
|---|---|
| configuracion-gentoo-sources-2.6.14-r5 | 29.28 KB |
| fstab | 433 bytes |

Stolz
Genio. Está genial la guía... para cambiar el tipo de raid sólo hay que modificar el "level" de mdadm?
salu2 :)
Tipo de raid
Sí. Puedes usar raid0 si prefieres, pero te aconsejo que al menos la particion /boot la tengas en raid1.