VirtualBox (Português)

From ArchWiki
Revision as of 08:04, 16 June 2012 by Kynikos.bot (Talk | contribs) (rm temporary i18n template)

Jump to: navigation, search

O que é VirtualBox

VirtualBox é um emulador de pc virtual como o vmware. Tem muitas das funcionalidades do vmware, bem como algumas próprias.

Edições

VirtualBox está disponível em duas edições: VirtualBox (OSE) e VirtualBox (Licensa de Uso Pessoal e de Avaliação - Personal Use and Evaluation License (PUEL))

VirtualBox (OSE)

VirtualBox (OSE) é a versão código aberto (open source) do VirtualBox, que pode ser encontrada no repositório community. Faltam-lhe, no entanto, algumas funcionalidades como por exemplo o suporte a dispositivos USB e o servidor RDP integrado.

VirtualBox (PUEL)

VirtualBox PUEL é a versão binária (gratuita para uso pessoal) que está disponível a partir de AUR ou diretamente do site do VirtualBox. A edição PUEL oferece as seguintes vantagens::

  • Servidor Remote Display Protocol (RDP) - um servidor RDP completo rodando em cima do hardware virtual, permitindo que usuários se conectem remotamente a uma máquina virtual usando um qualquer cliente compatível RDP
  • Suporte USB - um controlador USB virtual que suporta que dispositivos USB 1.1 e USB 2.0 fiquem disponíveis nas máquinas virtuais
  • USB sobre RDP - uma combinação do servidor RDP e do suporte USB, permitindo aos usuários remotos o acesso a dispositivos USB disponíveis nas máquinas virtuais
  • iniciador iSCSI - um iniciador iSCSI integrado permitindo o uso de alvos iSCSI como discos virtuais sem que o cliente tenha de suportar iSCSI

Instalação

Instalar VirtualBox (OSE)

VirtualBox (OSE) está disponível nos repositórios padrão:

# pacman -S virtualbox-ose

Nota: Este pacote não parece estar nos repositórios x84_64.

Isto irá selecionar por padrão os pacotes virtualbox-ose e virtualbox-modules. Uma vez instalado, terá uma entrada no menu localizada em Aplicativos > Sistema > VirtualBox OSE

Agora, adicione o usuário desejado ao grupo vboxusers:

# gpasswd -a USUARIO vboxusers

(Nota: Terá de fazer logout/login de modo a que esta mudança surta efeito)

Finalmente, edite /etc/rc.conf como root e adicione vboxdrv ao vetor MODULES de modo a carregar os drivers VirtualBox durante o boot. Por exemplo:

MODULES=(loop vboxdrv fuse ...)

Para carregar o módulo manualmente, rode o seguinte em um terminal como root:

# modprobe vboxdrv

Instalar VirtualBox PUEL (virtualbox_bin)

VirtualBox PUEL está disponível em AUR: virtualbox_bin.

Baixe o tarball da página AUR: virtualbox_bin, desempacote, rode makepkg, e então como root:

# pacman -U PACKAGE-NAME.pkg.tar.gz

No entanto, existe uma alternativa para instalar o pacote virtualbox_bin:

Primeiramente, adicione como root o seguinte ao /etc/pacman.conf:

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

ou

[archlinuxfr]
Server = http://repo.archlinux.fr/x86_64

dependendo da sua arquitectura de CPU's.

Depois pode instalá-lo com sucesso com:

# pacman -S virtualbox_bin

Uma vez instalado, terá uma entrada no menu localizada em Aplicativos > Sistema > Sun xVM VirtualBox

Agora, adicione o usuário desejado ao grupo vboxusers:

# gpasswd -a USUARIO vboxusers

(Nota: Terá de fazer logout/login de modo a que esta mudança surta efeito)

Finalmente, edite /etc/rc.conf como root e adicione vboxdrv ao vetor MODULES de modo a carregar os drivers VirtualBox durante o boot. Por exemplo:

MODULES=(loop vboxdrv fuse ...)

Para carregar o módulo manualmente, rode o seguinte em um terminal como root:

# modprobe vboxdrv

Reconstrução de Módulos

Note que sempre que a versão do seu kernel mudar (devido a uma atualização, recompilação, etc.) terá de reconstruir o módulo de kernel do VirtualBox rodando vbox_build_module como root. Este binário estará localizado em um dos seguintes locais: /sbin, /bin, ou /usr/bin. Após a reconstrução do módulo, não esqueça de o carregar com: modprobe vboxdrv

Instalar as bibliotecas QT requeridas

Atualmente, VirtualBox depende do qt4 para a sua interface gráfica. Se precisar de um GUI (interface gráfica de usuário), assegure-se de que tem o qt4 instalado:

# pacman -S qt

Iniciar o VirtualBox

Para iniciar o Virtualbox, rode o seguinte comando em um terminal:

$ VirtualBox

Configuração

Após termos instalado o VirtualBox no nosso sistema e adicionado o nosso usuário ao grupo vboxusers podemos começar a configurar o nosso sistema de modo a disponibilizar todas as funcionalidades do VirtualBox para nós. Crie uma máquina virtual usando o wizard disponibilizado pelo GUI e depois clique em Configurações de modo a editar as configurações de Máquina Virtual.

Teclado e mouse entre o host (hospedeiro) e o cliente

Para capturar o teclado e o mouse, clique com o mouse dentro da tela da Máquina Virtual.
Para liberar, aperte "Ctrl-Alt Delete".

Colocar a rede no cliente a funcionar

Primeiro vamos colocar a rede no cliente a funcionar. Clique na opção rede e na aba do primeiro adaptador. A opção cabo conectado desligada significa que irá ligar a Máquina Virtual sem rede.

Usando rede NAT

Esta é a maneira mais simples de obter rede. Selecione Conectado a NAT e deverá estar pronto a usar. Depois, o sistema operacional convidado poderá ser configurado automáticamente usando DHCP.

O endereço IP de NAT no primeiro adaptador é 10.0.2.0, 10.0.3.0 no segundo e por aí vai.

Usando rede por interface de rede do hospedeiro (ao jeito do VirtualBox)

Desde o VirtuaBox 2.1.0 que tem suporte nativo a rede por interface de rede do host. Simplesmente adicione vboxnetflt à seção MODULES no /etc/rc.conf e escolha Conectado a Interface do Hospedeiro na configuração de rede da Máquina Virtual.

Usando rede por interface de rede do hospedeiro (ao jeito Arch)

Você vai somente editar estes arquivos e reiniciar a máquina:

  • /etc/conf.d/bridges
  • /etc/rc.conf
  • /etc/vbox/interfaces

Pronto? Vamos!

/etc/conf.d/bridges:

bridge_br0="eth0" # Indique as interfaces que precisar.
BRIDGE_INTERFACES=(br0)

/etc/rc.conf:

Primeiro adicione o módulo bridge ao seu vetor MODULES

MODULES=( <seus outros modulos> bridge)

Nota: Assegure-se que tem o daemon vboxnet carregado no vetor DAEMONS

DAEMONS=( <seus outros daemons> vboxnet)

Depois, na seção NETWORKING, faça as seguintes alterações:

lo="lo 127.0.0.1"
eth0="eth0 up" # Se tiver mais interfaces no arquivo anterior, terá mais linhas como "if_numero="if_numero up" aqui.
br0="dhcp" # Talvez tenha configuração de IP estatico... Eu uso DHCP.
INTERFACES=(lo eth0 br0)

Nota de gpan:

/etc/rc.conf:

Primeiro adicione o módulo vboxdrv (e vboxnetflt no caso da versão 2.1.0) ao vetor MODULES

MODULES=( <seus outros modulos> vboxdrv vboxnetflt )


A seguinte sequencia de comandos na seção # NETWORKING resolveu no meu caso:

lo="lo 127.0.0.1"
BRIDGE_INTERFACES=(br0)
bridge_br0=(eth0)
br0="br0 192.168.178.2 netmask 255.255.255.0 broadcast 192.168.178.255" # A parte da rede do endereço ip (192.168.178) pode ser diferente no seu PC
eth0="eth0 0.0.0.0 promisc"
INTERFACES=(lo br0 eth0)
gateway="default gw 192.168.178.1"
ROUTES=(gateway)

Pessoalmente, eu não fiz nenhuma mudança a esta configuração /etc/conf.d/bridges, como mencionado anteriormente.

Em seguida, deverá editar o seu /etc/udev/rules.d/60-vboxdrv.rules e digitar:

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
KERNEL=="tun", OWNER="root", GROUP="vboxusers", MODE="0660"

Grave e saia.

Depois abra um terminal e digite:

# pacman -S bridge-utils uml_utilities

Crie uma nova bridge com o comando:

# brctl addbr br0


/etc/vbox/interfaces

(Poderá adicionar mais interfaces de rede se desejar. O céu é o limite!)

vbox0 seu_usuario br0 # Não esqueça de adicionar seu usuário ao grupo vboxusers.

Reinicie e pronto!

Nota: Lembre-se de configurar a sua Máquina Virtual com configuração de rede adequada.

Nota: Se tiver algum problema, verifique se tem o pacote bridge-utils instalado e o daemon vboxnet carregado

Usando rede por interface de rede do hospedeiro (genérico)

Esta é a via mais difícil mas permite que veja a Máquina Virtual como um computador real na sua rede. Precisará do pacote bridge-utils

# pacman -S bridge-utils uml_utilities

Nota de Sp1d3rmxn:

Também precisará ter o módulo TUN carregado...em /etc/rc.conf adicione "tun" (sem as aspas) ao seu vetor MODULES. Para testar agora sem reiniciar poderá carregar o módulo via linha de comando com: "modprobe tun".
Depois você TERÁ que configurar estas permissões, senão o VBox nunca iniciará a rede. O comando é "chmod 666 /dev/net/tun" (sem as aspas).
Agora prossiga com o resto do modo descrito abaixo.

Nota

Como dito por Sp1d3rmxn, precisamos destas permissões mas, ao invés de usado o comando, podemos configurá-las no /etc/udev/rules.d/60-vboxdrv.rules, que irá configurá-las
durante o boot:
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
KERNEL=="tun", OWNER="root", GROUP="vboxusers", MODE="0660"


1. Crie uma nova bridge com este comando:

# brctl addbr br0

2. Se não estiver usando DHCP, rode ifconfig e anote a configuração de rede da sua interface de rede existente (ex. eth0), que precisaremos de copiar para a bridge dentro de instantes.

(Nota: Irá precisar destas configurações então não as perca!!!)

3. Mude o seu adaptador de rede física para o modo "promíscuo" de modo a aceitar frames Ethernet de outros endereços MAC que não o seu (substitua eth0 pela sua interface de rede):

# ifconfig eth0 0.0.0.0 promisc 

(Nota: Irá perder conexão de rede neste ponto.)

4. Adicione o seu adaptador de rede à bridge:

# brctl addif br0 eth0

5. Transfira as configurações de rede anteriormente usadas no seu adaptador de rede físico para a nova bridge. Se estiver usando DHCP, isto deve funcionar:

# dhclient br0

Nota de Sp1d3rmxn:

Use "dhcpcd -t 30 -h seunomedehost br0 &" ao contrário do que está acima

Ou então, rode ifconfig br0 x.x.x.x netmask x.x.x.x e use os valores que anotou anteriormente.

6. Para criar uma interface de host permanente chamada vbox0 (todas as interfaces criadas desta forma terão de ser chamadas de vbox seguido de um número) e adicioná-la à bridge criada acima, rode o comando:

VBoxAddIF vbox0 vboxusuario br0

Substitua vboxusuario pelo nome do usuário que é suposto usar a nova interface.

(Nota: VboxAddIF está localizado em /opt/VirtualBox-VERSÃO DO VIRTUALBOX/VBoxAddIF)

Alternativamente, poderá configurar a rede do VirtualBox através do seu /etc/rc.conf para ativar uma conexão bridge.

Usando rede por interface de rede wireless do hospedeiro

Bridging como descrito acima não funcionará com wireless. Usando parprouted por outro lado pode funcionar.

  1. Instale parprouted e iproute
  2. # ln -s /usr/sbin/ip /sbin/ip
  3. Assegure-se que IP fowarding está ativo: # sysctl net.ipv4.ip_forward=1, e/ou edite /etc/sysctl.conf
  4. # VBoxTunctl -b -u <user>, para criar o tap
  5. # ip link set tap0 up; ip addr add 192.168.0.X/24 dev tap0, precisa ser um IP configurado manualmente na mesma rede onde o seu wireless está.
  6. # parprouted wlan0 tap0

Colocar o USB a funcionar na máquina cliente

(Só disponível na edição PUEL)

Primeiro, de modo a disponibilizar o USB para uso nas Máquinas Virtuais, precisará adicionar esta linha ao /etc/fstab

none /proc/bus/usb usbfs devgid=108,devmode=0664 0 0

108 é o id do group que deverá ter permissão de acessar dispositivos USB. Mude-o para o id do seu grupo vboxusers. Poderá visualizar este id rodando:

$ grep vboxusers /etc/group

Se não se importar com uma brecha de segurança mude o devmode de 664 para 666.

Remonte o /proc/bus/usb:

# mount -o remount /proc/bus/usb/

Nota de slipper:

Eu tive de dar um mount -a depois do que está acima para funcionar para mim.

Reinicie o Virtualbox e clique na opção USB nas Configurações da Máquina Virtual e seleciona quais dispositivos USB estão disponíveis para o seu PC no boot. Se desejar que a sua Máquina Virtual use aparelhos que acabou de conectar (assumindo que a Máquina Virtual já deu boot), vá à tela da Máquina Virtual, vá a Dispositivos -> Dispositivos USB -> e selecione o dispositivo que deseja ativar no pc virtual.

Instalando Adicionais para Convidado

As Adicionais para Convidado disponibilizam a funcionalidade de pastas compartilhadas (shared folders), bem como melhor vídeo (sem 3D) e drivers de mouse. Terá integração com o mouse sem necessidade de liberar o mouse depois de o usar no cliente e pode mesmo habilitar um copiar&colar bidirecional.

Depois que bootar a Máquina Virtual, vá ao menu Dispositivos->Instalar Adicionais para Convidado... Depois que clicar nele, o VirtualBox carrega um ISO para o CD-ROM atual, pelo que não vai ver nada funcionando ainda ;)

Depois faça o seguinte como root:

# mount /media/cdrom
# sh /media/cdrom/VBoxLinuxAdditions.run

Irá construir e instalar os módulos de kernel, instalar os drivers de Xorg e criar os scripts init. Irá muito provavelmente mostrar erros acerca de scripts init e run levels e sei lá. Ignore-os. Irá encontrar um rc.vboxadd no /etc/rc.d que os irá carregar sob demanda. Para ter as Adicionais para Convidado carregadas durante o boot, adicione-o ao vetor DAEMONS em /etc/rc.conf ex:

DAEMONS=(syslog-ng network netfs crond alsa rc.vboxadd )

Compartilhando pastas entre o hospedeiro e o convidado

Nas configurações da Máquina Virtual vá a Pastas Compartilhadas e adicione as pastas que deseja compartilhar.

  • NOTA: Você precisa instalar os Adicionais para Convidado de modo a usar esta funcionalidade.
Em um host Linux, "Dispositivos" --> "Instalar Adicionais para Convidado"
Sim (quando pedido para baixar a imagem de CD)
Montar (quando pedido para registrar e montar)

Em um host Linux, crie uma pasta para compartilhar arquivos.

Em um convidado Windows, a partir do VirtualBox 1.5.0, pastas compartilhadas são navegáveis e por isso visíveis no Explorador do Windows. Abra o Explorador do Windows e procure por ela em:

Meus locais de Rede --> Rede Enteira --> VirtualBox Pastas Compartilhadas

Alternativamente, na linha de comando do Windows, poderá fazer o seguinte:

net use x: \\vboxsvr\compartilhamento

Enquanto vboxsvr é um nome fixo, substitua "x:" pela letra que pretende usar para o compartilhamento, e compartilhamento pelo nome do compartilhamento configurado no VBoxManage.

Em um convidado Linux, use o seguinte comando:

# mount -t vboxsf [-o OPCOES] compartilhamento pontodemontagem

Substitua compartilhamento pelo nome especificado no VBoxManage e pontodemontagem pelo caminho onde quer que o compartilhamento seja montado (ex. /mnt/share). As regras normais de mount aplicam-se, ou seja, crie este diretório primeiro se ele ainda não existir.

Além das opções padrão disponibilizadas pelo comando mount, as seguintes estão disponíveis:

iocharset=CHARSET

para configurar o character usado para operações de I/O (utf8 por default) e

convertcp=CHARSET

para especificar o character set usado para o nome do compartilhamento (utf8 por default).

Configurar o áudio na máquina convidada

Nas configurações da Máquina Virtual, clique em audio e selecione o driver de correspondente ao seu sistema de som (ALSA, OSS ou PulseAudio).

Configurando a RAM e a memória de vídeo para o PC virtual

Pode mudar os valores padrão indo a Configurações -> geral.

Configurando o CDROM para o PC Virtual

Pode mudar os valores defauçt indo a Configurações -> CD/DVD-ROM.

Escolha Montar drive de CD/DVD e selecione uma das seguintes opções.

Nota: Se nenhuma drive CDROM for detectada, verifique se o daemon HAL está rodando. Para iniciá-lo, rode o seguinte como root:

# /etc/rc.d/hal start

Reconstruir o módulo vboxdrv

Para o Virtualbox >= 1.6.0 use ABS para reconstruir o módulo vboxdrv ou pode aguardar que o mantenedor :)

Convertendo de imagens VMware

Faça

  # pacman -S qemu
  $ qemu-img convert image.vmdk image.bin
  $ VBoxManage convertdd image.bin image.vdi

Isto pode não mais ser necessário com as versões mais recentes do virtualbox (a ser confirmado)

Recursos Externos