Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

quinta-feira, 30 de dezembro de 2010

Usando VirtualBox no Linux

Introdução

Até pouco tempo, usar uma máquina virtual era sinônimo de usar o VMware Player ou o VMware Server. Ao contrário do que o nome pode sugerir, o VMware Server é perfeitamente utilizável em um PC doméstico, a única contra-indicação é que ele oferece mais opções e é dividido em dois componentes (o servidor propriamente dito e a interface), o que o torna um pouco mais complicado de usar. O VMware Player é mais simples de usar, mas em compensação não inclui a opção de criar novas máquinas virtuais (apenas usar VMs já existentes), o que limita seu uso.
Isso mudou com o crescimento do VirtualBox, que começou como um projeto da Innotek (uma empresa alemã de desenvolvimento de softwares) e foi posteriormente incorporado pela Sun. O VirtualBox é oferecido em duas versões: a primeira é uma versão parcialmente fechada, gratuita para uso pessoal, enquanto e a segunda é uma versão inteiramente open-source, que pode ser usada para qualquer fim e redistribuída livremente.
A versão "oficial" (também chamada de PUEL, que é o nome da licença usada) inclui alguns componentes proprietários e é distribuída através de uma licença específica e por isso é evitada pelos puristas. Assim como em outros casos, a Sun ganha dinheiro vendendo versões aprimoradas do software, destinadas ao ramo corporativo, o que permite manter os investimentos no projeto.
Ela está disponível no http://www.virtualbox.org/wiki/Downloads (clique no "Binaries - all platforms"). Na página estão disponíveis pacotes para diversas distribuições, entre elas o Fedora, Mandriva, Ubuntu e OpenSuSE.
Além da versão padrão, existe também o VirtualBox Open Source Edition (OSE), que é a versão inteiramente livre, que tem todo o código-fonte disponível e pode ser usada dentro dos termos da GPL. Esta é a distribuição que é incluída nos repositórios das distribuições, que pode ser instada diretamente usando o gerenciador de pacotes.
Isso acaba fazendo uma grande diferença do ponto de vista de quem usa, pois permite que você instale o software sem grandes complicações, deixando que o apt-get, urpmi ou yum se encarregue da instalação e da compilação do módulo, diferente do VMware, onde você precisa baixar o arquivo de instalação manualmente e ter os headers do kernel e os compiladores para conseguir instalá-lo.
Vamos então aos passos de instalação:
Para instalar o VirtualBox no Mandriva, acesse o "Gerenciador de software > Configurar mídias fonte para instalação" no mcc e certifique-se de que os repositórios "Contrib" e "Contrib Updates" estão marcados. Se for a primeira vez que está acessando o gerenciador, clique no "Adicionar" para que ele configure os repositórios:
1b71f410
A partir daí, você pode acessar o "Instalar & Remover Software" e instalar os pacotes "virtualbox" e "dkms-virtualbox" (marque a opção "Todos" no menu da esquerda em vez de "Pacotes com GUI" para que ele apareça na pesquisa.
Como de praxe, ele instalará também algumas dependências, totalizando cerca de 60 MB de softwares. Apesar do VirtualBox precisar de um módulo de kernel, o "vboxdrv", que precisa ser gerado durante a instalação, o gerenciador do Mandriva se encarrega de executar os passos necessários de forma automática:
6cbd1d2b
Depois de instalado, o VirtualBox fica acessível através no ícone no "Iniciar > Ferramentas > Emuladores" ou via terminal, com o comando "VirtualBox".
O VirtualBox está disponível nos repositórios do Ubuntu desde a versão 7.10. Se você está usando o Ubuntu, Kubuntu, Xubuntu ou outra distribuição derivada deles, você pode instalá-lo diretamente via apt-get, a partir dos repositórios principais:
$ sudo apt-get install virtualbox-ose

Em seguida, use o comando "uname -r" para verificar qual é a versão do Kernel em uso e instale a versão correspondente do pacote "virtualbox-ose-modules", como em:
$ uname -r
2.6.24-16-generic

$ sudo apt-get install virtualbox-ose-modules-2.6.24-16-generic

Se, por acaso, você estiver usando um Kernel personalizado, ou não houver um módulo com a versão correta, você pode fazer a instalação do módulo usando o module-assistant, que se encarregará de compilar um módulo sob medida. Comece instalando o pacote, juntamente com o build-essential, que contém os compiladores básicos:
$ sudo apt-get install module-assistant build-essential

Em seguida, gere o módulo usando o comando "m-a a-i" (versão abreviada do comando "module-assistant auto-install"), como em:
$ sudo m-a a-i virtualbox-ose-source

Isso compilará e instalará o módulo automaticamente. Se houver algum erro nesse ponto, verifique se o pacote "build-essential" foi corretamente instalado e se você não deletou acidentalmente os headers do Kernel, que são armazenados na pasta "/usr/src".
O ícone para o VirtualBox é criado no "Aplicações > Ferramentas do Sistema", mas, como de praxe, você pode chamá-lo diretamente via terminal. Entretanto, da primeira vez que tentar executar alguma máquina virtual, receberá uma mensagem de erro avisando que o driver não está acessível para o usuário atual.
Este é um velho bug de usabilidade, que ocorre devido ao uso de um grupo de acesso ao módulo do VirtualBox. Por padrão, apenas o root faz parte do grupo, de forma que nenhum usuário do sistema, incluindo a conta administrativa que foi criada durante a instalação tem permissão para usar o programa. Felizmente, ele é fácil de resolver, basta adicionar seu login de usuário ao grupo "vboxusers", como em:
$ sudo adduser gdh vboxusers

ou:
# usermod -G vboxusers gdh

Se preferir, você pode adicionar o usuário ao grupo usando o "users-admin" ou o "drake-users". Acesse as propriedades do usuário e, na aba "grupos", marque o "vboxusers". Em qualquer um dos casos, é necessário fazer logout para que a alteração entre em vigor:
m372a7f74
No OpenSuSE, você pode instalar o VirtualBox diretamente através do Yast. Acesse o gerenciador de pacotes e faça uma busca por "virtualbox". Assim como o Mandriva e o Ubuntu, os repositórios do OpenSUSE incluem o "virtuabox-ose", que é a versão open-source. Ao marcar o pacote, o gerenciador marca também o pacote com a versão correta do módulo para o Kernel. Se você está usando o Kernel instalado por padrão, o módulo será instalado diretamente, sem necessidade de compilação:
m175905d3
O pacote "virtualbox-ose-guest-tools" que aparece na busca inclui as imagens com os drivers extras para os sistemas instalados dentro das VMs, que usaremos mais adiante. Ele é opcional, pois o VirtualBox se oferece para baixar as imagens automaticamente quando necessário.
O pacote "xorg-x11-driver-virtualbox-ose" inclui o driver de vídeo para uso do OpenSuSE como guest no VirtualBox, ou seja, para quando ele é instalado dentro de uma VM. Não custa nada instalá-lo, mas ele não é necessário no nosso caso.
Assim como no Ubuntu, é necessário adicionar seu login de usuário no grupo "vboxusers" para que ele possa usar o VirtualBox, caso contrário você recebe uma mensagem de erro reclamando que o kernel driver não está acessível ao tentar ativar a VM:
# usermod -G vboxusers gdh

Concluindo, existe também a opção de instalar diretamente a versão oficial do VirtualBox (a PUEL). A principal vantagem dela em relação à versão open-source é a inclusão do suporte a USB (veja mais detalhes mais adiante). Ela é também a melhor opção em distribuições que não incluam os pacotes do virtuabox-osi.
Para instalá-la, acesse o http://www.virtualbox.org/wiki/Downloads. Verifique se existe um pacote com a versão exata da distribuição que está usando, caso contrário baixe o pacote "Linux (i386)" (para sistemas de 32 bits) ou o "Linux (AMD64)" (64 bits). Esta é a versão genérica, que pode ser instalada em qualquer distribuição.
O pacote é bem simples de instalar, basta tornar o arquivo executável e rodá-lo como root, como em:
$ chmod +x VirtualBox-1.6.4-Linux_x86.run
$ su -
# ./VirtualBox-1.6.4-Linux_x86.run

Verifying archive integrity... All good.
Uncompressing VirtualBox for Linux installation........
VirtualBox Version 1.6.4 (Tue Jul 29 20:45:09 CEST 2008) installation
Installing VirtualBox to /opt/VirtualBox-1.6.4
Building the VirtualBox kernel module
VirtualBox has been installed successfully.

O único dificultador é que você precisa ter instalados os headers do Kernel e os compiladores básicos, já que o instalador precisa compilar o módulo para o Kernel durante a instalação. Depois de instalado, ele se comporta exatamente da mesma forma que a versão open-source.
Se, por acaso você precisar atualizar o Kernel do sistema, use o comando abaixo para que um novo módulo seja gerado:
# /etc/init.d/vboxdrv setup

Criando as máquinas virtuais


Para usar o VirtualBox, o primeiro passo é criar uma máquina virtual. Para isso, clique no "Novo" e siga os passos do assistente. Na primeira tela, dê um nome à VM e indique qual o sistema operacional será instalado dentro dela. Isso permite que o VirtualBox ative uma série de otimizações, que melhoram o desempenho e evitam problemas diversos.
Na tela seguinte, indique a quantidade de memória RAM que será alocada para a máquina virtual, de acordo com o sistema que será usado e o tipo de aplicativos que pretende rodar dentro dele. De uma forma geral, é recomendável reservar 256 MB para o Windows XP ou 512 MB para o Vista, já que este é o mínimo de memória necessário para instalar o sistema. Naturalmente, você pode também usar o VirtualBox para rodar outras distribuições Linux, reservando o volume necessário de memória RAM. Do ponto de vista do desempenho, o ideal é reservar um pouco menos da metade da memória RAM total (reservar 384 MB em um PC com 1 GB, por exemplo), de forma a não prejudicar o desempenho do sistema principal enquanto a VM estiver ativa.
O próximo passo é criar um disco virtual, que é na verdade um arquivo dentro da pasta ".VirtualBox" no seu diretório home. Clique no "novo" e marque a opção "Imagem dinamicamente expansível". Isso faz com que o VirtualBox crie um arquivo vazio, que vai crescendo em tamanho conforme você instala programas e arquivos dentro da máquina virtual, diferente da opção "Imagem de tamanho fixo" onde todo o espaço é reservado de uma tacada só:
332af080
Em seguida, você precisa definir o tamanho do disco virtual, que naturalmente, deve ser suficiente para instalar o sistema e os programas desejados. Em uma VM com o Windows XP, por exemplo, você pode sobreviver com um disco virtual de apenas 4 ou 6 GB, mas uma instalação do Vista precisaria de bem mais espaço.
Como pode imaginar, o Windows XP é uma opção bem mais indicada para o uso em máquinas virtuais, já que é muito mais leve e (mesmo depois de instaladas todas as atualizações) ocupa menos espaço. Se você precisa apenas rodar alguns programas antigos, pode experimentar também criar um VM com o Windows 98 que, por ser um sistema muito mais simples, pode rodar bem dentro de uma VM com apenas 96 MB de memória reservada.
Depois de criar o disco virtual, clique em "Próximo" e depois no "Finalizar" para finalizar a criação da VM:
m3e7e3320
Com a VM criada, falta agora o mais importante, que é instalar o sistema operacional e os programas. Para isso, precisamos configurar a mídia de instalação. Para isso, clique no "CD/DVD-ROM" e marque a opção "Montar drive de CD/DVD". A opção "Drive de CD/DVD do Hospedeiro" faz com que o VirtualBox simplesmente compartilhe o CD/DVD dentro do drive, permitindo que você simplesmente use os CDs de instalação, como se estivesse instalando o sistema em um PC real. Se você tem uma imagem .ISO do CD, pode usar a opção "Arquivo de Imagem ISO" para instalar através dela. Essa opção pode ser trocada a qualquer momento, através da opção "Dispositivos > Montar CD/DVD-ROM" na janela da máquina virtual.
5f214290
A opção "Pastas Compartilhadas" no final da lista permite compartilhar pastas do HD com o sistema dentro da máquina virtual, de forma a trocar arquivos. As pastas compartilhadas aparecem como unidades de rede dentro da VM. Outra opção importante é a "Áudio", que permite ativar o uso do som dentro da VM.
Com tudo pronto, clique no "Iniciar" para ativar a VM. Se você compartilhou corretamente o CD ou DVD de instalação, a instalação do sistema será aberta diretamente. A partir daí, é só instalar o sistema e os programas, como faria em um PC real, incluindo o particionamento do disco virtual:
mdf6f945
Ao clicar sobre a janela da VM, o cursor do mouse e o foco do teclado são capturados e direcionados para o sistema dentro dela. Para a tecla para liberar é a tecla Ctrl direita (diferente do VMware onde é usado Ctrl+Alt), tecla que pode ser personalizada nas configurações. No meu caso, por exemplo, troco para a tecla Ctrl esquerda.
Se você estiver instalando uma distribuição Linux com vários CDs, use as opções "Dispositivos > Desmontar CD/DVD-ROM" e "Dispositivos > Montar CD/DVD-ROM" para trocar os CDs durante a instalação. O mesmo se aplica se você estiver instalando a partir de vários arquivos .iso, basta usar a "Dispositivos > Montar CD/DVD-ROM > Imagem de CD/DVD-ROM" para mudar o arquivo, simulando a troca do CD no drive:
m1c336081
Uma dica geral é que você desative todos os efeitos visuais, animações e outras perfumarias dentro da máquina virtual, deixando o sistema com um visual o mais limpo possível. O motivo é simples: tudo o que é feito dentro da máquina virtual precisa ser processado pelo VirtualBox, consumindo memória e ciclos de processamento da máquina. Os efeitos visuais são especialmente taxativos, já que precisam ser executados via software, diferente de em um PC real, onde parte do trabalho seria realizado pela placa de vídeo (graças aos recursos de aceleração). Usando o estilo e a barra de tarefa clássica, desativando efeitos e animações e desabilitando a proteção de tela e assim por diante, você conserva os recursos par o que é realmente importante, ou seja, rodar os aplicativos.

Drivers e dispositivos


Assim como no VMware, os dispositivos de hardware vistos pelo sistema dentro da máquina virtual são diferentes dos dispositivos reais da máquina. Independentemente da configuração do seu micro, o VirtualBox sumula um PC com chipset Intel e uma placa de rede AMD PCNET. O HD é reconhecido como "VBOX HARDDISK", o CD-ROM como "VBOX CD-ROM" e assim por diante:

m44f59890
O ruim dessa diferença nos dispositivos é que você não pode rodar uma instalação do Windows já existente dentro de uma máquina virtual (pelo menos não sem fazer alterações nos registro e um longo processo de substituição de drivers) mas, em compensação, oferece a possibilidade de rodar as máquinas virtuais em qualquer PC com o VirtualBox instalado, já que os dispositivos virtuais serão sempre os mesmos. Para isso, basta copiar os arquivos dentro da pasta .VirtualBox no seu diretório home.
Continuando, depois de instalar o sistema, o próximo passo é instalar o VirtualBox Extras, um conjunto de drivers que fazem com que o sistema convidado reconheça corretamente os dispositivos dentro da VM e rode com um melhor desempenho. Para isso, use a opção "Dispositivos > Instalar adicionais para o convidado":
m120f436f
A versão open-source do VirtualBox não inclui as imagens com os drivers, mas o assistente se oferece para baixá-las automaticamente. Basta deixar que ele conclua o download e salve na pasta padrão.
A instalação é feita simulando a inserção de um CD-ROM dentro da máquina virtual, contendo um wizard que é executado dentro do Windows. Basta seguir os passos do assistente, fazendo a instalação da mesma forma que você instalaria um outro conjunto de drivers qualquer:
1d89cef1
Além do suporte a resoluções de vídeo mais altas e melhorias de desempenho, outra grande melhoria que você notará depois de instalar os drivers é que o cursor do mouse não ficará mais "preso" dentro da tela da máquina virtual até que você pressione a tecla Ctrl, o que permite usar a máquina virtual de forma muito mais transparente. A janela simplesmente passa a se comportar da mesma forma que outro aplicativo qualquer.
Como se não bastasse, você ganha também a possibilidade de redimensionar a janela, com o Windows ajustando a resolução de tela automaticamente, sem ficar preso às resoluções padrão. Você pode inclusive usar o botão de maximizar, para que a janela passe a ocupar todo o espaço útil da tela. Para ativar, marque a opção "Máquina > Redimensionar Tela Automaticamente":
2b82825e
Outra opção interessante, que pode ser ativada no mesmo menu é o "Modo Seamless", que integra o desktop do Windows ao desktop principal, fazendo com que os aplicativos nativos e os aplicativos rodando dentro da máquina virtual sejam executados lado a lado. Como você pode ver no screenshot, você fica com duas barras de tarefas:
595d4940
Na verdade, o modo seamless não passa de um truque gráfico, que faz com que o fundo da janela com a máquina virtual do Windows fique transparente, dando a impressão de que você tem um desktop só. Apesar disso, o resultado é realmente impressionante :). Uma observação é que o efeito causa glitches e perda de desempenho em conjunto com alguns drivers de vídeo, mas nesse caso basta desativá-lo.

Configuração da rede virtual


Se você tiver a curiosidade de checar a configuração da rede usando o "ipconfig" no Windows verá que a máquina virtual recebe sempre um endereço IP dentro da faixa "10.0.2.x" e usa o endereço "10.0.2.2" como gateway padrão, configuração que é obtida automaticamente, via DHCP (mesmo que você não tenha um servidor DHCP na rede).
Isso acontece por que o VirtualBox cria uma interface de rede virtual entre o sistema convidado e o host, que é usada para permitir a comunicação entre os dois sistemas e também para compartilhar a conexão via NAT, permitindo que o sistema dentro na máquina virtual navegue e acesse outras máquinas da rede local.
Na hora de trocar arquivos entre os dois sistemas, você pode utilizar o recurso de compartilhamento de pastas, disponível através do "Dispositivos > Pastas Compartilhadas". Ele permite que você compartilhe pastas entre o sistema hospedeiro e o guest, especificando as permissões de acesso para cada uma:

m1549431b
As pastas compartilhadas aparecem no ambiente de redes, no "Toda a Rede > VirtualBox Shared Folders" e podem ser mapeadas, da mesma forma que um outro compartilhamento de redes qualquer. Como você pode imaginar, o VirtualBox cria na verdade um compartilhamento de rede oculto, que fica acessível apenas para o sistema dentro da máquina virtual.
Se você preferir fazer o caminho inverso, ou seja, fazer com que o Windows dentro da máquina virtual compartilhe as pastas, basta usar o compartilhamento de arquivos do Windows, criando os compartilhamentos desejados e em seguida acessando-os através do Nautilus, Konqueror ou Dolphin, no Linux.
Uma observação é que no Windows XP SP2 o firewall fica ativo por padrão, bloqueando os compartilhamentos. Para liberar o acesso, é preciso criar uma exceção para o compartilhamento de arquivos e impressoras na configuração do firewall do Windows.
Como viu, o sistema de compartilhamento de conexão do VirtualBox é bastante simples e funciona sem que você precise fazer nenhuma configuração adicional. A grande limitação é que você não conseguirá acessar a máquina virtual a partir de outros micros da rede.
Se a idéia é usar a máquina virtual para rodar um servidor, existe a possibilidade de configurar a rede virtual em modo bridge, onde a máquina virtual passa a ser ligada diretamente à rede principal, como se fosse um PC real ligado no hub. Esse recurso ainda não é bem suportado, por isso a configuração oferece um nível moderado de dificuldade, exigindo que você crie um bridge ligando a interface virtual à placa de rede e configure o VirtualBox para utilizá-lo.
O primeiro passo é instalar o pacote "bridge-utils" usando o gerenciador de pacotes, como em:
$ urpmi bridge-utils

ou:
$ sudo apt-get install bridge-utils

Em seguida, criamos o script que inicializará o bridge. No exemplo, estou criando o arquivo "/etc/init.d/bridge", mas você pode criar outro arquivo se preferir. O conteúdo do script é o seguinte:
#!/bin/sh

# Carrega o módulo e ajusta as permissões:
modprobe tun
chmod 666 /dev/net/tun

# Cria a interface br0, usada pelo bridge:
brctl addbr br0

# Adiciona a interface de rede no bridge:
ifconfig eth0 0.0.0.0 promisc
brctl addif br0 eth0

# Reconfigura a rede:
ifconfig br0 192.168.1.41 netmask 255.255.255.0
route add default gw 192.168.1.1 dev br0

# Adiciona a interface virtual ao bridge, especificando o usuário:
VBoxAddIF vbox1 gdh br0

Os parâmetros em negrito são os que você precisa alterar, de acordo com a sua configuração. O "eth0" na quinta linha indica a interface de rede que está sendo usada; o "192.168.1.41" na sétima indica o endereço IP (da máquina principal), seguido pela máscara de sub-rede; o "192.168.1.1" na oitava linha indica o IP do gateway da rede, enquanto o "gdh" na décima indica o usuário de sistema que você usa para executar o VirtualBox.
Depois de criar e personalizar o script, marque a permissão de execução e execute-o como root:
# chmod +x /etc/init.d/bridge
# /etc/init.d/bridge

Você precisará executar o script a cada boot, antes de poder usar o VirtualBox. Se não quiser ficar executando-o manualmente, você pode adicionar o comando ao arquivo "/etc/rc.local", de forma que ele seja executado automaticamente durante o boot.
Continuando, acesse a opção "Rede" na configuração da máquina virtual e altere a opção "Ligado a" de "NAT" para "Interface do Hospedeiro" e, na opção "Nome da Placa de Rede (I)", informe o nome da interface especificada no último comando do script (vbox1 no exemplo):
94c5170
Depois de inicializar a máquina virtual, configure o sistema guest para acessar a rede usando um endereço dentro da rede local, como se fosse outro PC e você perceberá que os outros micros da rede passarão a enxergá-lo diretamente. Como comentei, essa configuração permite até mesmo que a máquina virtual seja configurada como servidor, disponibilizando arquivos e outros recursos para as máquina da rede.

Memória, vídeo e USB


Voltando ao básico, a aba "Geral" da configuração permite alterar o volume de memória reservada e também a seleção do sistema operacional instalado dentro da VM. Isso permite que você ajuste a memória reservada de acordo com o uso, reservando mais memória quando precisar executar algum aplicativo pesado dentro da VM, ou reservando menos quando quiser apenas rodar aplicativos leves, deixando mais memória disponível para o sistema principal:

m1361f235
Além do ajuste do volume da memória RAM reservada, existe também um ajuste para a memória de vídeo que, naturalmente, também é simulada usando parte da memória RAM do sistema host. O VirtualBox simula uma placa de vídeo VESA, puramente 2D, por isso a única função da placa de vídeo é armazenar o frame-buffer, ou seja, a imagem que está sendo exibida dentro da janela da VM.
Para saber quanto de memória você precisa, basta multiplicar a resolução pela profundidade de cor usada (em bytes). Se você usa 1024x768 com 32 bits (equivalentes a 4 bytes) de cor, por exemplo, teríamos 1024x768x4, que dá 3.145.728 bytes, ou seja, menos de 4 MB. Se você precisa de apenas 4 MB de memória, pode reduzir o volume de memória reservada de 8 para 4 MB, deixando mais memória livre para outros usos.
Na aba avançado você encontra o ajuste da ordem de boot, que em um PC real seria feita através do setup. De uma forma geral, você dá boot através do CD-ROM virtual quando quer instalar ou reinstalar o sistema e dá boot diretamente através do HD no resto do tempo. Você pode também alterar a ordem de boot pressionando a tecla F12 logo no início do boot, antes do início do carregamento do sistema.
5d995535
A grande limitação da versão open-source do VirtualBox é que (pelo menos por enquanto) ela não inclui o suporte a dispositivos USB, que está disponível apenas na versão "completa". É por isso que os screenshots anteriores não incluem a opção "USB". Se você precisa usar um scanner, modem 3G, ou qualquer outro dispositivo USB (que não possua suporte no Linux, ou não possa ser compartilhado através da rede interna) dentro da máquina virtual, sua única opção é migrar para a versão oficial, disponível no http://www.virtualbox.org/wiki/Downloads.
Se você já tiver instalado a versão open-source nos passos anteriores, é necessário primeiro desinstalar o pacote, como em "urpme virtualbox" ou "sudo apt-get remove virtualbox-ose".
Depois de trocar a versão, você notará que a opção "USB" ficará disponível no menu de configuração. Dentro dela, você pode especificar os dispositivos que ficarão disponíveis dentro da máquina virtual. E possível inclusive compartilhar dispositivos que não possuem suporte no Linux, de forma a instalá-los na cópia do Windows rodando dentro da VM:
m6a6d06a7
A opção "Habilitar Controladora USB 2.0" permite ativar o suporte a transferências de alta velocidade, suportadas pelos dispositivos USB 2.0. Ela causa problemas em algumas configurações, por isso vem desativada por padrão. Você pode deixar para ativá-la apenas caso precise acessar pendrives ou outros dispositivos de armazenamento, onde a maior velocidade realmente faça diferença.
Se você usa o Ubuntu, existem alguns passos adicionais para fazer o USB funcionar. Desde a versão 7.10 o diretório "/proc/bus/usb" não vem montado por padrão, fazendo com que o acesso aos dispositivos USB dentro da VM não funcione.
Para corrigir o problema, o primeiro passo é editar (como root) o arquivo "/etc/init.d/mountdevsubfs.sh" e descomentar as quatro linhas a seguir, que estão dentro da função "do_start ()":
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

Edite agora o arquivo "/etc/udev/rules.d/40-basic-permissions.rules", substituindo as linhas:
# USB devices (usbfs replacement)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"
SUBSYSTEM=="usb_device", MODE="0664"

por:
# USB devices (usbfs replacement)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664", GROUP="vboxusers"
SUBSYSTEM=="usb_device", MODE="0664", GROUP="vboxusers"

Como pode imaginar, a alteração se destina a fazer com que o grupo "vboxusers" tenha permissão para acessar os dispositivos USB. Sem isso, o acesso por parte do VirtualBox é barrado e eles continuam não funcionando.
Para que tudo funcione, falta apenas confirmar que a sua conta de usuário foi adicionada ao grupo "vboxusers" (sudo adduser $USER vboxusers), como já fizemos ao instalar.