arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
332 lines (207 loc) • 17 kB
Markdown
[VirtualBox](http://www.virtualbox.org) é um poderoso emulador de PC virtual x86 e AMD64/Intel64 assim como [VMware](/index.php/VMware "VMware"). É ativamente desenvolvido com lançamentos frequentes e tem uma lista sempre crescente de funcionalidades, sistemas operacionais convidados e plataformas onde pode ser executado.
## Contents
* [1 Instalação](#Instala.C3.A7.C3.A3o)
* [1.1 Extension Pack](#Extension_Pack)
* [2 Configuração](#Configura.C3.A7.C3.A3o)
* [2.1 Adicionar usuário ao grupo vboxusers](#Adicionar_usu.C3.A1rio_ao_grupo_vboxusers)
* [2.2 Habilitando a interface de rede *Host-Only*](#Habilitando_a_interface_de_rede_Host-Only)
* [2.3 Adicionais para convidado](#Adicionais_para_convidado)
* [2.4 Iniciando máquinas virtuais como serviço](#Iniciando_m.C3.A1quinas_virtuais_como_servi.C3.A7o)
* [3 Máquinas Virtuais](#M.C3.A1quinas_Virtuais)
* [3.1 Instalando o Arch Linux em uma máquina virtual](#Instalando_o_Arch_Linux_em_uma_m.C3.A1quina_virtual)
* [3.1.1 Adicionais para Convidado](#Adicionais_para_Convidado_2)
* [3.1.2 Iniciando serviços compartilhados](#Iniciando_servi.C3.A7os_compartilhados)
* [3.1.3 Usando Microfone/WebCam USB](#Usando_Microfone.2FWebCam_USB)
* [3.1.4 Sincronizando a data da máquina virtual com a máquina real](#Sincronizando_a_data_da_m.C3.A1quina_virtual_com_a_m.C3.A1quina_real)
* [3.1.5 Habilitando pastas compartilhadas](#Habilitando_pastas_compartilhadas)
* [4 Iniciar o VirtualBox](#Iniciar_o_VirtualBox)
* [5 Solução de Problemas](#Solu.C3.A7.C3.A3o_de_Problemas)
* [5.1 modprobe Exec format error](#modprobe_Exec_format_error)
* [5.2 VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)](#VBOX_E_INVALID_OBJECT_STATE_.280x80BB0007.29)
* [5.3 Could not load the Host USB Proxy service: VERR_NOT_FOUND](#Could_not_load_the_Host_USB_Proxy_service:_VERR_NOT_FOUND)
* [5.4 Failed to create the host-only network interface](#Failed_to_create_the_host-only_network_interface)
* [5.5 WinXP: Bit-depth cannot be greater than 16](#WinXP:_Bit-depth_cannot_be_greater_than_16)
* [5.6 Montando imagens .VDI](#Montando_imagens_.VDI)
## Instalação
O VirtualBox, lincenciado sob GPL, pode ser [instalado](/index.php/Pacman_(Portugu%C3%AAs) "Pacman (Português)") com o pacote [virtualbox](https://www.archlinux.org/packages/?name=virtualbox), encontrado nos [repositórios oficiais](/index.php/Official_repositories_(Portugu%C3%AAs) "Official repositories (Português)"). O pacote [virtualbox-host-modules](https://www.archlinux.org/packages/?name=virtualbox-host-modules), que contém os módulos pré-compilados para o kernel Arch Linux estoque, deve ser instalado com ele. Se você estiver usando kernel [linux-lts](https://www.archlinux.org/packages/?name=linux-lts) deve também instalar [virtualbox-host-modules-lts](https://aur.archlinux.org/packages/virtualbox-host-modules-lts/). Para utilizar a interface gráfica, baseada em [Qt](/index.php/Qt "Qt"), você também precisará instalar o pacote [qt4](https://www.archlinux.org/packages/?name=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](https://www.virtualbox.org/wiki/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](https://aur.archlinux.org/packages/virtualbox-ext-oracle/) do [AUR](/index.php/Arch_User_Repository_(Portugu%C3%AAs) "Arch User Repository (Português)").
## 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 Arch Linux, crie um arquivo `*.conf` (e.g. `virtualbox.conf`) em `/etc/[modules-load.d](/index.php/Kernel_modules#Loading "Kernel modules")`, 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](/index.php/Rc.conf "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](/index.php/Kernel_modules#Loading "Kernel modules")` para que sejam carregados automaticamente na inicialização do Arch Linux:
`/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](/index.php/Rc.conf "Rc.conf")`, que agora está obsoleto.
### Adicionais para convidado
O VirtualBox sugere a instalação do [virtualbox-guest-iso](https://www.archlinux.org/packages/?name=virtualbox-guest-iso) no host Arch Linux 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 Arch Linux você deve criar o arquivo `vboxvmservice@.service` em `/etc/[systemd](/index.php/Systemd_(Portugu%C3%AAs) "Systemd (Português)")/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 Arch Linux em uma máquina virtual
A instalação do Arch Linux 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](/index.php/Pacman_(Portugu%C3%AAs) "Pacman (Português)") (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 Arch Linux 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 Arch Linux.
* Inicie a máquina virtual e siga as instruções de instalação do [Guia do Iniciante](/index.php/Guia_do_Iniciante(Portugu%C3%AAs_do_Brasil) "Guia do Iniciante(Português do Brasil)")
#### Adicionais para Convidado
Instale o pacote [virtualbox-guest-utils](https://www.archlinux.org/packages/?name=virtualbox-guest-utils) em sua máquina virtual Arch Linux 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 janela](/index.php/Gerenciador_de_janela "Gerenciador de janela") ou [Ambiente de desktop](/index.php/Ambiente_de_desktop "Ambiente de desktop").
#### Iniciando serviços compartilhados
Após instalar o [virtualbox-guest-utils](https://www.archlinux.org/packages/?name=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](#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 Arch Linux 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](https://www.archlinux.org/packages/?name=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](#Adicionais_para_Convidado_2), 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](/index.php/Systemd_(Portugu%C3%AAs) "Systemd (Português)") 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](https://www.archlinux.org/packages/?name=net-tools) instalado em seu sistema e em seguida faça os passos descritos em: [habilitando interface de rede Host-Only](#Habilitando_a_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/
```