UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

332 lines (207 loc) 17 kB
[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/ ```