Uma forma muito popular de testar sistemas operativos consiste em utilizar o VMware Player que é fornecido de forma gratuita pela VMware. Corremos numa máquina virtual, bastante independente do nosso sistema operativo, todos os sistemas que desejarmos, sem o risco de destruirmos por acidente o nosso sistema principal.
O problema é que o VMware Player não permite criar novas máquinas virtuais, tornando difícil testar novos sistemas operativos, a menos que se consiga obter a máquina virtual em algum sítio. No entanto, o VMware Player simula uma máquina virtual completa, assim se tivermos uma máquina virtual com um disco vazio, podemos neste instalar o sistema operativo que quisermos.
Neste artigo vou mostrar como criar uma nova máquina virtual no Kubuntu Feisty (7.04) de modo a pudermos instalar o que quisermos. As instruções aqui contidas são válidas para qualquer distribuição do Linux, variando apenas a forma de instalar o VMware Player.
Notar que a VMware disponibiliza com a mesma licença do Player, o VMware Server que permite criar novas máquinas virtuais a partir da sua interface de gestão. No entanto este software é de gestão mais complicada que o Player (que não tem qualquer tipo de administração). O WMware Server é direccionado, como o nome indica, para manter servidores virtuais.
O VMware Player está disponível nos repositórios de software do Kubuntu. Basta garantirmos que temos o repositório multiverse presente em /etc/apt/sources.list, ou seja neste ficheiro temos de ter uma linha como a seguinte:
deb http://pt.archive.ubuntu.com/ubuntu/ feisty multiverse
Se não tive este repositório activado, basta remover o comentário desta linha e fazer a seguir:
# apt-get update
Para instalar a aplicação propriamente dita fazer:
# apt-get install vmware-player
Vão ser apresentadas duas telas onde se pede apenas para aceitar a licença de utilização do software.
O sistema automaticamente instala as dependências necessárias para o software correr, assim como um serviço que fica a iniciar com o sistema. Os pacotes presentes no Kubuntu também fazem a configuração das redes das máquinas virtuais pelo que não nos temos e preocupar com isso.
Para criarmos os discos virtuais (que não são mais do ficheiros no sistema operativo host), necessitamos de instalar um pacote adicional, o Qemu:
# apt-get install qemu
Notar que necessitamos de usar uma versão igual ou superior a 0.7.2, dao que só a partir desta versão é que podemos usar o utilitário qemu-img para criar discos no formato do VMware Player (vmdk). Na versão do Kubuntu que estamos a utilizar isto não é problema.
A partir de agora não necessitamos de acesso como root. Como um utilizador normal e numa directoria apropriada (i.e., que tenha espaço suficiente e que não seja um file system de rede) fazer:
$ qemu-img create -f vmdk disco_20GB.vmdk 20G Formating 'disco_20GB.vmdk', fmt=vmdk, size=20971520 kB
A sintaxe é bastante simples. Não esquecer de consultar a página de manual do qemu-img para compreender todas as opções deste comando.
Foi criado um disco virtual:
$ ls -l -rw-r--r-- 1 helder users 2686976 2007-07-07 15:53 disco_20GB.vmdk
Notar que o disco de facto não tem 20GB, este só vai atingir este tamanho à medida que formos ocupando espaço em disco na máquina virtual.
Eu poderia nesta altura disponibilizar este disco online para não ser de todo necessário este passo. No entanto devem ter em conta que este é um formato binário, e que o VMware Player pode ter vulnerabilidades possíveis de explorar a partir deste ficheiro. Por isto prefiro que os leitores criem eles mesmos as suas próprias imagens.
O VMware Player contém a configuração de cada máquina virtual num ficheiro de texto de extensão vmx. A sintaxe deste ficheiro é fácil de compreender.
Por exemplo, se quisermos correr uma distribuição de Linux na nossa máquina virtual, podemos usar:
# CONFIGURAÇÃO ESPECÍFICA displayName = "debian" guestOS = "other26xlinux" # Memória: memsize = "512" # Discos rígidos: ide0:0.present = "TRUE" ide0:0.fileName = "disco_20GB.vmdk" ide0:0.writeThrough = "TRUE" # Media amovível: ide1:0.present = "TRUE" ide1:0.fileName = "/dev/hdc" ide1:0.deviceType = "cdrom-raw" floppy0.startConnected = "FALSE" floppy0.fileName = "/dev/fd0" # CONFIGURAÇÃO GERAL config.version = "8" virtualHW.version = "4" Ethernet0.present = "TRUE" priority.grabbed = "normal" priority.ungrabbed = "normal" powerType.powerOff = "hard" powerType.powerOn = "hard" powerType.suspend = "hard" powerType.reset = "hard" floppy0.present = "FALSE"
Este ficheiro deverá ser gravado na mesma directoria onde temos o nosso disco virtual e ter extensão .vmx. Neste caso, poderíamos chamar-lhe debian.vmx.
As secções que podemos editar com alguma segurança são:
Se utilizarmos as ferramentas da VMware para criar as máquinas virtuais, estas vão criar imagens de disco SCSI se escolhermos um sistema tipo UN*X ou IDE para sistemas da família Windows. Neste documento uso apenas IDE, dado que estes discos são suportados directamente por todos os sistemas e para os discos SCSI, se quisermos instalar um Windows, teríamos de encontrar primeiro drivers apropriados, o que é sempre chato. Acredito que esta decisão tenha implicações a nível da performance, mas como por agora ainda não uso máquinas virtuais em produção (apenas para testes), não me preocupo muito com estes aspectos;
Em vez de acedermos a devices físicos, podemos também utilizar imagens iso. Por exemplo, dado que estamos a preparar uma máquina virtual para o Debian, podíamos fazer o download da imagem do CD de instalação, a partir desta página. A última versão deste sistema operativo é distríbuida no ficheiro debian-40r0-i386-netinst.iso (notar que esta é a versão para instalação a partir da rede, ou seja é uma instalação mínima onde os pacotes adicionais serão obtidos directamente dos repositórios do projecto Debian). Se copiarmos esta imagem para a directoria da nossa máquina virtual e alterarmos a secção media amovível da configuração para:
# Media amovível: ide1:0.present = "TRUE" ide1:0.fileName = "debian-40r0-i386-netinst.iso" ide1:0.deviceType = "cdrom-image" floppy0.startConnected = "FALSE" floppy0.fileName = "/dev/fd0"
O CDROM será também ele virtualizado e lido a partir da imagem indicada.
Infelizmente não consegui encontrar um manual que descreva de forma sistemática a sintaxe deste ficheiro. Assim por norma, tento mudar o mínimo de opções possíveis de forma a evitar problemas com as minhas máquinas virtuais.
Resta-nos agora começar a instalar o sistema operativo. Basta fazermos:
$ vmplayer debian.vmx
E instalar o sistema como se estivéssemos numa máquina real.
As VMware tools são uma colecção de drivers e utilitários que podem ser instalados nas máquinas virtuais para melhorar o desempenho das mesmas.
Infelizmente estes pacotes não são distribuídos com o VMware Player. A solução legal é fazer o download do VMware Server a partir do site da VMware e procurar no ficheiro pelas imagens ISO das VMware Tools, por exemplo para o windows esta chamam-se windows.iso.
Depois basta gravar um CD com esta imagem ISO e, a partir do sistema virtual, instalar os drivers e utilitários. (Claro que se não quiser gravar a imagem para um CD, pode utilizar a técnica descrita mais acima para montar a imagem ISO no sistema virtual.)
Eu só sinto necessidade de instalar estes pacotes para máquinas virtuais que funcionem em modo gráfico. Por exemplo no caso do windows, a melhoria de desempenho quando instalamos as VMware Tools é dramática! Além disto, no windows, quando virtualizado, o cursor do rato passa a navegar entre o windows e o sistema host de forma transparente, se redimensionarmos a janela do sistema virtual, este faz o seu próprio redimensionamento automaticamente, etc.
A versão do VMware Player instalada pelo Kubuntu Feisty, não é a última disponível, no entanto podemos sempre fazer o download do pacote directamente a partir do site da VMware. Esta solução apresenta alguns problemas dado que se trata de um pacote genérico, ou seja o software não é gerido pelo sistema de gestão de pacotes do Kubuntu. Além disto a configuração do software é ligeiramente mais difícil.
Outra forma de se conseguir virtualização quase grátis é usarmos o VMware Server, já referido antes.
Poderei fazer no futuro dois pequenos artigos cobrindo a instalação e configuração destes produtos.
Finalmente importa referir que estão a surgir novas tecnologias de virtualização para Linux que se mostram bastante prometedoras, já referimos o Qemu, mas também se deve de considerar o Xen ou o projecto Boshs, este produtos utilizam por vezes estratégias diferentes do VMware Player para obter a virtualização sendo que por isso devem ser acompanhados de perto.