Atualmente muito vem se falando de virtualização, não apenas em servidores, mas de aplicações desktop também. É muito mais tranquilo virtualizar um outro SO para rodar uma determinada aplicação que precisamos do que rodar em dual boot. Para isso temos o
VMWare, que é o mais utilizado em desktop, dentre outras ferramentas (VirtualBox, XEN, QEMU etc).
Essa semana decidi baixar e instalar o
Linux Ubuntu 9.04. Qual não foi minha surpresa ao encontrar imensa dificuldade em instalar o VMWare? Coisa tão tranquila no Ubuntu 8.04 (mas pelo que sei, também não instalava tão bem assim no 8.10).
Utilizei a versão VMWare Server 2.0 (que é gratuita) para testar a instalação e virtualizar algumas aplicações do "Windows" e uma outra distribuição Linux (BackTrack BETA 4). Para baixar o VMWare:
http://www.vmware.com/download/server/
Segui os seguintes passos, começando pela verificação de meu kernel:
# uname -a
Que retornou "Linux server 2.6.29-11".
Daí comecei a instalação dos headers do kernel:
# apt-get install linux-headers-2.6.29-11
Depois disso, foi necessário instalar o conjunto de compiladores básicos:
# apt-get install build-essential
No Ubuntu, precisei criar manualmente o link "/usr/src/linux" (coisa que muito provavelmente não precise fazer em outras distribuições), apontando para a pasta referente a versão instalada. Para isso acessei a pasta "/usr/src" e rodei o comando "sudo ln -sf linux-headers-2.6.*-* linux", como em:
# ln -sf linux-headers-2.6.29-11-server linux
Nesse ponto foi necessário instalar um conjunto de bibliotecas que o VMWare precisa para a parte gráfica:
# apt-get install libx11-6 libxtst-dev libxt-dev libxrender-dev libxtst6 libxt6 libxrender1 libxi6 libdb3
Pronto, tudo o que preciso (nesse momento pelo menos) está instalado.
Baixei, depois de tudo isso, os seguintes arquivos:
Nesse ponto foi onde comecei a instalação propriamente dita:
# tar -zxvf VMware-server-2.0.0-122956.i386.tar.gz
# cd vmware-server-distrib
# ./vmware-install.pl
Segui instalando normalmente, respondendo "yes" a todas as perguntas. E quando cheguei na seguinte mensagem:
Before running VMware Server for the first time, you need to configure it by invoking the following command: "/usr/bin/vmware-config.pl". Do you want this program to invoke the command for you now? [yes]
Digitei "no" para interromper a instalação.
Após isso precisei fazer o seguinte:
# cd /usr/lib/vmware/modules/source
# tar -zxvf vmmon.tar
# vi source/vmmon-only/include/compat_kernel.h
E nesse ponto foi necessário realizar a alteração do arquivo que abri no vi. As alterações são as seguintes:
De:
#define __NR_compat_exit __NR_exit
static inline _syscall1(int, compat_exit, int, exit_code);
Para:
#define __NR_compat_exit __NR_exit
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
static inline _syscall1(int, compat_exit, int, exit_code);
#endif
Salvei o arquivo e saí do vi (:wq). E então executei os seguintes comandos para reconstruir o pacote:
# mv vmmon.tar vmmon.origin.tar
# tar cvf vmmon.tar vmmon-only
Então retornei ao diretório onde estava meu arquivo vmware-update-2.6.27-5.5.7-2.tar.gz e executei os seguintes comandos:
# tar -zxvf vmware-update-2.6.27-5.5.7-2.tar.gz
# cd vmware-update-2.6.27-5.5.7-2
# ./runme.pl
Prossegui com a instalação normalmente, informando tudo o que foi solicitado (normalmente as opções default são as corretas) e então o script compila a biblioteca vmmom que alterei, já com as informações corretas.
Após terminada a instalação, não havendo nenhum erro, executei:
# vmware
E como o comando foi executando corretamente, entrei no navegador (já que achei estranho não haver o vmware-console, como nas versões anteriores). No navegador digitei https://localhost:8333/
O mesmo solicitou o nome do usuário e senha: usuário root e senha [senha-do-root].
Lembrando que o Ubuntu não define a senha de root por padrão, bastando digitar no terminal:
# passwd root
e então redefinir a senha de root.
Pronto! Agora consegui acesso ao gerenciador remoto de máquinas virtuais! Criei duas máquinas virtuais e qual não foi minha surpresa ao ver o seguinte erro no console remoto ao carregar minhas máquinas virtuais: "Failed to initialize monitor device".
Bem, depois disso tudo, consegui descobrir que o vmware-server-2.0 só possui console remoto (nesse ponto, sua versão anterior é mais tranquila, pois você trabalha com o console local, instalando o vmware-server-console), e que no kernel mais atual o vmware, na versão 2.0 tem problemas com o módulo vmmon do kernel. Foi um trabalho para chegar até aqui e ainda tenho que descobrir como resolver a questão do módulo vmmon!
Enquanto isso decidi fazer um teste para não ficar órfão. Como já tinha usado o VirtualBox no Windows antes, decidi testá-lo no Linux. O problema é que no Windows tive problemas na conexão de rede entre as máquinas virtuais. Porém, qual não foi minha surpresa em descobrir que no VirtualBox para Linux o modo bridge de rede é padrão?! Isso facilitou demais minha vida, sem contar que a instalação foi super tranquila.
Baixei a versão .deb para o Ubuntu 8.10 aqui:
virtualbox-2.1_2.1.4-42893_Ubuntu_intrepid_i386.deb
Já no tamanho vemos a diferença: 32mb do VirtualBox contra mais de 500mb do VMware Server.
Depois de baixar, bastou dar dois cliques no pacote .deb e a instalação foi realizada, de forma simples e indolor!
Bem, no momento estou usando o VirtualBox, feliz da vida, mas ainda com um gosto amargo na boca, resquício da luta com o VMware. Mas aguardem, em breve resolvo o problema do módulo vmmon e posto aqui a solução!
Vamos a luta!