Como criar um chroot

Introdução

Quem tem um computador AMD64 e tentou usar uma distro apropriada para 64 bits já se deparou com um pequeno problema. Alguns pacotes ainda não foram portados para este sistema, sem contar os jogos. Como exemplo vou citar o WINE, e outra coisa simples: flash para o Firefox.O sistema operacional em 64 bits é otimizado para aproveitar o total uso do seu AMD64 e, apesar de a diferença não ser brutal para um desktop, ela existe e é visível. Mas como aproveitar 100% da minha máquina se algumas aplicações AINDA não foram portadas para a minha arquitetura? Claro que eu posso usar um sistema operacional em 32 bits sem problemas, mas e aí?Não vou levar em consideração que os pacotes podem ser compilados em um sistema a partir do zero. Vou analisar como um usuário desktop pode criar um chroot do Debian Sarge dentro de um sistema Ubuntu 64. Escolhi o Debian Sarge para o sistema não ficar “homogêneo” demais, mas ao final do artigo o leitor poderá perceber que se pode escolher outra distribuição a seu gosto.

Mãos à obra então.

Instalando o chroot

Vou partir do pressuposto que você já tenha o Ubuntu64 instalado em seu HD e que o mesmo esteja com os repositórios próprios ativados, além de uma conexão estabelecida com a web.Abra um terminal e dê início à instalação:$ sudo apt-get install dchroot debootstrap

Crie um diretório para o chroot ser instalado (sugestão de nome, pode ser outro, basta mudar as configurações adiante):

$ sudo mkdir /chroot

Vamos editar agora o arquivo dchroot.conf

$ sudo gedit /etc/dchroot.conf

Adicione uma linha assim no final do arquivo:

debian_sarge /chroot
Agora instalaremos o sistema básico do Debian. Esta etapa é um pouco demorada mesmo e pode parecer que nada está acontecendo, pois poucas são as saídas de progresso. Aqui demorou cerca de 15-20 minutos.$ sudo debootstrap –arch i386 sarge /chroot/ http://ftp.debian.org/debian/
Instalando o Debian Sarge

Vamos adicionar repositórios ao sources.list do Debian (não se esqueçam de que ele está no /chroot). Vejam como:$ sudo gedit /chroot/etc/apt/sources.listAdicionem as seguintes linhas:
## Debian Sarge
deb http://http.us.debian.org/debian/ sarge main contrib non-free
deb http://non-us.debian.org/debian-non-US/ stable/non-US main contrib non-free## Security Updates
deb http://security.debian.org/ stable/updates main contrib non-free
Salvem e saiam do editor. Vamos entrar no Debian agora:$ sudo chroot /chrootAgora, já dentro do Debian, vamos atualizar o APT.

# apt-get update

Saia do chroot, comandando:

# exit

Arrumando a casa

Para facilitar e muito a vida de vocês, vamos fazer com que o Debian use o mesmo diretório HOME que o Ubuntu, as mesmas senhas, etc… Execute estes comandos para “sincronizar” Ubuntu e Debian. Isto é feito no ambiente Ubuntu, por isso pedi para executar o exit no capítulo anterior.$ sudo cp /etc/passwd /chroot/etc/
$ sudo cp /etc/shadow /chroot/etc/
$ sudo cp /etc/group /chroot/etc/
$ sudo cp /etc/sudoers /chroot/etc/
$ sudo cp /etc/hosts /chroot/etc/
Agora vamos linkar alguns diretórios do Ubuntu para o Debian:

$ sudo gedit /etc/fstab

Copie estas linhas para o arquivo:

/home /chroot/home none bind 0 0
/tmp /chroot/tmp none bind 0 0
/dev /chroot/dev none bind 0 0
/proc /chroot/proc proc defaults 0 0
/media/cdrom0 /chroot/media/cdrom0 none bind 0 0
Crie um ponto de montagem para o CD-ROM no Debian:$ sudo mkdir /chroot/media/cdrom0E vamos montar tudo isto:

$ sudo mount -a

Note que se você tem uma partição listada no Ubuntu, ela NÃO irá aparecer no Debian, a menos que você a indique como feito no procedimento acima. Vou exemplificar para ficar mais claro. Vamos supor que você tenha uma partição onde guarda seus mp3s, montada em /mnt/mp3 (do Ubuntu). Se ela já estiver indicada no fstab do Ubuntu, basta dar um bind para a mesma no Debian. Veja só, apenas adicione esta linha:

/mnt/mp3 /chroot/mnt/mp3 none bind 0 0
Crie o ponto de montagem no chroot:$ sudo mkdir /chroot/mnt/mp3E monte-a:

$ sudo mount -a

ADVERTÊNCIA: Caso você tenha, um dia, a feliz idéia de sumir com a pasta /chroot, não se esqueça de desmontar todas as partições, retirar estes binds para as mesmas do fstab e só depois apagar o diretório. Não se esqueçam: dói muito não fazer isto e ver tarde demais que apagou todos os dados de outro diretório. Experiência própria. 8^)

Próxima etapa: completando o ambiente Debian.

Instalando o desktop Debian

É muito interessante você seguir este capítulo, apesar de não ser extremamente necessário. Vamos instalar um ambiente desktop Debian quase que completo. Isso vai ocupar espaço em disco, e não é pouco, mas o resultado final é bem melhor.Quem não quiser, pule esta etapa e instale apenas o que quiser do Debian.$ sudo chroot /chroot

# apt-get install gnome gnome-core

E vá tomar um cafezinho. Ele vai baixar o Gnome e suas dependências, mas antes de instalar ocorrerá um erro informando sobre o grupo Debian-exim. Basta comandar:

# addgroup –force-badname Debian-exim

E repetir o:

# apt-get install gnome gnome-core locales

Que os pacotes começarão a ser instalados sem problemas. No final, não se esqueça de configurar os locales para o pt_br:

# dpkg-reconfigure locales

Linkando aplicações do chroot para o Ubuntu

Vamos supor que você tenha o Totem instalado em seu Ubuntu e quer instalar o Totem no Debian também, porque ele poderá ter alguns codecs multimídia a mais que não existem ainda para o sistema 64 bits.Vamos criar um link para o executável Totem do Debian, para rodar direto do desktop Ubuntu, mas com o nome de Totem32 (que iremos atribuir ao mesmo).Mas, no exemplo abaixo, o aplicativo em questão é o Synaptic, mão-na-roda para instalar os pacotes do Debian.

Abra um terminal do Ubuntu e comande:

$ sudo gedit /usr/local/bin/do_dchroot

E adicione as seguintes linhas:

#!/bin/sh
/usr/bin/dchroot -d “`echo $0 | sed ‘s|^.*/||’` $*”
Salve e feche. Altere as permissões do arquivo:$ sudo chmod 755 /usr/local/bin/do_dchrootAgora, quando quiser acessar um terminal Debian Sarge, estando no Ubuntu, basta comandar:

$ dchroot -d

E para voltar ao terminal Ubuntu:

# exit

Criemos então um link para o Synaptic. Primeiro, instale-o. Abra um terminal Ubuntu:

$ dchroot -d
$ sudo apt-get install synaptic
$ sudo ln -s /usr/sbin/synaptic /usr/sbin/synaptic32

Volte ao terminal Ubuntu:

$ exit

E comande:

$ sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/synaptic32

Pronto… agora, de dentro do desktop Ubuntu, basta comandar:

$ synaptic32

E o Synaptic do Debian entrará em ação. Para fazer qualquer aplicação rodar desta forma, basta seguir os passos acima, lembrando apenas de alterar o path do executável (nem toda aplicação fica em /usr/sbin). Veja neste screenshot:

Existe outro modo, bem mais simples. Apenas crie um lançador no seu Ubuntu com o comando:$ dchroot -d “comando_do_Debian”Por exemplo tomemos o Synaptic de novo. Para rodar do Ubuntu, basta:

$ dchroot -d “synaptic”

E é só em relação a este assunto.

Jogos no chroot… e a minha NVidia?

Mesmo tendo linkado o /dev para o chroot, você pode perceber que, no caso da placa NVidia, a aceleração não está funcionando. Verifique no Ubuntu com um:$ glxinfo | grep directSe o resultado for “Yes”, quer dizer que está configurada (se for “No”, corra atrás disso, porque eu não ensinar como fazê-lo aqui). Agora tente no Debian:

$ dchroot -d
$ glxinfo | grep direct

O resultado será “No”… vamos instalar o pacote da NVidia no Debian também. Mas existe um problema: o pacote do Ubuntu nvidia-glx é diferente do Debian e não encontrei repositório do Debian com este pacote. Usaremos o do Ubuntu mesmo. Abra um terminal:

$ sudo gedit /chroot/etc/apt/sources.list

E adicione os repositórios:

deb http://br.archive.ubuntu.com/ubuntu breezy main restricteddeb-src http://br.archive.ubuntu.com/ubuntu breezy main restricteddeb http://br.archive.ubuntu.com/ubuntu breezy-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu breezy-updates main restricted

deb http://br.archive.ubuntu.com/ubuntu breezy universe
deb-src http://br.archive.ubuntu.com/ubuntu breezy universe

deb http://br.archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse
deb-src http://br.archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu breezy-security main restricted
deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted

deb http://security.ubuntu.com/ubuntu breezy-security universe
deb-src http://security.ubuntu.com/ubuntu breezy-security universe

Entre no chroot:$ dchroot -d
$ sudo apt-get update
E instale o pacote de mesma versão que o Ubuntu:

$ sudo apt-get install nvidia-glx

Pode conferir que sua placa estará funcionando agora. Não se esqueça de apagar estes últimos repositórios do seu sources.list e realizar um apt-get update. Não precisará mais deles.

Considerações finais

Com muito pouco tempo você estará acostumado com seus dois sistemas rodando ao mesmo tempo. Apesar de não ser o ideal e estar bem longe dele por sinal, é uma alternativa bastante considerável de como poder usufruir de um Sistema Operacional 64 bits em seu AMD64, até todos os pacotes terem sido devidamente portados.Muitas possibilidades podem surgir, como por exemplo, instalar um Firefox no Debian, que poderá contar com animações Flash (indisponíveis em 64 bits no momento da elaboração deste artigo), linká-la no dchroot -d e rodá-lo normalmente.Você pode também criar um lançador no painel do Gnome com o comando “dchroot -d” e mandá-lo abrir em um terminal. Assim, cada vez que clicar no lançador, se abrirá um terminal do chroot, direto. Pode até colocar um linux-logo em cada terminal, como eu fiz neste screenshot:
O Wine ainda não roda no Ubuntu 64bits, assim como o Cedega, sendo esta uma boa alternativa. Outro screenshot:
Inúmeras possibilidades…
Rolar para cima