En este trabajo se instala un entorno chroot sid partiendo en un sistema principal Sarge.
¿QUÉ ES CHROOT?
Chroot es una instrucción de linux que nos permite ejecutar una segunda instancia del usuario root en otro árbol de directorios distinto al suyo.
¿QUÉ ES DEBOOTSTRAP?
Debootstrap es una pequeña maravilla que permite instalar el sistema operativo linux en un directorio que le indiquemos. Si no lo tenemos instalado, tendremos que hacerlo:
# apt-get install debootstrap
Ejecutar # man bootstrap para información sobre opciones del comando.
ERROR EN INSTALACIÓN CON DEBOOTSTRAP:
Si nos aparece un error del tipo:
# debootstrap sid /chroot-sid http://ftp.rediris.es/debian
I: Retrieving debootstrap.invalid_dists_sid_Release
I: Validating debootstrap.invalid_dists_sid_Release
I: Retrieving debootstrap.invalid_dists_sid_main_binary-i386_Packages
….etc.
sin llegar a realizar la instalación, es preciso actualizar el debootstrap.
Solución:
Instalar debootstrap de la versión Sid. Para ello:
- Cambiar el archivo sources.list para que apunte a la versión Sid.
- Instalar o actualizar debootstrap: # apt-get install debootstrap
- Volver a poner en sources.list las fuentes anteriores. Esta actualización de debootstrap a la última versión no causa ningún problema ya que sólo se descarga e instala ese mismo paquete si dependencias.
INSTALACIÓN DEL SISTEMA BASE SID CON DEBOOTSTRAP
Lo primero es crear el directorio donde vamos a instalar nuestro nuevo linux:
# mkdir /chroot
# mkdir /chroot/sid
Ahora con debootstrap instalamos un sistema base sid en el directorio creado. Debootstrap no usa los source.list del sistema sino que por defecto apunta a ftp.debian.es. No obstante el comando permite usar cualquier mirror, como hacemos a continuación:
# debootstrap sid /chroot/sid http://ftp.es.debian.org/debían
Como se observa, en la instalación se lista cada paquete instalado. A partir de aquí tenemos un segundo Debian con la distribución sid con todos sus subdirectorios instalado en /choot/sid.
Otro detalle importante es que en el nuevo subsistema el archivo sources.list apunta al mirror que habíamos indicado en el comando de instalación. Cualquier actualización que hagamos desde este entorno sid usará su propia sources.list.
Si queremos eliminar toda esta instalación es tan sencillo como borrar su directorio raíz:
# rm –R /chroot/sid
EJECUCION DE CHROOT
No olvidar que un chroot necesita además el sistema de archivos proc. Para ello configuramos en el archivo fstab del sistema principal la línea que nos permite en montaje del sistema de ficheros proc para este entorno chroot:
proc-sid /chroot/sid/proc proc none 0 0
Para entrar en el entorno, simplemente se ejecuta:
# chroot /chroot/sid
El intérprete de comandos que se obtiene se estará ejecutando en sid y estará enclaustrado en el árbol de directorios creado en /chroot/sid. Si probamos a listar nuestros directorios personales veremos que ya no están en este entorno.
ACCESO AUTOMATICO A CONSOLA CHROOT
Cada vez que queramos entrar en el entorno chroot tendremos que teclear el comando /# chroot /chroot/sid pero podemos hacer para que se ejecute el proceso login en un terminal virtual diferente pudiendo acceder a él directamente. Para ello editamos, en el sistema principal, el archivo /etc/inittab añadiendo la línea correspondiente:
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty’s go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
8:23:respawn:chroot /chroot/sid/ /sbin/getty 38400 tty8 nuevo tty8
Nos hemos saltado el tty7 ya que por defecto es usado por el entorno gráfico x, tal como se comenta en el archivo. Para recargar el nuevo inittab podemos reiniciar el INIT del sitema sin tener que reiniciar la máquina
# init q
A partir de ahí con Ctrl+Alt+F8 accedemos a nuestro sid en modo consola.
(Nota: personalmente esto último a mi no me ha funcionado)
CONFIGURACIÓN DEL SISTEMA BASE E INSTALACIÓN DEL ENTORNO GRAFICO
Lo que hemos obtenido es un entorno de comandos sid muy básico y en ingles. El siguiente paso es configurar el sistema base e instalar todo lo que queramos, incluyendo el entorno gráfico. Esto se puede hacer de muchas maneras: usando apt-get, aptitude, deselect, etc.
Nota: He comprobado que la instrucción base-config no funciona y que al instalar el paquete locales te desinstala automáticamente el base-config.
Existe el paquete user-es, el cual instala leocales y el scrip castellanizar. Si instalamos user-es y después ejecutamos castellanizar deberíamos poder tener castellanizado el entorno.
INSTALACION DE UN SEGUNDO SARGE DE PRUEBAS
Si no queremos instalar sid pero sí un segundo sistema para hacer test en preproducción, es buena idea instalar un sarge sólo para este fin.
# debootstrap sarge /chroot/sarge http://ftp.es.debian.org/debían
ENTRAR EN EL ENTORNO
# chroot /chroot/sarge
PERSONALIZACIÓN Y CASTELLANIZACION DEL SISTEMA BASE
Una vez dentro de entorno sarge como nuevo root, tendríamos que configurar el sistema base. Si bien está documentado que la instrucción base-config debe funcionar, el resultado obtenido es:
# base-config
base-config no da opciones de personalización del sistema base al ejecutarlo en este entorno.
Debemos instalar los locales para poner el teclado en castellano:
# apt-get install locales –simulate
Reading Package Lists… Done
Building Dependency Tree… Done
The following NEW packages will be installed:
locales
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Inst locales (2.3.2.ds1-22 ftp.es.debian.org)
Conf locales (2.3.2.ds1-22 ftp.es.debian.org
#
Selecionamos:
es_ES@euro ISO-8859-15
La generación de locales ya se hace al final de la instalación, aunque se puede repetir:
kepler:/# locale-gen
Generating locales…
es_ES.ISO-8859-15@euro… done
Generation complete.
#
Al entrar y salir otra vez en la sesión ya debemos tener la ñ, acentos, etc.