El post que buscas se encuentra eliminado, pero este también te puede interesar

Chroot (Un Debian en mi Ubuntu)

Anuncios

Somos varios ya los usuarios de GNU/Linux en T!, y calculo que debe haber alguno curioso como yo, que le gusta toquetear, instalar Distros, Virtualizar y demas. Hasta hace poco tiempo, yo hacía todo esto a travez de Virtualizadores completos, como Qtemu, o Vmware. Pero hay una manera mas eficiente, y cito[1]:


La idea es que podemos tener corriendo ambos sistemas al mismo tiempo, similar a una virtual machine tipo vmware o xen, pero mas eficiente ya que ambos compartiran el mismo kernel.




Los que entraron acá deben saber como trabaja con los directorios un sistema GNULinux, arranca con una raiz, y va abriendo un árbol.

Si no lo saben, pueden leer este post, que no es mío, pero bueno:

http://www.taringa.net/posts/linux/1186009/Estructura-de-Directorios-Linux.html

Ahora, que pasaría si yo le digo a mi sistema que a partir de un momento dado la Raíz del asunto sea... otro directorio mas arriba??? (Por ejemplo "/mnt/lenny"?)

Todos los procesos que surjan a partir de ese momento trabajaran creyendo que "/mnt/lenny" es "/" ...

Mi voz interior me pregunta:

PARA QUE CARAJO QUIERO ESO????


Mi Otro Yo responde:

PARA PODER TOQUETEAR UN SISTEMA COMPLETO SIN ROMPER NADA, SALAME!


Pero dicho de otra manera[1]:

Los entornos chroot tambien son conocidos por el apodo de ‘jaulas’, ya que una vez que el usuario esta dentro, nada de lo que haga puede afectar al sistema de archivos que quede fuera de la ‘jaula’. Por ejemplo, si la jaula se monta en /chroot/lenny , un usuario logueado en el entorno chroot no podra acceder a ningun archivo que este fuera de /chroot/lenny , por mas que este logueado como root en la jaula, ya que simplemente ‘no puede verse’ lo que esta fuera de la jaula. Por ejemplo, Estando dentro de la jaula /chroot/lenny/ podra acceder a: /chroot/lenny/etc --> dentro del entorno sera visto como si fuera /etc /chroot/lenny/bin --> dentro del entorno sera visto como /bin /chroot/lenny/root --> dentro del entono se mapea somo si fuera /root Pero no podra acceder a: /chroot/ /etc /bin /root


Pero para eso necesitamos que en "/mnt/debian" este TODO lo que le permite a un sistema funcionar... ( "/bin" "/var" "/etc" ... etc.. )

Por eso, una manera rapida de tener ese entorno preparado(Hay otras), es con debootstrap:

Así que, usamos synaptic, aptitude, apt... El que queramos.



Que es apt?

# apt-get install deboostrap

instala, y despues:

Puede servir para cualquier version, lenny, etch, sid, yo elegi etch...

# mkdir /mnt/etch
# cd /mnt/etch
# debootstrap etch /mnt/etch/




Si conectan como yo por Speedy, a tomarse unos mates, a mirar algun partido de la B por TyC y volver...


Salida aproximada del comando:

I: Validating libtasn1-3
I: Retrieving libsasl2-2
I: Validating libsasl2-2
I: Retrieving libreadline5
I: Validating libreadline5
I: Retrieving readline-common
I: Validating readline-common
I: Retrieving libncurses5
I: Validating libncurses5
I: Retrieving libusb-0.1-4
I: Validating libusb-0.1-4
I: Retrieving makedev
I: Validating makedev
[...]
I: Extracting lsb-base...
I: Extracting sed...
I: Extracting ncurses-bin...
I: Extracting base-files...
I: Extracting bash...
I: Extracting bsdutils...
I: Extracting coreutils...
I: Extracting libacl1...
I: Extracting libattr1...
I: Extracting diff...
I: Extracting dpkg...
I: Extracting e2fslibs...
I: Extracting e2fsprogs...
[...]
I: Unpacking bsdutils...
I: Unpacking coreutils...
I: Unpacking libacl1...
I: Unpacking libattr1...
I: Unpacking diff...
I: Unpacking dpkg...
I: Unpacking e2fslibs...
I: Unpacking e2fsprogs...
I: Unpacking libblkid1...
I: Unpacking libdevmapper1.02.1...
I: Unpacking libcomerr2...
I: Unpacking libss2...
I: Unpacking libuuid1...
I: Unpacking findutils...
[...]
I: Configuring ncurses-bin...
I: Configuring base-files...
I: Configuring libdevmapper1.02.1...
I: Configuring debconf-i18n...
I: Configuring libblkid1...
I: Configuring dpkg...
I: Configuring sysvinit-utils...
I: Configuring bash...
I: Configuring debconf...
I: Configuring lsb-base...
I: Configuring procps...
[...]
I: Configuring sysklogd...
I: Configuring klogd...
I: Configuring tasksel...
I: Base system installed successfully.


TERMINO!!!

¿ Cuanto ocupa Debian Lenny base, instalado con debootstrap ?


Como vemos … 153 Mb

root@XXX:/mnt/lenny# du -h --max-depth=1
3,1M ./bin
4,0K ./proc
47M ./var
4,0K ./initrd
12K ./root
988K ./etc
16K ./dev
4,0K ./sys
4,0K ./media
4,0K ./mnt
94M ./usr
4,0K ./home
4,0K ./opt
4,0K ./srv
6,3M ./lib
4,0K ./boot
2,8M ./sbin
4,0K ./tmp
153M .


Y ahora?

Ahora nos podemos pasar a esa "Jaula" y todo lo que hagamos... instalar, desinstalar, toquetear, romper... quedará contenido en esa jaula...

Como entrar en la jaula???

Facil, si quieren otro día se las complico:

Abrimos una consola y COMO ROOT!!!:

# chroot /mnt/etch /bin/bash

les va a cambiar el prompt, eso quiere decir que ya estan... O casi..
porque faltaría hacer una pequeña modificación, que si llegaron hasta acá... les va a costar poco...

Salimos de la jaula

# exit

Y escribimos:

# gedit /etc/fstab
y agregamos al final del archivo (Cambiar los nombres segun corresponda):

procetch /mnt/etch/proc proc none 0 0

Guardamos, y despues ejecutamos:

# mount -a

AHORA SI!!!

Tienen un sistema base, para poder instalar paquetes de debian y probarlos, o jugar a desconfigurar ficheros...

Recuerden, siempre pueden entrar a los ficheros de su debian "Enjaulado" desde "/mnt/etch/"

Aclaraciones:
1- # = ejecutar siendo root
2- $ = ejecutar siendo usuario
3- si hay un comando "entre comillas" las comillas no se ponen
4- Este post es aburrido
5- No maltraten a ningun SO en los comentarios
6- Estos mismos pasos pueden llevarlos a cabo en su /home o en cualquier lugar del disco que se les plazca (Mientras tengan lugar)
7- (Fedelo) sirve para cualquier distro *nix (Pero el proceso puede variar un poco, dependiendo por ejemplo, la rama del Kernel)
8- (Fedelo) Hay una forma de tener entorno grafico en otra tty (Puede ser la 9) para pasar de un entorno grafico a otro...



Si entendieron, si no entendieron, si quieren instalar Debian, Ubuntu, no les anda algo, quejas sugerencias, o jamones, me mandan un MP con su dirección de correo y me aclaran si quieren ser agregados al msn, gtalk o contactados por mail.

Fuente: Yo y http://snarvaez.com.ar/libertad/index.php/2008/05/16/debootstrap_chroot_debian_lenny_ubuntu_8_hardy_heron/

17 comentarios - Chroot (Un Debian en mi Ubuntu)

@PoL666 -1
mm ta rarito pero no tengo ganas de toquetear algo que sobrepase /home jeje
@Fedelo
Te dejé los 9 que me quedan antes de irme a dormir, estoy hecho mierda!



¿Esto sirve para enjaular cualquier distro *nix based o puedo mandar alguna otra cosa? ¿Eso que ejecute ahí dentro no tiene que tener entorno gráfico si ya estoy usando el de Ubuntu verdad? ¿que carajo hago despierto después de 14 horas de trabajo?
@Fedelo
Uhh! después de escribir me dí cuenta que mis preguntas se contestan solas Es el cansancio.
@guisheca
Muy interesante lo tuyo che, te dejaría puntos pero no se porque carajo no me los renuevan!!!
@Gondezar
muy bueno!!! seguramente voy a romper algo muy pronto jajaja. Le mande Debian Etch (ya estable) y la verdad me costo bastante hacer funcar las cosas. Por ahi de esta manera puedo aprender mas facil.



Muchas gracias!
@gast0n
gracias capo!! a romper mi nuevo debian ahora
@mamuth
hoy mismo lo pruebo, despues te cuento que me quedo



van puntos
@ingente20
interesante gracias por el aporte