Instalar servidor dedicado con Gentoo

From Luniwiki
Jump to: navigation, search

Preliminares

Gentoo no es un sistema operativo rapido de instalar, pero tiene la ventaja de ser totalmente adaptado a nuestra máquina.

Descarga del CD de Instalación

El mirror de mi elección es el de belnet.be, y me he descargado el archivo de la URI /releases/x86/2006.0/installcd/install-x86-minimal-2006.0.iso.

Preparación dispositivos

Teclado

El cd de instalación (que en realidad es un Live-CD), nos pregunta por el tipo de teclado que tenemos. Yo por supuesto le conteste que el es. Pero no encontro el mapa de caracteres del teclado.

Red

En mi caso el LiveCD de Gentoo reconocio automaticamente la tarjeta de Red. Pero sino se tendría que cargar el modulo apropiado (8139too por ejemplo) y configurar la red.

modprobe <nombre_modulo>
net-setup <dispositivo_de_red>
  • Ejemplo:
modprobe 8139too
net-setup eth0

Particiones Discos

Para particionar los discos hay que realizarlo a la antigua,...Mi particionamiento de mi disco (IDE 20G) es el siguiente:

500M   /dev/hda1   Tipo ext3 (83) (Punto de montaje /)
19500M /dev/hda2   Tipo LVM (8E)

Con el comando cfdisk creamos las 2 particiones

cfdisk /dev/hda1

Si no esta cargado el modumlo de los LVM (en mi caso estaba cargado)

lsmod
modprobe dm_mod

Tenemos que evitar que el LVM evite accder a los CD's, para ello.

vi /etc/lvm/lvm.conf
Descomentar siguiente línea
filter = [ "r|/dev/cdrom|" ]

Creamos el physical Volume

pvcreate /dev/hda2

Creamos el volume group rootvg

vgcreate rootvg /dev/hda2

Los logical volumes que vamos a crear son los siguientes:

swap 1G (tipo swap)
usr  5G (tipo ext3)
var  3G (tipo ext3)
home 1G (tipo ext3)
tmp  2G (tipo ext3)

Los comandos son los siguientes:

lvcreate -n swap -L 1G rootvg
lvcreate -n usr -L 5G rootvg
lvcreate -n var -L 3G rootvg
lvcreate -n home -L 1G rootvg
lvcreate -n tmp -L 1G rootvg
mkfs -t ext3 /dev/rootvg/usr
mkfs -t ext3 /dev/rootvg/var
mkfs -t ext3 /dev/rootvg/home
mkfs -t ext3 /dev/rootvg/tmp
mkfs -t ext3 /dev/rootvg/home
mkfs -t ext3 /dev/hda1
mkswap /dev/rootvg/swap
swapon /dev/rootvg/swap

A continuación, creamos unos directorios en la carpeta /mnt/gentoo, y montamos nuestros recien creados volumenes

cd /mnt
mount /dev/hda1 gentoo
cd gentoo
mkdir usr
mkdir var
mkdir tmp
mkdir home
mount /dev/rootvg/usr usr
mount /dev/rootvg/var var
mount /dev/rootvg/tmp tmp
mount /dev/rootvg/home home

Luego hay que cambiar los permisos de las carpetas tmp

chmod 1777 /mnt/gentoo/tmp
cd /mnt/gentoo/var
mkdir tmp
chmod 1777 /mnt/gentoo/var/tmp

Descarga de los ficheros de instalación

Descarga del Stage

Dentro de nuestro mirror descargamos el archivo situado en la URI /releases/x86/2005.1/stages/x86/stage3-x86-200x.x.tar.bz2. Para elle utilizamos el navegador web en modo caracter links2

cd /mnt/gentoo
links2 http://ftp.belnet.be/mirror/

Para descomprimir el fichero utilizamos el comando

tar xvfjp stage3..bz2

Instalar Portage

Descargamos la ultima versión de portage de nuestro mirror en la URI snapshots/portage-latest.tar.bz2.

cd /mnt/gentoo
links2 http://ftp.belnet.be/mirror/

para descomprimir el fichero utilizamos el comando

tar xvfj portage-latest -C /mnt/gentoo/usr

Opciones de compilación

Hay que determinar que tipo de procesador poseemos con el comando:

cat /proc/cpuinfo

En mi caso la salida es parecida a:

vendor_id  : GenuineIntel
cpu family  : 15
model  : 2
model name  : Intel(R) Pentium(R) 4 CPU 2.40MHz 

Consultando la página de los flags http://en.gentoo-wiki.com/wiki/Safe_Cflags Editamos el fichero /mnt/gentoo/etc/make.conf

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"

Añadir los mirrors en make.conf

mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

Antes de entrar el nuevo entorno

Tenemos que copiar la información de los DNS y montar el sistema de ficheros /proc

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev

Entramos en el nuevo entorno

chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile

Actualizamos el portage

emerge --sync 

Actualizamos la variable USE

USE="-gtk -gnome acpi avi bluetooth qt kde dvd alsa cdr dvdr userlocales
-emacs ethereal gpm hal informix oracle pcmcia radius ssl usb wifi win32codecs vorbis xmms"

Quitar la generación de las locales

Para que glibc, cuando se compile no vuelva a generar todas las locales añadimos esta linea al archivo /etc/portage/package.use

echo "sys-libs/glibc userlocales" >> /etc/portage/package.use

Y en el fichero /etc/locales.build dejamos lo siguiente

en_US/ISO-8859-1
en_US.UTF-8/UTF-8
fr_FR/ISO-8859-1
fr_FR@euro/ISO-8859-15
fr_FR.UTF-8/UTF-8
es_ES/ISO-8859-1
es_ES@euro/ISO-8859-15
es_ES.UTF-8/UTF-8

Stage 3

El stage 3 es la forma más fácil de instalar Gentoo. Una vez descomprimido el stage 3 tenemos un sistema totalmente funcional a falta del kernel. Es la forma de ganar tiempo.

Stage 1

Creamos el bootstrap del sistema

cd /usr/portage
scripts/bootstrap.sh

Y a encontrar un juego, dura bastante,...

Stage 2

Ejecutamos el comando

emerge --emptytree system

Y esto si que dura y dura,...

Compilación del Kernel

Elección de la zona horaria Yo he elegido Madrid, para ello machacamos el archivo /etc/localtime

ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Descarga de los fuentes

Descargamos los fuentes con el comando

emerge gentoo-sources

Luego vamos al repertorio /usr/src

cd /usr/src/linux
make menuconfig

Y a continuación compilamos

make && make modules_install

A continuación en el archivo /etc/modules.autoload.d/kernel-2.6, añadimos los modulos siguientes

dm-mod
8139too

Para poder ver todos los modulos de nuestro kernel hacemos

find /lib/modules/<versión del kernel>/ -type f -iname '*.o' -or -iname '*.ko'

Configuración del sistema

Crear fstab

Rellenamos el fichero /etc/fstab

/dev/hda1           /        ext3     defaults,noatime    1 2
/dev/rootvg/usr     /usr     ext3     defaults,noatime    0 1
/dev/rootvg/var     /var     ext3     defaults,noatime    0 1
/dev/rootvg/tmp     /tmp     ext3     defaults,noatime    0 1
/dev/rootvg/home    /home    ext3     defaults,noatime    0 1
/dev/rootvg/swap    none     swap     sw                  0 0
/dev/cdroms/cdrom0  /cdrom   iso9660  noauto,ro           0 0
proc                /proc    proc     defaults            0 0
shm                 /dev/shm tmpfs    nodev,nosuid,noexec 0 0

Configuramos nombre de máquina

El nombre de máquina se configura en el fichero /etc/conf.d/hostname y el nombre de dominio en /etc/conf.d/domainname

rc-update add domainname default

Esto es para añadir el script de arranque domainname para el level default En el fichero /etc/hosts

127.0.0.1 filemon.luniel.com filemon localhost 

Hay que poner en primer lugar el nombre FQDN

Configuración de la red

Si queremos una ip fija, en el fichero /etc/conf.d/net

config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.0.1" )

Si queremos que se configure por dhcp.

config_eth0=( "dhcp" )
dhcp_eth0="nontp nonis"

Si deseamos que eth0 se inicie automaticamente al arrancar

rc-update add net.eth0 default

Seguridad

Cambiamos la contraseña de root

passwd

Y le damos permiso a root para conectarse a las consolas

echo "tts/0" >> /etc/securetty

Ficheros de configuración varios

/etc/rc.conf
/etc/conf.d/keymaps
/etc/conf.d/clock

LVM

No hay que olvidar de instalar los programas para gestionar los lvm's

emerge lvm2
   * Yo tuve un error de compilación (algo parecido a llamada a lib estaticas compiladas dinamicamente). Para corregir este error tuve que compilar de la forma siguiente: 
USE="nolvmstatic" emerge lvm2

Syslog del sistema

emerge syslog-ng
rc-update add syslog-ng default

Cron

emerge vixie-cron
rc-update add vixie-cron default

Instalar Gestor de arranque GRUB

emerge grub

Editamos /boot/grub/grub.conf

# Cual título arrancar por defecto. 0 es el primero, 1 el segundo, etc.
default 0
# Cuantos segundos esperar antes de arrancar el título por defecto.
timeout 30
# Una bella, hermosa imagen para ensalzar las cosas un poco :)
# Coméntela si no tiene una tarjeta gráfica instalada 
# Partición donde se encuentra la imagen del kernel (o sistema operativo) 
title=Gentoo Linux 2.6.15-luniel-1.4
root (hd0,0)
kernel /boot/kernel-2.6.15-luniel-1.4 root=/dev/hda1 

A continuacion instalamos el bootloader

grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Referencias

--Daniel Simao 20:01, 6 Apr 2006 (CEST)