VirtualBox (Português) - ArchWiki

# VirtualBox (Português)

VirtualBox é um poderoso emulador de PC virtual x86 e AMD64/Intel64 assim como VMware. É ativamente desenvolvido com lançamentos frequentes e tem uma lista sempre crescente de funcionalidades, sistemas operacionais convidados e plataformas onde pode ser executado.

## Instalação

O VirtualBox, lincenciado sob GPL, pode ser instalado com o pacote virtualbox, encontrado nos repositórios oficiais. O pacote virtualbox-host-modules, que contém os módulos pré-compilados para o kernel ArchLinux estoque, deve ser instalado com ele. Se você estiver usando kernel linux-lts deve também instalar virtualbox-host-modules-lts. Para utilizar a interface gráfica, baseada em Qt, você também precisará instalar o pacote qt4.

    # pacman -S virtualbox

### Extension Pack

Para fornecer suporte a RDP, USB e PXE para boot em placas de rede Intel, além de outras funcionalidades, o VirtualBox precisa do Extension Pack, que pode ser baixado neste link: VirtualBox Downloads. Este pacote de expansão, com licença PUEL, é livre para uso pessoal.

Para instalar o Extension Pack, baixe e salve-o em seu disco rígido e, em seguida, abra o VirtualBox. Vá em Arquivo → Preferências → Extensões e clique no ícone "Acrescentar extensões", em seguida abra a pasta que contém a extensão e selecione-a para instalar.

Dica: Caso você receba algum erro ao tentar instalar o Extension Pack no VirtualBox, tente iniciá-lo como superusuário e refaça os passos.

Além disso você pode instalar o pacote de extensão através do terminal usando o VBoxManage:

    VBoxManage extpack install <tarball> |
                       uninstall [--force] <name> |
                       cleanup

Como alternativa você pode utilizar o pacote virtualbox-ext-oracle do AUR.

## Configuração

### Adicionar usuário ao grupo vboxusers

Adicione os usuários desejados ao grupo vboxusers. O novo grupo não se aplica automaticamente as sessões existentes, o usuário tem que logar novamente ou iniciar um novo ambiente.

    # gpasswd -a $USER vboxusers

Nota: Terá que reiniciar a sua sessão (Log-Out/Log-In) para que as alterações tenham efeito

=== Carregando os módulos ===

Após a instalação você poderá gerenciar suas máquinas virtuais, porém não poderá iniciá-las até carregar o módulo vboxdrv. Para carregar o módulo manualmente (como root):

    # modprobe vboxdrv

Para carregar os módulos do VirtualBox automaticamente na inicialização do ArchLinux, crie um arquivo `*.conf` (e.g. `virtualbox.conf`) em `/etc/modules-load.d`, que conterá todos os módulos que deverão ser carregados.

    /etc/modules-load.d/virtualbox.conf

    vboxdrv

Nota: Se ao rodar o comando `modprobe -a vboxdrv` (ou qualquer outro módulo do virtualbox) você se deparar com a mensagem "modprobe: WARNING: Module vboxdrv not found." ou "no such file or directory" será preciso atualizar a base de dados dos módulos rodando o comando `depmod -a`.
Nota: Este módulo costumava ser adicionado à matriz `MODULES` em `/etc/rc.conf`, que agora está obsoleto.

### Habilitando a interface de rede Host-Only

Pra que seja possível utilizar a opção Host-Only na interface de rede do VirtualBox, é preciso carregar os módulos vboxnetadp e vboxnetflt ou acrescentá-los ao arquivo `virtualbox.conf` em `/etc/modules-load.d` para que sejam carregados automaticamente na inicialização do ArchLinux:

    /etc/modules-load.d/virtualbox.conf

    vboxdrv
    vboxnetadp
    vboxnetflt

Para carregar os módulos manualmente, utilize o seguinte comando como root:

    # modprobe -a vboxnetadp vboxnetflt

Feito isso, abra a interface gráfica do VirtualBox e vá até Arquivo → Preferências → Rede e acrescente uma nova interface de rede host-only antes de poder habilitá-la em sua máquina virtual.

Nota: Estes módulos costumavam ser adicionados à matriz `MODULES` em `/etc/rc.conf`, que agora está obsoleto.

### Adicionais para convidado

O VirtualBox sugere a instalação do virtualbox-guest-iso no host ArchLinux rodando VirtualBox. É uma imagem de disco utilizada para instalação dos adicionais para convidado nas máquinas virtuais, tornando disponível clicando em Dispositivos → Instalar adicionais para convidado.

    # pacman -S virtualbox-guest-iso

### Iniciando máquinas virtuais como serviço

Para iniciar máquinas virtuais como serviço no ArchLinux você deve criar o arquivo `vboxvmservice@.service` em `/etc/systemd/system` da seguinte forma:

    /etc/systemd/system/vboxvmservice@.service

    [Unit]
    Description=VBox Virtual Machine %i Service
    Requires=systemd-modules-load.service
    After=systemd-modules-load.service

    [Service]
    User=USUARIO
    Group=vboxusers
    ExecStart=/usr/bin/VBoxHeadless -s %i
    ExecStop=/usr/bin/VBoxManage controlvm %i savestate

    [Install]
    WantedBy=multi-user.target

Nota:

- Cada máquina virtual tem seu próprio serviço. Substitua USUARIO com um usuário que seja membro do grupo vboxusers:

    # systemctl enable vboxvmservice@nome_da_maquina_virtual
    # systemctl start vboxvmservice@nome_da_maquina_virtual

- Certifique-se de que o campo USUARIO é preenchido com o mesmo usuário que está criando/importando as máquinas virtuais, se não o usuário não irá vê-las.

## Máquinas Virtuais

### Instalando o ArchLinux em uma máquina virtual

A instalação do ArchLinux em uma máquina virtual é tão simples quanto instalar qualquer outro sistema convidado no VirtualBox, mas as adições devem ser instaladas através do pacman (Seguindo as instruções abaixo), e não através do item "Instalar Adicionais para Convidado" no menu do VirtualBox nem de uma ISO montada.

- Clique no botão "Novo" para criar uma nova máquina virtual.
- Nomeie a máquina como desejar
- Selecione a distribuição e a arquitetura (Se você nomeá-la como ArchLinux o VirtualBox automaticamente irá selecionar a distribuição do Arch, mas você deverá escolher a arquitetura)
- Selecione a quantidade de memória a ser utilizada pela máquina virtual (Lembre-se que a máquina virtual irá utilizar a memória do seu sistema real e que você deve colocar, no mínimo, 512 MB para que a maioria dos sistemas funcione de forma satisfatória)
- Após criar a sua máquina virtual, selecione-a e clique em Configurações → Armazenamento → Controladora IDE → Vazio e, em Drive de CD/DVD, selecione a imagem ISO do seu ArchLinux.
- Inicie a máquina virtual e siga as instruções de instalação do Guia do Iniciante

#### Adicionais para Convidado

Instale o pacote virtualbox-guest-utils em sua máquina virtual ArchLinux e carregue os módulos manualmente com:

    # modprobe -a vboxguest vboxsf vboxvideo

Ou crie um arquivo `*.conf` em (e.g. `virtualbox.conf`) em `/etc/modules-load.d/` para que o Arch carregue os módulos automaticamente na inicialização do sistema com as seguintes linhas:

    /etc/modules-load.d/virtualbox.conf

    vboxguest
    vboxsf
    vboxvideo

adicione a seguinte linha para o topo de `~/.xinitrc` acima de quaisquer opções `exec`. (crie um novo arquivo se este não existir):

    ~/.xinitrc

    /usr/bin/VBoxClient-all

Nota: Se você está criando um novo arquivo `~/.xinitrc` você deve também incluir um Gerenciador de Janelas (Documentação em Inglês) ou Ambiente de Trabalho (Documentação em Inglês).

#### Iniciando serviços compartilhados

Após instalar o virtualbox-guest-utils acima, você deve iniciar o `VBoxClient-all` para iniciar os serviços de compartilhamento da área de transferência, redimensionamento da tela, etc.

- Se você estiver executando algo que inicia `/etc/xdg/autostart/vboxclient.desktop`, como GNOME ou KDE, então nada precisa ser feito.
- Se você utiliza `.xinitrc` para lançar coisas em vez disso, você deve adicionar o seguinte em seu `.xinitrc` antes de iniciar sua máquina virtual:

    # VBoxClient-all &

#### Usando Microfone/WebCam USB

Nota: Você deve ter instalado o VirtualBox Extension Pack antes de seguir os passos abaixo.

- Certifique-se de que a máquina virtual não está sendo executada e seu microfone/webcam não está sendo utilizado;
- Abra a janela do VirtualBox, selecione a máquina virtual do ArchLinux e clique em Configurações, em seguida selecione a seção USB;
- Marque a caixa Habilitar controladora USB e também Habilitar controladora USB 2.0 (EHCI);
- Clique no botão Adicionar filtro do dispositivo (O cabo com sinal de +);
- Selecione o seu dispositivo de webcam/microfone na lista;
- Inicie sua máquina virtual Arch.

#### Sincronizando a data da máquina virtual com a máquina real

Para sincronizar hora e data, tenha certeza de ter instalado o pacote virtualbox-guest-utils em sua máquina real. Então execute o comando:

    # systemctl start vboxservice.service

Para habilitar o serviço na inicialização do sistema execute:

    # systemctl enable vboxservice.service

Você também deve utilizar este daemon afim de usar o recurso de pastas compartilhadas descrito abaixo.

#### Habilitando pastas compartilhadas

Pastas compartilhadas são gerenciadas através do programa VirtualBox na máquina real. Elas podem ser adicionadas, automontadas e feita somente leitura.

Se a automontagem está habilitada e o vboxservice está habilitado, criando uma pasta compartilhada do programa VirtualBox com a máquina real, irá montar esta pasta em `/media/sf_NOMEDAPASTACOMPARTILHADA` na máquina virtual. Para ter esta pasta criada na máquina virtual Arch, após instalar os adicionais para convidado, você precisa adicionar seu nome de usuário ao grupo `vboxsf`.

    # groupadd vboxsf
    # gpasswd -a $USER vboxsf

Nota: Para que a automontagem funcione, você deve habilitar o serviço vboxservice.

Se você quer uma pasta compartilhada (e.g `/media/sd_Dropbox`) a ser simbolicamente linkada para outra pasta em seu diretório pessoal, para facilitar o acesso, você pode digitar no cliente:

    $ ln -s /media/sf_Dropbox/* ~/dropbox

O script `VBoxLinuxAdditions.run` fornecido na ISO dos adicionais para convidado faz isso para você, porém o Arch não recomenda usá-lo.

Se as pastas compartilhadas não forem montadas automaticamente, tente montar manualmente. Para evitar problemas de inicialização quando estiver usando o systemd você deve adicionar `comment=systemd.automount` ao seu `/etc/fstab`. Dessa forma, eles serão montados apenas quando você acessar esses pontos de montagem e não durante a inicialização. Caso contrário, o sistema pode se tornar inutilizável após uma atualização do kernel (se você adicionar suas adições para convidado manualmente).

    desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0

Não desperdice seu tempo para tentar o opção `nofail`. O `mount.vboxsf` não é capaz de lidar com isso (2012-08-20).

    desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0

## Iniciar o VirtualBox

Para iniciar a interface gráfica do Virtualbox:

    $ VirtualBox

## Solução de Problemas

### modprobe Exec format error

Atualize o seu sistema:

    # pacman -Syu

### VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)

Isso pode ocorrer quando a máquina virtual é fechada inesperadamente. Para contornar o problema:

    # VBoxManage controlvm nArch poweroff

### Could not load the Host USB Proxy service: VERR_NOT_FOUND

Às vezes, o subsistema USB não é detectado automaticamente ou um drive USB não é visível no host, mesmo quando o usuário está no grupo vboxusers. Adicione a seguinte linha ao seu `~/.bashrc`:

    ~/.bashrc

    VBOX_USB=usbfs

Reinicie o seu sistema e abra uma nova instância do terminal. Também tenha certeza de que o usuário é membro do grupo storage.

### Failed to create the host-only network interface

Antes de tudo, tenha certeza de que você tem o pactoe net-tools instalado em seu sistema e em seguida faça os passos descritos em: habilitando interface de rede Host-Only.

### WinXP: Bit-depth cannot be greater than 16

Se você estiver executando em profundidade de cor de 16-bit, então os ícones parecerão distorcidos. No entanto, ao tentar mudar a profundidade da cor para uma resolução mais alta o sistema pode restringí-lo a uma resolução mais baixa ou, simplesmente não permitirá que você altere a resolução. Para corrigir isto, abra o `regedit` e adicione a seguinte chave ao registro da máquina virtual Windows XP:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
    "ColorDepth"=dword:00000004

Em seguida, atualize a profundidade de cor na janela de propriedades do desktop. Se nada acontecer, force a tela para redesenhar (Ex. `host + f` para redesenhar a tela em Full Screen).

### Montando imagens .VDI

Só funciona com imagens VDi de tamanho estático (tamanho dinâmico não será fácil para montar). Precisamos obter uma informação de sua imagem VDI:

    $ VBoxManage internalcommands dumphdinfo Arch_64min.vdi |grep offData
    Header: offBlocks=4096 offData=69632

Agora, acrescente ao seu offData 32256 (Ex.: `32256 + 69632 = 101888`) Monte a sua imagem VDI:

    # mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 Arch_64min.vdi /mnt/

Categories:

- Emulators (Português)
- HOWTOs (Português)