VMWare player, Qemu e KQemu: emulando o Windows no Linux Kubuntu / Ubuntu 8.04 Hardy

Infelizmente, em algumas situações ainda não conseguimos "escapar" do uso do Windows. Seja por um arquivo com formato proprietário (como o .CDR do Corel) ou mesmo um site com extensões do Microsoft Office que só roda no Internet Explorer. Pasmem, os softwares empresariais do próprio Banco do Brasil, apesar do governo federal alegar ser defensor do software livre, e destes serem já feitos em Java, só desenvolveram instaladores para Windows, e utilizam Access para armazenar dados. Patético.
Desabafo à parte, existem boas alternativas para rodar aplicações Windows como o Wine (http://www.winehq.com) e para a internet o Ies4Linux (www.tatanka.com.br/ies4linux/), mas ambos ainda não são 100% compatíveis.
Dentro das gratas surpresas dos últimos tempos, está o OpenOffice 2.3, que já abre os novos formatos XML .xlsx e .docx do Microsoft Excel e Microsoft Word, respectivamente.

Voltando ao objetivo deste post, existe uma ferramenta hoje madura e poderosa que emula outros ambientes operacionais em Windows, Linux e outros. É possível rodar vários discos virtuais, cada um com uma versão diferente do sistema operacional que se quiser. Vamos ver como utilizar um disco virtual no Linux, para instalar outras versões de Linux para teste ou mesmo o Windows, com resultados notáveis.

Como instalar o VMWare Player e o Qemu / KQemu no Kubuntu / Ubuntu Hardy 8.04:
O VMWare é uma ferramenta já conhecida no mundo Windows, nas versões Server (que criam o disco virtual) e Player (que faz funcionar o disco virtual). O Player é free, e disponível também em Linux, e tenho tido bastante sucesso no uso dele. Para criar a máquina virtual, utilizo o Qemu e seu módulo "acelerador" KQemu. O KQemu faz com que o disco virtual funcione até 5x mais rápido que o normal, até hoje a maior barreira para a utilização prática deste recurso.

Instalando o Qemu e o Kemu:
########################

Digite no console:
sudo aptitude install kqemu-common kqemu-source qemu qemu-launcher qemubuilder qemuctl qemulator kqemu-common kqemu-source

Crie uma pasta qemu e digite o seguinte comando:
qemu-img create -f vmdk "HD-virtual.vmdk" 10G

Isso irá criar o disco virtual que irá crescer à medida em que for utilizado até o limite de 10GB (altere isso conforme a sua necessidade).

Após, crie na mesma pasta o arquivo HD-virtual.vmx conforme abaixo:

#!/usr/bin/vmware
#
# Criar disco virtual:
# qemu-img create -f vmdk "HD-virtual.vmdk" 10G
#

config.version = "8"
virtualHW.version = "4"
memsize = "1024"
MemAllowAutoScaleDown = "FALSE"

ide0:0.present = "TRUE"
ide0:0.fileName = "HD-virtual.vmdk"
ide0:0.redo = ""

ide1:0.autodetect = "TRUE"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"

serial0.autodetect = "FALSE"
serial0.present = "FALSE"
serial0.fileName = "COM1"
serial0.hardwareFlowControl = "TRUE"

floppy0.autodetect = "FALSE"
floppy0.present = "FALSE"
floppy0.fileName = "/dev/fd0"

ethernet0.present = "TRUE"
usb.present = "TRUE"
usb.autodetect = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
sound.fileName = "-1"
sound.autodetect = "TRUE"

displayName = "WinXP"

guestOS = "winxppro"
nvram = "HD-virtual.nvram"

ethernet0.addressType = "generated"
uuid.location = "56 4d 36 b4 cb 83 82 17-47 0c fd db f9 c4 4b 5c"
uuid.bios = "56 4d 36 b4 cb 83 82 17-47 0c fd db f9 c4 4b 5c"

tools.remindInstall = "FALSE"
ethernet0.generatedAddress = "00:0c:29:c4:4b:5c"
ethernet0.generatedAddressOffset = "0"
checkpoint.vmState = "HD-virtual.vmss"

virtualHW.productCompatibility = "hosted"
tools.upgrade.policy = "manual"

tools.syncTime = "TRUE"

usb.autoConnect.device0 = ""
usb.autoConnect.device1 = ""

priority.grabbed = "normal"
priority.ungrabbed = "normal"

extendedConfigFile = "HD-virtual.vmxf"


## FIM DO ARQUIVO


Pontos importantes:
- 'memsize" define a quantidade de RAM utilizada pela máquina virtual. Isso pode ser alterado a cada boot dela, para verificar qual o melhor custo x benefício. Em computadores com 1GB de RAM, notei que o melhor desempenho ficou em 384MB.
- Em notebooks não é mais usual ter drive de disquete. A linha floppy0.fileName = "/dev/fd0" pode ser comentada.
- Geralmente instalo o Windows XP Professional, e não há necessidade de alterar a entrada guestOS = "win2000pro".


PARA O WINDOWS 7:
- O Windows 7 RC precisa de um parâmetro a mais incluído no arquivo de configuração .vmx:

ethernet0.virtualDEV = "e1000"

Apenas acrescente esta linha no arquivo antes de inicializar o VMWare que a placa de rede será detectada.


VERSÕES DO UBUNTU ABAIXO DE 8.04:
Para instalar o KQemu:
Procure e descompacte o arquivo /usr/src/kqemu.gz (ou .tar)
Entre na pasta descompactada "modules/kqemu"
digite no console:
sudo ./configure
sudo make
sudo make install

Para conferir se está instalado:
modprobe -l | grep kqemu

* - Repetir a instalação do KQemu a cada atualização do Kernel do Linux.


Instalando o VMWare Player:
######################

Faça o download da versão adequada ao seu sistema em:
http://www.vmware.com/go/get-player

Descompacte o arquivo, usando tar -xzvf VMware...(nome do arquivo)

Será criada a pasta vmware-player-distrib. Então execute:
sudo ./vmware-install.pl

Tecle ENTER em todas as opções, a configuração padrão funciona perfeitamente.

Para executar o disco virtual, chame o aplicativo vmplayer e com ele abra o arquivo HD-virtual.vmx.

IMPORTANTE: Nas atualizações de kernel do Linux, o vmware-player pode deixar de funcionar. Basta entrar no console e digitar vmware-config.pl, e ele se auto-recompilará.

Otimização do VMWare Player:
#######################
Após a instalação do windows no disco virtual, baixe e instale o seguinte pacote:

http://www.guiadohardware.net/kurumin/download/vmware-tools-windows.iso.zip

Ele possui os drivers necessários para o Windows e outros recursos interessantes.

UPDATE: Noo link para download da última versão do vmplayer:
https://www.vmware.com/tryvmware/p/activate.php?p=player&lp=default

Comentários

Anônimo disse…
Melhor dica que vi no momento ....
Anônimo disse…
Muito boa dica, segui o tutorial e tudo funcionou 100%. Valeu!
Danilo disse…
É possível também trocar dados entre o Windons emulado via VMware e algum device ligado a COM1?

Otimo post! Me ajudou bastante.
Até +!
Sim, Danilo, alterando a linha abaixo do arquivo HD-virtual.vmx, trabalho com impressoras fiscais via porta COM:

serial0.autodetect = "TRUE"

(no meu exemplo está como "FALSE")

Postagens mais visitadas deste blog

NET bloqueando portas do modem? Não, é NAT

CFTV em Linux Ubuntu - Câmeras de segurança com ZoneMinder e PICO 2000 ou Geovision GV250 / GV800

OpenOffice Calc: converter texto em números ou data