Archive for October, 2007

Rodando Debian dentro do Debian (PT_BR)

Monday, October 29th, 2007

= Introdução =

Mais um tutorial ensinando como criar uma máquina virtual Debian dentro do Debian.

Não testei o tutorial para Ubuntu, mas o principio é o mesmo.

Entendendo a idéia geral, você poderá testar qualquer distribuição em uma máquina virtual antes de colocar na sua máquina real. ;)

= Configurando rede =

Vamos chamar a máquina virtual de “guest” e a máquina real de “host”. Uma coisa legal de fazer é conectar o guest ao host e fazer com que o guest possa navegar na internet.

Do lado host será criada uma interface tap0, que só irá aparecer quando a máquina virtual estiver funcionando. No guest a interface de ree será eth0. A máquina virtual(guest) vai passar navegar usando a interface da máquina real(host) que está conectada a web.

WEB <============> (eth0) HOST (tap0) <=============> GUEST (eth0)

Para que isto seja possívél, será necessário fazer algumas configurações na sua máquina.

== qemu-ifup ==

Neste arquivo definimos qual vai ser o ip do host na interface tap0.

Configure o arquivo /etc/qemu-ifup , como abaixo:

#!/bin/sh
sudo -p “Password for $0:” /sbin/ifconfig $1 192.168.0.1

== network_forward.sh ==

Adicione o script network_forward.sh aos seus executáveis. Este script server para compartilhar rede com a guest.

Criar o arquivo /usr/local/bin/network_forward.sh com os comandos abaixo:

modprobe iptable_nat
modprobe ip_tables
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

= Criando seu novo sistema =

Baixe a ISO do Debian 4.0:

wget http://ftp.br.debian.org/debian-cd/current/i386/iso-cd/debian-40r1-i386-CD-1.iso

Instale qemu:

apt-get install qemu

Carregar o modulo de aceleração kqemu:

modprobe kqemu

Se o kqemu não estiver instalado, deve ter pra apt-get ou então usa o module-assistant (m-a). ;)

Crie um disco do tamanho de 2Gb:

qemu-img create debian_etch.img 2G

Agora é só dar o boot e instalar como se estivesse instalando seu computador:

sudo network_forward.sh
sudo qemu -net tap -net nic -boot d -cdrom debian-40r1-i386-CD-1.iso -hda debian_etch.img

Algumas explicações:
network_forward.sh -> vai compartilhar rede com a máquina virtual(guest)
-net tap -net nic -> server para ativar a rede no emulador
-boot d -> informa ao emulador que o boot deve ser dado pelo cdrom(debian-40r1-i386-CD-1.iso)
-cdrom debian-40r1-i386-CD-1.iso -> informa que o cdrom contem o disco de instalação do debian(debian-40r1-i386-CD-1.iso)
-hda debian_etch.img -> informa que o disco a ser usado será o arquivo debian_etch.img

Lembre de configurar a interface de rede de modo manual, sendo o IP= 192.168.0.2 netmask= 255.255.255.0 gateway= 192.168.0.1 .

Ao terminar da instalação, a máquina virtual vai reiniciar e então você terá que alterar o parametro de boot para -boot c. Deste modo o guest irá dar o boot pelo disco.

sudo qemu -net tap -net nic -boot c -cdrom debian-40r1-i386-CD-1.iso -hda debian_etch.img

Algumas explicações:
-boot c -> informa ao emulador que o boot deve ser dado pelo disco(debian_etch.img)

Caso você queria montar o disco da maquina virtual, lembre de desligar a máquina virtual. Para montar o disco do guest devemos levar em consideração o offset causado pelo grub:

mkdir mnt
sudo mount -o loop,offset=32256 debian_cd.img mnt

Boa sorte!!