HowTo:gentoo:InstallSW
De Luispa
Instalación de Linux Gentoo
Lo dicho en los artículos anteriores, esta es la documentación de toda la instalación que he realizado de mi equipo. Espero que te sirva como referencia para instalar el tuyo y sea de ayuda.
PROBLEMAS ENCONTRADOS (y solucionados)
- Las tarjetas LAN que incorpora la Gigabyte no pueden usarse durante la instalación de Gentoo 2008.0. Solución: Poner una tarjeta de red adicional para instalar.
- Cuando se hace boot desde un DVD con Linux lo normal es que la tarjeta empiece a funcionar a la primera. En mi caso tengo una motherboard muy moderna, con 2 chips Realtek 8111D (10/100/1000 Mbit), y el driver para dicha tarjeta es muy reciente, por lo que NO viene incluido en el Kernel del Live CD de linux.
- SOLUCIÓN: Coloco una tarjeta Ethernet temporal, una D-Link DFE-538TX, que trae un chip Realtek RTL 8139 y que usa el driver de kernel "8139" que obviamente sí viene en el kernel de instalación.
- Una vez instalado descubro que puedo usar dos opciones: el driver de Realtek 8168 para la RTL8111D descargado de su site o el driver incluido con el kernel 2.6.28 llamado 8169.
- La BIOS viene configurada para PATA, linux no ve los discos.
- Sin querer utilicé un Live CD de Gentoo de 32 bits y a la mitad de la instalación me di cuenta que estaba instalando en 32bits...
- SOLUCIÓN: Utilizo el System Rescue CD para hacer boot en 64bits e instalar desde ahí.
- Instalo los file systems con ReiserFS y descubro que tarda 80 seg. en montar las particiones.
- SOLUCIÓN: Cambio el tercio a EXT4 tras completar la instalación, es decir, al acabar lo cambié todo a EXT4 sin borrarlo. NOTA IMPORTANTE: He corregido este mismo artículo como si hubiese instalado todo en EXT4 desde el principio.
- Para migrar a EXT4 tengo que utilizar el kernel 2.6.28.
- SOLUCIÓN: Tan sencillo como usar gentoo-sources-2.6.28 para tener soporte nativo de EXT4 y además el último driver R8169 para las tarjetas LAN.
Recuerda...
- Los filesystems de root y datos usaremos EXT4
- Emplearemos el kernel 2.6.28
- Instalaremos desde el principio en modo 64bits
- Las guías de documentación de Gentoo en sus foros/sites hablan de AMD64 para referirse a ambas arquitecturaas: amd64/intel64.
- Más adelante, a la hora de usar KEYWORDs para desbloquear la instalación de paquetes no-estables, recordar que el tipo de "arch" que hay que usar para un sistema Intel de 64bits es ~amd64
- Recuerda que cuando se hace boot del DVD puedes tener varias "consolas", pulsa ALT-F(1,2,3...) para acceder a ellas.
- Mira la documentación sobre el Servicio Xorg y no olvides que el Rendering tiene que funcionarte con tu Nvidia
Documentación adicional
- La documentación oficial está en estos tres sitios:
- Yo he seguido la documentación oficial de instalación en 32bits, la de AMD64 y todo lo que he encontrado :-), junto con búsquedas en los foros de gentoo para instalar y documentar mi propia guía...
Instalación paso a paso
Para instalar un servidor desde cero en modo 64 bits, hay que hacer boot con un DVD de 64 bits y realizar todos los pasos desde el principio en modo 64bits. Recomiendo usar el DVD de arranque de System Rescue que puedes descargar desde aquí. Se trata de un DVD (por cierto, basado en Gentoo) mucho más potente que el que ofrecen en los mirros de gentoo para hacer instalaciones, y además está probado que funciona en 64bits tanto para AMD como para Intel sin problemas.
Si prefieres seguir los manuales (handbook) de Gentoo que menciono antes, recuerda que el "System rescue CD" que yo uso lo has de considerar como si fuese el que llaman "CD de Instalación Mínima" en dichos manuales.
Arrancar con DVD SystemRescue-Cd 1.1.4
Este DVD sirve para hacer instalacioines en Intel 64 bits y añade muchos extras.
- Bajarlo desde la página oficial de System Rescue CD
- Nota: Sigo el proceso de forma similar a como si se tratase del "CD de Instalación Mínima" que viene documentado en el gentoo handbook antes referenciado
- Una vez tengas el ISO, quémalo en un CD/DVD.
- Haz boot con el nuevo CD/DVD. Recuerda que cambié las opciones de la BIOS para poder hacer boot desde el CD/DVD
boot: rescue64 <intro> Hay que introducir "rescue64" en el prompt de boot para hacer una instalación de 64bits. Nota: Si miras la ayuda observarás que la opción rescue64 es para AMD64. Ignoralo, funciona con Intel Core 7i perféctamente...
- Selecciono el lenguaje del teclado para la instalación.
Load keymap: 13
- Configuro la tarjeta de Red
# net-setup eth0 (Seguir instrucciones)
- Verifico que ha detectado bien la tarjeta D-Link (recuerda que desactivé las tarjetas LAN de mi motherboard y añadí esta tarjeta para instalar)
livecd root # ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:25:34:1C:10
inet addr:172.16.1.20 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::231:95ff:f462:1c10/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1496 Metric:1
RX packets:754 errors:0 dropped:0 overruns:0 frame:0
TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:96801 (94.5 Kb) TX bytes:11936 (11.6 Kb)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:252 (252.0 b) TX bytes:252 (252.0 b)
- Cambio la contraseña de root (para poder conectarme con el equipo vía ssh durante el proceso de instalación)
NOTA: Una vez instalado el sistema es IMPORTANTÍSIMO poner la contraseña de root. La que estoy poniendo ahora es sólo para este sistema con el que hacemos "boot" y que nos sirve para "instalar". En cuanto apaguemos se perderá.
# passwd New password: (Enter your new password) Re-enter password: (Re-enter your password)
- El daemon de SSH debería estar arrancado. Puedes comprobarlo con:
# /etc/init.d/sshd status
Entorno Gráfico durante la instalación
Una ventaja del DVD de Sytem Rescue es que permite activar el entorno gráfico durante el proceso de instalación, que siempre es más agradable. Dado que tenemos una tarjeta NVIDIA y el entorno HW donde estoy instalando está 100% soportado, es tan sencillo como ejecutar
# wizard Selecciona la primera opción Xorg Optimal.
Se abre una ventana con la shell desde donde puedes seguir trabajando. Recuerda que también puedes conectar con el equipo remotamente desde una estación con un cliente SSH.
Alternativa desde cliente SSH
Ahora en este punto tienes la libertad de seguir instalando desde done te apetezca, la consola del nuevo PC o desde un equipo remoto con SSH.
En mi caso, me conecto con un Mac remoto usando SSH y continuo la instalación completamente desde el equipo remoto. La ventaja es evidente, puedo ir documentado y dar/recibir soporte remoto.
- Conecto con el nuevo sistema desde un Terminal de mi mac.
asterix:~ luis$ ssh -l root 172.16.1.55 : Password: <=== Uso la misma contraseña que puse antes a root. : #
Verifica que llegas a Internet
- Verifico que llego a internet
# ping -c 3 www.gentoo.org PING www.gentoo.org (209.177.148.228) 56(84) bytes of data. 64 bytes from wren.gentoo.org (209.177.148.228): icmp_seq=1 ttl=47 time=235 ms 64 bytes from wren.gentoo.org (209.177.148.228): icmp_seq=2 ttl=47 time=225 ms 64 bytes from wren.gentoo.org (209.177.148.228): icmp_seq=3 ttl=47 time=240 ms --- www.gentoo.org ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2579ms rtt min/avg/max/mdev = 225.692/233.968/240.322/6.125 ms
Configurar Discos
- Verifico que el sistema ha reconocido los discos.
- Recuerda que cambié la BIOS a modo AHCI
Disco 0: /dev/sda Disco 1: /dev/sdb Disco 2: /dev/sdc # ls -al /dev/sd* brw-r----- 1 root disk 8, 0 Jan 31 02:42 /dev/sda brw-r----- 1 root disk 8, 16 Jan 31 02:42 /dev/sdb brw-r----- 1 root disk 8, 32 Jan 31 02:42 /dev/sdc
- Crear las particiones.
- Yo he usado el comando "fdisk". Lee la documentación sobre cómo configurar los discos, del Handbook de Gentoo, si no conoces fdisk.
- También pused usar el comando "GParted" desde la consola gráfica
En mi caso he usado fdisk siguiendo el Handbook, y las particiones han quedado como sigue:
- Configuro las particiones del disco 0 (500GB)
# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x47e84dc7 Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 138 1004062+ 82 Linux swap / Solaris /dev/sda3 139 60801 487275547+ 83 Linux
- Configuro las particiones del disco 1 (1500 GB)
# fdisk /dev/sdb Command (m for help): p Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes 255 heads, 63 sectors/track, 182401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xad56aa6b Device Boot Start End Blocks Id System /dev/sdb1 1 182401 1465136001 83 Linux
- Configuro las particiones del disco 2 (1500 GB)
# fdisk /dev/sdc Command (m for help): p Disk /dev/sdc: 1500.3 GB, 1500300828160 bytes 255 heads, 63 sectors/track, 182401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xb3e0b530 Device Boot Start End Blocks Id System /dev/sdc1 1 182401 1465136001 83 Linux
- El siguiente paso es crear los sistemas de ficheros (File Systems), en mi caso voy a tener 4 file systems, 3 de ellos MUY GRANDES, para quitarme el problema de quedarme sin disco de repente. Esta forma de distribuir los file systems y los datos es totalmente personal, cada uno puede hacerlo como quiera, simplemente espero que sirva como ejemplo.
Aviso: La primera vez que instalé el SO lo hice con filesystems de tipo ReiserFS. Unos días después rectifiqué y he migrado al sistema EXT4 y dicha migración a EXT4 está documentada aquí. La documentación que sigue es válida para hacer la instalación desde cero con EXT4
Crear los File Systems
- Disco 0: SISTEMA OPERATIVO: NO HARÉ BACKUPS DESATENDIDOS DE ESTAS 3 PARTICIONES (/boot, Root (/) y swap)
# mke2fs /dev/sda1 Tipo Ext2 /boot <= Para copias del kernel, GRUB y arranque... # mkfs.ext4 /dev/sda3 Tipo EXT4 / (Root) <= Root File System # mkswap /dev/sda2 Tipo Swap Swap # swapon /dev/sda2
- Disco 1: PARTICIÓN PARA DATOS /home
# mkfs.ext4 /dev/sdb1 Tipo EXT4. /home en disco de 1500GB
- Disco 2: PARTICIÓN PARA DATOS /data
# mkfs.ext4 /dev/sdc1 Tipo EXT4. /data en disco de 1500GB (repositorios, videos, musica, podcast, servidores)
Montar Root y Boot y continuar la Instalación
- Monto las particiones necesarias para empezar la instalación.
# mount /dev/sda3 /mnt/gentoo <=== Tercera partición del disco 0, aquí vamos a instalar "root", # mkdir /mnt/gentoo/boot # mount /dev/sda1 /mnt/gentoo/boot
- A continuación ponemos la fecha
# date MMDDhhmmYYYY
- Cambio al directorio root destino (mnt/gentoo)
# cd /mnt/gentoo
- Vamos al Mirror más cercano (un ejemplo es la UPC)
NOTA: Usar Mozilla desde el entorno gráfico para acceder a estos repositorios http://www.gentoo.org/main/en/mirrors.xml http://gentoo-euetib.upc.es/mirror/gentoo/ Ir al directorio releases/amd64/2008.0/stages Bajarse los ficheros: stage3-amd64-2008.0.tar.bz2 (Aprox. 124 MB) <=== NOTA!! AUNQUE PONE AMD64... ES CORRECTO, VALE PARA CORE-i7 stage3-amd64-2008.0.tar.bz2.DIGESTS
- Verificar que al bajarlos no hubo errores:
# md5sum -c stage3-amd64-2008.0.tar.bz2.DIGESTS
NOTA: Nos hemos bajado un conjunto de paquetes y aplicaciones básicas ya compiladas, por lo que no es óptimo. Es decir, nos bajamos el Stage para empezar a andar por casa, pero en un momento dado tendremos que recompilar todo a 64bits optimizado para el "peazo" chip que tenemos... ya llegamos ya...
- Descomprimir el fichero.
# cd /mnt/gentoo # tar xvjpf stage3-*.tar.bz2
- Instalamos Portage
# cd /mnt/gentoo Vamos al Mirror más cercano (usar mozilla) http://www.gentoo.org/main/en/mirrors.xml http://gentoo-euetib.upc.es/mirror/gentoo/ Ir al directorio snapshots/ Bajarse los ficheros: portage-latest.tar.bz2 (Aprox. 34MB) portage-latest.tar.bz2.md5sum
- Verificar que al bajarlos no hubo errores:
# md5sum -c portage-latest.tar.bz2.md5sum
- Extraemos el snapshot de Portage
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
Configuración inicial de make.conf
- Te recomiendo que antes leas el manual sobre los flags de la variable USE
- Editar el fichero /mnt/gentoo/etc/make.conf
# Configuracion valida para el Core i7 (aunque no es la optima)
CFLAGS="-O2 -pipe -march=nocona" # <== No es la definitiva, pero de momento es lo mejor, lo cambiaremos más tarde.
# nocona: Improved version of Intel Pentium4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3 instruction set support.
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j9"
USE="xcb -motif -mozilla -firefox xulrunner vhosts font-server alsa mysql maildir sasl oggvorbis apache2 imap nvidia xvmc gnome jpeg kde ogg opengl png truetype udev vorbis X xml xv ffmpeg snmp samba tiff java imagemagick exif x264 gtk esd zeroconf avahi lm_sensors lcms"
# Lenguaje
LINGUAS="es en"
#LIRC_OPTS="--with-driver=serial"
LIRC_DEVICES="serial"
# Para xorg 7
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="nvidia"
# Para apache
APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias"
Chroot al nuevo Linux
- Copiamos el fichero resolv.conf
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
- Cambiamos el entorno
# mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev # chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile # export PS1="(chroot) $PS1"
Aviso:
chroot CAMBIA EL ENTORNO AL NUEVO LINUX QUE ESTÁS CONSTRUYENDO. SI NECESITAS OTRA SHELL DURANTE LA INSTALACIÓN, EJECUTA LO SIGUIENTE chroot /mnt/gentoo /bin/bash env-update source /etc/profile export PS1="(chroot) $PS1" SI TERMINAS TODA LA INSTALACIÓN Y TU NUEVO SISTEMA NO HACE BOOT, ENTONCES TIENES QUE VOLVER A ENTRAR CON EL CD DE SYSTEM RESCUE Y EJECUTAR LO SIGUIENTE PARA ARREGLAR LO QUE SEA NECESARIO mount /dev/sda3 /mnt/gentoo mount /dev/sda1 /mnt/gentoo/boot swapon /dev/sda2 mount -t proc none /mnt/gentoo/proc mount -o bind /dev /mnt/gentoo/dev chroot /mnt/gentoo /bin/bash env-update source /etc/profile export PS1="(chroot) $PS1"
Sincronizar Portage
- Sincronizar Portage
# emerge --sync
- Actualizar Portage (sólo si lo pide)
# emerge portage
- Edito /etc/locale.gen
en_US ISO-8859-1 en_US.UTF-8 UTF-8 es_ES ISO-8859-1 es_ES@euro ISO-8859-15 es_ES.UTF-8 UTF-8 en_US.UTF-8@euro UTF-8 es_ES.UTF-8@euro UTF-8
- Timezone
cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime
Actualizar GCC a 4.3.3
Para poder activar la "Mejor Optimización" para GCC para Core i7, es necesario ir a la versión 4.3.3 del compilador GCC, dado que soporta la opción -march=native, que es la que va a usar todas las optimizaciones del i7.
- Como referencia, este es el enlace a las opciones para x86_64 de la última versión de GCC (4.3) a la que estamos actualizando.
- Actualizar GCC a lo último (a fecha de hoy 30/1/09). Dado que gcc 4.3.3 todavía no está marcado como estable, es necesario usar el KEYWORD ~amd64
# mkdir /etc/portage # echo "=sys-devel/gcc-4.3.3 ~amd64" >> /etc/portage/package.keywords # echo "=sys-libs/glibc-2.9_p20081201-r1 ~amd64" >> /etc/portage/package.keywords # emerge -av gcc
- Cambiar al nuevo GCC
# gcc-config -l # gcc-config x86_64-pc-linux-gnu-4.3.3 # env-update # source /etc/profile
Configuración FINAL del make.conf
- PONER AHORA el CFLAG super-optimizado para el Core i7
Nota: desde la versión 4.3.2, el GCC es capaz de detectar automáticamente cuales son todas las posibilidades de la CPU donde está compilando. Esto se consigue con el nuevo parámetro "-march=native", que es justo lo que necesitamos para nuestro Core i7.
- Editar el fichero /etc/make.conf
# Configuración optima para Intel core i7
CFLAGS="-O2 -pipe -march=native" <=== Core i7
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j9"
USE="xcb -motif -mozilla -firefox xulrunner vhosts font-server alsa mysql maildir sasl oggvorbis apache2 imap nvidia xvmc gnome jpeg kde ogg opengl png truetype udev vorbis X xml xv ffmpeg snmp samba tiff java imagemagick exif x264 gtk esd zeroconf avahi lm_sensors lcms"
# Lenguaje
LINGUAS="es en"
#LIRC_OPTS="--with-driver=serial"
LIRC_DEVICES="serial"
# Para xorg 7
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="nvidia"
# Para apache
APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias"
Toolchain
- Ejecutar fix_libtool_files.sh
# fix_libtool_files.sh 4.1.2
- Recompilar el Toolchain
# emerge -v binutils gcc glibc libtool
- Compilar herramientas de apoyo básicas
# emerge -v genlop gentoolkit A partir de ahora echale un ojo al comando "genlop -l", está muy bien para ver lo que vas instalando. Además no dejes de probar el comando "genlop -t <nombre de paquete>" o "genlop -tc"; ambos para ver cuanto tardó en instalar un paquete o cuanto va a tardar el que se instala ahora...
- Verifica que vas a poder "actualizar el sistema completo". En mi caso el siguiente comando me dijo que tenía bloqueos...
# emerge -pve system
- Solo en mi caso... que tenía algunos bloqueos, los resolvía así:
# emerge -C sys-libs/com_err sys-libs/ss # emerge -C sys-fs/e2fsprogs # emerge -pv e2fsprogs NOTA: No tiene porqué ocurrir lo mismo en tu caso...
Update completo
Nota: Los siguientes tres pasos es lo que yo hice en mi caso porque había tenido algunos problemas y además quería asegurarme de que TODO se recompilaba. Es una exageración y probablemente se puedan optimizar haciendo directamente SOLO el paso 1.3. En mi caso me dio igual, la velocidad de este equipo es impresionante y lo que hace 7 años suponía 1 día y medio, hoy lo termina en 2-3 horas.
- 1.1 Actualizo el sistema
# emerge -e system
- 1.2 Actualizamos todo a la última versión
# emerge -DuvN world
- 1.3 PARA ASEGURARNOS QUE EL SISTEMA ESTÁ 100% RECOMPILADO POR COMPLETO CON EL NUEVO GCC:
- Elimino GCC antiguo Y RECOMPILO TODO OTRA VEZ !!!!!!
NOTA: ESTO SEGURO QUE ES INNECESARIO, PERO COMO SOLO TARDA UN PAR DE HORAS EN EL CORE i7, HE DECIDIDO HACERLO PARA ASEGURARME 100% QUE EL SISTEMA ESTÁ POR COMPLETO A 64bits A LO ÚLTIMO, SIN PROBLEMAS DE DEPENDENCIAS. # emerge -C sys-devel/gcc-4.1.2 # fix_libtool_files.sh 4.1.2 # emerge -1 libtool # env-update && source /etc/profile # emerge -e system && emerge -e world
Configurar el Kernel
- Verificar que la Zona horaria es correcta
# nano -w /etc/conf.d/clock CLOCK="local" TIMEZONE="Europe/Madrid" CLOCK_SYSTOHC="yes"
- Cuando termines toda la instalación te recomiendo que configures los Servicios horarios, cliente y servidor NTP
- Descarga del Kernel (última versión 2.6.28 ~amd64 a fecha 7/2/09).
# echo "=sys-kernel/gentoo-sources-2.6.28-r1 ~amd64" >> /etc/portage/package.keywords # emerge -v gentoo-sources NOTA: Hay varios paquetes que representan los fuentes del kernel. Tenemos que elegir uno del repositorio de instalación (Portage). Todos ellos parten del kernel original (se llama vanilla sources) pero tienen diferentes variantes. En mi caso uso las variantes y addons de Gentoo (gentoo-sources)
- Configurar el kernel
# cd /usr/src/linux # make menuconfig
Aviso:
- Accede al listado completo de la configuración del Kernel que use en mi primera compilación.
- O mejor... aquí tienes una copia de mi fichero .config, que está actualizado a la última compilación con modificaciones recientes sobre el original.
Compilar/Instalar el Kernel
- Compilar el Kernel
# make && make modules_install
- Verificar montaje de /boot
NOTA: Verificar que tenemos montado /dev/sda1 en /boot. Se hizo al principio. Se comprueba con el comando "mount"
- Instalar el Kernel
Nota: Adecuar el número de versión a la que estás instalando (la misma que cuando hiciste el emerge del gento-sources...) # cd /usr/src/linux # cp arch/x86_64/boot/bzImage /boot/bzImage-2.6.28-gentoo-r1 # cp System.map /boot/System.map-2.6.28-gentoo-r1
- Indicar que [M]ódulos del Kernel queremos que se cargen durante el boot
# nano -w /etc/modules.autoload.d/kernel-2.6 NOTA: En mi caso de momento no voy a poner ninguno hasta que no lo necesite más adelante...
Configurar el sistema
- Creo directorio data
NOTA: Es el directorio donde montaré el tercer disco # mkdir /data
- Editar el fstab, dar de alta todos los file systems del sistema y cómo queremos que se monten/traten...
# nano -w /etc/fstab # Disco 0 de 500GB (/boot, swap y /) /dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/sda2 none swap sw 0 0 /dev/sda3 / ext4 noatime 0 1 # Disco 1 de 1500GB (/home) /dev/sdb1 /home ext4 noatime 0 2 # Disco 2 de 1500GB (/data) /dev/sdc1 /data ext4 noatime 0 2 /dev/cdrom /mnt/cdrom auto noauto,ro 0 0 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0
- Información de red
- Nombre del equipo (MUY IMPORTANTE)
# nano -w /etc/conf.d/hostname HOSTNAME="bolica" <== Pon el nombre que quieras...
- Domain name
# nano -w /etc/conf.d/domainname OVERRIDE=1 DNSDOMAIN="parchis.org" NISDOMAIN=""
- Configurar la red
# nano -w /etc/conf.d/net NOTA: Dadas las diferentes opciones... no voy a documentar esta parte. El fichero es muy autoexplicativo y es el único que hay que tocar para que funcione la red. Si tenemos más de una tarjeta entonces habrá que hacer posteriormente un par de symbolic links...
- Inicio automático de la red en el próximo boot
# rc-update add net.eth0 default
- Si vas a usar la segunda tarjeta LAN2, acuerdate de hacer esto:
# cd /usr/init.d # ln -s net.lo net.eth1 # rc-update add net.eth1 default
- Editar /etc/hosts y modificar la linea de localhost
127.0.0.1 bolica.parchis.org bolica localhost localhost.localdomain
- Fiichero /etc/rc.conf
# nano -w /etc/rc.conf UNICODE="yes" CONSOLEFONT="lat9w-16"
- Fichero /etc/env.d/02locale
LC_ALL="es_ES.UTF-8" LC_COLLATE="es_ES.UTF-8" LC_CTYPE="es_ES.UTF-8" LC_MESSAGES="es_ES.UTF-8" LC_MONETARY="es_ES.UTF-8" LC_NUMERIC="es_ES.UTF-8" LC_PAPER="es_ES.UTF-8" LANG="es_ES.UTF-8"
- Fichero /etc/conf.d/consolefont
CONSOLEFONT="lat9w-16"
- Keymaps
# nano -w /etc/conf.d/keymaps KEYMAP="-u es" SET_WINDOWKEYS="yes" EXTENDED_KEYMAPS="backspace euro2" DUMPKEYS_CHARSET=""
- El reloj
# nano -w /etc/conf.d/clock CLOCK="local" TIMEZONE="Europe/Madrid" CLOCK_OPTS="" CLOCK_SYSTOHC="yes"
Passwd de root
- Este es un paso MUY IMPORTANTE. NO OLVIDARLO :-)
# passwd
Instalación herramientas necesarias
- Sistema de bitácoras (registro o log)
# emerge -v metalog # rc-update add metalog default NOTA: El metalog es altamente configurable, ver man 5 metalog.conf En mi caso he realizado modificaciones importantes, mira mi copia del fichero /etc/metalog.conf
- Sistema de cron
# emerge -v vixie-cron # rc-update add vixie-cron default
- Indexación de archivos
# emerge -v slocate NOTA: Para buscar "cualquier" fichero en cualquier disco, usar el comando "locate -i <nombre>"
- Cliente DHCP
# emerge -v dhcpcd
- Herramientas varias
# emerge -v pciutils
- Configuramos SSHD para que arranque automáticamente en cada boot.
# rc-update add sshd default
No olvidar EXT4
Es importante que tengamos el siguiente paquete a la última versión, dado que Root (/) irá en formato EXT4.
bolica linux # echo "=sys-libs/e2fsprogs-libs-1.41.4 ~amd64" >> /etc/portage/package.keywords bolica linux # echo "=sys-fs/e2fsprogs-1.41.4 ~amd64" >> /etc/portage/package.keywords bolica linux # emerge -v e2fsprogs
El gestor de arranque (GRUB)
Ejemplo 1: (mi caso) Sólo linux en Disco 0
- Primero instalamos el programa
# emerge -v grub NOTA: Se baja "app-emulation/emul-linux-x86-baselibs-20080316"
- Editamos el fichero de configuración
# nano -w /boot/grub/grub.conf
timeout 10 default 0 # For linux with latest kernel title=Gentoo Linux 2.6.28-gentoo-r1 root (hd0,0) kernel (hd0,0)/bzImage-2.6.28-gentoo-r1 root=/dev/sda3
Ejemplo 2: Dual Boot Windows/Linux en Disco 0
- En el caso de que tengas lo siguiente:
Partición 0: Windows Partición 1: Swap Partición 2: Root (con el boot incluido) EXT4 Partición 3: Datos
- Necesitas instalar al menos la versión -r9 de grub
# echo "=sys-boot/grub-0.97-r9 ~amd64" >> /etc/portage/package.keywords # emerge -v grub
- Utilizar un fichero como este:
timeout 10 default 0 # Windows en la Partición 0 title=Microsoft Windows Vista root (hd0,0) savedefault makeactive chainloader +1 # Linux en la Partición 2 title=Gentoo Linux 2.6.28-gentoo-r1 root (hd0,2) kernel (hd0,2)/boot/bzImage-2.6.28-gentoo-r1 root=/dev/sda2
- Además aquí puedes encontrar una copia de mi última versión del fichero /boot/grub/grub.conf
Instalación del MBR
- Instalación de GRUB (yo use la opción automática)
- Opción Automática:
# grep -v rootfs /proc/mounts > /etc/mtab # grub-install --no-floppy /dev/sda
- Opción manual (Para disco 0 con solo Linux)
# grub --no-floppy grub> root (hd0,0) (Especifique donde tiene su partición /boot) grub> setup (hd0) (Instalamos GRUB en el MBR) grub> quit (Salimos del intérprete de comandos de GRUB)
- Opción manual (Para disco 0 con dual boot Windows en partición 0 y Linux en partición 2)
# grub --no-floppy grub> root (hd0,2) (Especifique donde tiene su partición /boot) grub> setup (hd0) (Instalamos GRUB en el MBR) grub> quit (Salimos del intérprete de comandos de GRUB)
Configurar driver Realtek 8111D
- Si recordamos, mi ordenador tiene 2 x * LAN: 2 x chips Realtek 8111D (10/100/1000 Mbit), sin embargo NO pude usarlos durante la instalación debido a que no está soportado por los LiveCDs a fecha de hoy. Por lo tanto utilicé otra tarjeta de Realtek. Ha llegado el momento de "quitar la tarjeta temporal" y compilar el driver definitivo.
- Tenemos dos opciones:
Opción A: Driver R8169 del kernel (preferida)
- Viene incluido con el kernel 2.6.28-gentoo-r1
Nota: El driver se llama R8169 pero soporta el chip RTL8111D, que es el que viene en la Motherboard.
| Configuración del kernel de Linux: Soporte chip Realtek R8111D |
--- Ethernet (1000 Mbit) <M> Realtek 8169 gigabit ethernet support [*] VLAN support |
Opción B: Driver R8168 de Realtek
- Usar el driver R8168 descargándolo del sitio del fabricante (Realtek). Hay que usar la versión 8.010.00 del driver para la RTL8111D, bajo el fichero r8168-8.010.00.tar.bz2 desde realtek.com.
Nota: El driver se llama R8168 pero soporta el chip RTL8111D, que es el que viene en la Motherboard. Lo descargo y lo copio al servidor, un buen sitio es /usr/src/Realtek bolica ~ # ls -al /usr/src/Realtek/ total 36 drwxr-xr-x 3 root root 120 Jan 31 17:10 . drwx------ 3 root root 248 Jan 31 17:10 .. drwxr-xr-x 3 500 500 240 Jan 26 14:10 r8168-8.010.00 -rw-r--r-- 1 500 500 32848 Jan 26 14:10 r8168-8.010.00.tar.bz2 Compilar el driver (debe hacerse cada vez, después de compilar el kernel) # cd /root/Realtek/r8168-8.010.00 # make clean modules # make install NOTA: Se copia /usr/src/Realtek/r8168-8.010.00/src/r8168.ko --> /lib/modules/2.6.28-gentoo-r1/kernel/drivers/net/ # depmod -a En caso de problemas con el número de eth?, borrar el fichero /etc/udev/rules.d/70-persistent-net.rules Configura carga automática del módulo durante el boot # nano /etc/modules.autoload.d/kernel-2.6 r8168 # update-modules
- Cada vez que actualices el Kernel tendrás que volver a repetir los siguientes pasos:
Aviso: Tras compilar el kernel y copiar sus ficheros a /boot Y ANTES DE HACER BOOT haz lo siguiente
# cd /usr/src/Realtek/r8168-8.010.00 # make clean modules # make install # depmod -a
Configurar eth0 y eth1
Primero tenemos que verificar que el sistema reconoce las dos tarjetas Ethernet:
# lspci : 08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) :
Aviso: puede que sólo reconozca una de las tarjetas o ninguna, en cuyo caso tienes que revisar una opción de la BIOS llamada "Green LAN" y ponerla en disable. Dicha opción, cuando está habilitada, desactiva la tarjeta LAN durante el boot si no tiene cable conectado.
- Editar el fichero /etc/conf.d/net (usa el net.example a modo de documentación) y adecuarlo a tu instalación.
En mi caso ha quedado algo parecido a:
config_eth0=( "172.16.1.20/24" )
config_eth1=( "86.35.27.1/24" )
routes_eth0=(
"default via 172.16.1.1" # IPv4 default route
)
mtu_eth0="1500"
Reiniciar el sistema
- Rearrancamos el equipo
NOTA: Salirse de las sesiones ssh clientes y chroot's # exit cdimage ~# cd cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo cdimage ~# reboot
- RECUERDA QUITAR EL CD DE SYSTEM RESCUE !!!!!!!!!!!
... ahora debería hacer boot desde el disco duro !
ATENCIÓN: EL PRIMER "BOOT" SIEMPRE ES UNA INCÓGNITA. PUEDE QUE TE FUNCIONE O PUEDE QUE NO. A MI ME FUNCIONÓ :-)
Aviso: Si no hace boot, entonces te recomiendo que uses el SystemRescue CD para volver a arrancar y ejecutes lo siguiente para poder hacer las moficicaciones y arreglos necesarios.
# mount /dev/sda3 /mnt/gentoo # mount /dev/sda1 /mnt/gentoo/boot # swapon /dev/sda2 # mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev # chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile # export PS1="(chroot) $PS1"
Tras hacer boot...
- 'VERIFICAR LA HORA DEL EQUIPO.'
- Según arranca verificar la hora HW
- Cuando arranca verificar la hora Linux y cambiarla MANUALMENTE si hace falta
# date MMDDhhmmYYYY
Primer BOOT desde el Disco Duro
Una vez que ya ha arrancado el equipo desde su disco duro, nos queda un largo trabajo para afinar el sistema, crear usuarios, dar de alta servicios, etc, etc... pero que conste que ya tenemos el sistema up-and-running y todos estos pasos se pueden ir haciendo más tranquilamente.
Consola 80x24
Ahora te encontrarás con la "agradable sorpresa" de que tu nuevo Linux ha arrancado con una fea consola de 80x24 en la que es difícil trabajar :-). Bueno, no desesperes, ya llegará ya... tu entorno Xorg, tu entorno FrameBuffer para una consola gráfica, etc. Esta es una de las razones por las que recomiendo seguir instalando en remoto, con un cliente ssh, para tener un entorno de trabajo más amigable..
Conectar desde cliente SSH
- Conecto desde un cliente
# ssh -l root bolica.parchis.org (Cambia este nombre por el de tu equipo, por la IP, etc... recuerda que este es mi caso)
Últimos retoques
- Verifico los FileSystems
bolica ~ # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 465G 2.1G 463G 1% / <=== !!! udev 10M 124K 9.9M 2% /dev /dev/sdb1 1.4T 33M 1.4T 1% /home <=== !!! /dev/sdc1 1.4T 33M 1.4T 1% /data <=== !!! tmpfs 3.0G 0 3.0G 0% /dev/shm
- Crear los usuarios (repetir incrementando el uid y gid por cada usuario real que queramos tener)
# groupadd -g 1100 luis # useradd -u 1100 -g luis -m -G cron,audio,cdrom,cdrw,users,wheel,audio -d /home/luis -s /bin/bash luis NOTA: El gid/uid (en mi caso 1100/1100) recomiendo que empiece superior a 1024.
- Creo el fichero .bashrc del usuario luis, junto con .bashrc_environment-utf8 en su $HOME
* Fichero $HOME/.bashrc * Fichero $HOME/.bashrc.environment-utf8
- Eliminar los tarballs de instalación
# rm /stage3-*.tar.bz2* # rm /portage-latest.tar.bz2*
- La "cosa" debería quedar más o menos así
bolica ~ # ls -al / total 16 drwxr-xr-x 21 root root 512 Jan 31 01:16 . drwxr-xr-x 21 root root 512 Jan 31 01:16 .. drwxr-xr-x 2 root root 2776 Jan 31 00:31 bin drwxr-xr-x 2 root root 48 Jan 29 22:39 boot drwxr-xr-x 3 root root 48 Jan 29 22:39 data drwxr-xr-x 12 root root 13840 Jan 31 00:47 dev drwxr-xr-x 36 root root 2736 Jan 31 01:15 etc drwxr-xr-x 4 root root 72 Jan 31 01:15 home lrwxrwxrwx 1 root root 5 Jan 30 02:57 lib -> lib64 drwxr-xr-x 3 root root 3784 Jan 31 00:31 lib32 drwxr-xr-x 8 root root 4040 Jan 31 00:31 lib64 drwxr-xr-x 4 root root 120 Jun 17 2008 mnt drwxr-xr-x 3 root root 104 Jan 30 02:42 opt dr-xr-xr-x 126 root root 0 Jan 31 00:45 proc drwx------ 2 root root 104 Jan 30 03:25 root drwxr-xr-x 2 root root 3224 Jan 31 00:31 sbin drwxr-xr-x 12 root root 0 Jan 31 00:45 sys drwxrwxrwt 4 root root 112 Jan 31 00:50 tmp drwxr-xr-x 14 root root 440 Jan 31 00:31 usr drwxr-xr-x 12 root root 312 Jan 31 00:24 var bolica ~ # ls -al /home/ total 1 drwxr-xr-x 4 root root 72 Jan 31 01:15 . drwxr-xr-x 21 root root 512 Jan 31 01:16 .. drwxr-xr-x 3 luis luis 160 Jan 31 01:15 luis bolica ~ # ls -al /home/luis total 12 drwxr-xr-x 3 luis luis 160 Jan 31 01:15 . drwxr-xr-x 4 root root 72 Jan 31 01:15 .. -rw-r--r-- 1 luis luis 127 Jan 30 02:33 .bash_logout -rw-r--r-- 1 luis luis 193 Jan 30 02:33 .bash_profile -rw-r--r-- 1 luis luis 551 Jan 30 02:33 .bashrc drwx------ 2 luis luis 48 Jun 17 2008 .ssh
¡Enhorabuena! Ya tenemos funcionando Gentoo. Pero ¿A donde ir desde aquí? ¿Cuáles son ahora las opciones? ¿Qué explorar primero?. La respuesta varía... Gentoo ofrece muchas posibilidades y, por lo tanto, muchas características documentadas (y otras menos documentadas)...
El siguiente paso es seguir compilando algunas cosas más...
Compilar múltiples paquetes
A partir de ahora queda mucho por instalar y podemos aprovechar para compilar de golpe un montón de paquetes que de una u otra forma tendremos que instalar. Yo suelo dejar esta tarea para por la noche, así no se pierde el tiempo durante el día. El truco es pedir que se instale "mucho" a la vez, por ejemplo:
PUEDES VER EN LOS GRÁFICOS A "8" CPU'S COMPILANDO A LA VEZ :-)
- Para que te hagas una idea, voy a ver qué haría si "-p" pretendemos instalar lo siguiente
bolica ~ # emerge -pv app-editors/emacs gkrellm xdm xfs kde gnome gimp nmap tcpdump wireshark : : (Verás una lista enorme de paquetes a instalar) : Total: 391 packages (386 new, 5 in new slots), Size of downloads: 942,748 kB <==== 391 Paquetes !!!! ;-)
Ahora bien, para que estas compilaciones funcionen hay que "tocar" casi siempre los ficheros de configuración de Portage, en este caso y tras varios intentos fallidos estas son las modificaciones que he hecho...
Adaptar PORTAGE
- Añado keywords que voy a necesitar para ciertos paquetes, opciones de USE, etc... Te recomiendo echarle un ojo a mis ejemplos y modificar tus ficheros de acuerdo a tus necesidades.
Compilación de muchos paquetes
A continuación me dedico a compilar múltiples paquetes... es un proceso largo y basta con simplemente decir que instale kde y gnome como para que la lista crezca. Usa la opción -pv antes de ejecutar el comando con sólo -v para ver que pretenderá hacer :-)
bolica ~ # emerge -pv gkrellm xdm xfs app-editors/emacs kde gnome gimp nmap tcpdump wireshark
Utilizo el comando "nohup" por varias razones: Para que todo el proceso quede documentado, para evitar que se pare el proceso (por desconexión del cliente ssh por ejemplo), para documentar más facilmente.
- Lanzamos la compilación
bolica ~ # cd bolica ~ # nohup emerge -v gkrellm xdm xfs app-editors/emacs kde gnome gimp nmap tcpdump wireshark & : :
NO DEJA DE SER IMPRESIONANTE VER A LAS 8 CPU'S A TOPE
- Para "ver" cómo va el tema en tiempo-real:
# cd /root # tail -f nohup.out
2 x Tarjetas de Red Ethernet
Si recuerdas mi equipo tiene dos tarjetas de red Ethernet. Vuelvo a modificar la BIOS para activarlas y utilizo el driver del kernel finalmente. Para su configuración modifico el fichero /etc/conf.d/net
config_eth0=( "192.168.1.1/24" ) config_eth1=( "82.234.9.122/24" ) routes_eth1=( "default via 82.234.9.1" # IPv4 default route )
Finalizar, Siguientes Pasos
Una vez que hemos terminado con la instalación del Sistema Operativo, paso a la instalación, configuración y puesta en marcha de cada uno de los servicios.
---
Enlaces y Créditos
| [1] | http://wiki.luispa.com/ | Página principal de LuisPa. |
| [2] | http://www.gentoo.org/doc/es/guide-localization.xml | Guía de localización en Español |
Volver a HowTo Servidor Gentoo Linux
--Luis 17:55 7 feb 2009 (CET)

