Virtualização é a alma do negócio de hospedagem hoje em dia. Na semana passada contratei um novo servidor virtual, onde tenho acesso root e controle total, mas este não passa de uma máquina virtual, ou seja, é um sistema que roda dentro de outro. Mas não apenas para hospedagem web, virtualização também pode ser usada para rodar, por exemplo, um Windows XP dentro de sua distro preferida, eliminando a necessidade de um Dual Boot para rodar aplicações Windows.
Existem diversos emuladores de processadores disponíveis para criar máquinas virtuais, como o VMware, VirtualBox e QEMU, por exemplo, os três disponíveis para Linux. No meu caso utilizei o QEmu, isso porque já havia testado ele uma vez, e pelo que li a respeito achei que ele parece mais fácil de usar do que os outros.
ATENÇÃO: Caso precise rodar apenas algumas aplicações Windows, você poderá utilizar o Wine, uma implemetação livre da API do Windows que suporta uma boa gama de programas win32, podendo rodá-los nativamente no Linux, o que mostra uma performance muito melhor.
Também é possível encontrar facilmente programas Linux equivalentes para a maioria das aplicações conhecidas para Windows, veja aqui, aqui ou aqui.
Um Windows XP executado em uma máquina virtual tente a ficar um pouco lento. Para melhor a performance pode-mos utilizar o Qemu Accelerator (KQemu) ou o KVM (Kernel Based Virtual Machine), o que vou abordar aqui.
Primeiramente precisamos saber se seu kernel possui suporte para rodar o kvm. Digite o comando abaixo, como root, em um terminal:
# grep -E '^flags.*(vmx|svm)' /proc/cpuinfo
Se você obtiver algum resultado, então seu computador suporta virtualização de hardware e podemos continuar, caso contrário, verifique em sua BIOS se há opção para habilitar/desabilitar virtualização. Se não houver esta opção será melhor tentar utilizar o KQemu (tutorial aqui, em inglês).
Continuando… Primeiramente instale os pacotes qemu e kvm.
# aptitude install qemu kvm
Após isso carrege o módulo kvm próprio para seu processador (você pode adicionar o módulo em /etc/modules posteriormente para ser carregado na inicialização).
- Para processadores AMD:
# modprobe kvm-amd
- Para processadores Intel:
# modprobe kvm-intel
Além disso você precisará alterar o grupo de /dev/kvm para o grupo kvm e adicionar seu usuário a este grupo:
# chown root:kvm /dev/kvm
# adduser $USER kvm
Lembrando de sair e logar novamente para certificar-se que o novo grupo será usado. Agora começamos com a instalação em si.
Primeiramente você deve criar um arquivo de image, que será onde o Windows XP será instalado:
$ qemu-img create windows.img -f qcow 6G
A opção -f qcow economiza espaço, utilizando apenas o necessário para a instalação, até o limite especificado (6G). A desvantagem é que a imagem no formato qcow não pode ser montada no sistema, então se você deseja acessar os arquivos da imagem windows.img poderá omitir a opção ‘-f qcow’, mas lembrando que assim a imagem alocará todo o espaço especificado (ou seja, todos os 6G, mesmo que a instalação ocupe menos).
Para uma instalação completa do Windows XP você precisará de, no mínimo, 2GB ou 3GB. Porém é possível encontrar imagens de instalação modificadas (obviamente ilegais, mas não deve haver problema se você possui uma chave original do Windows XP) que ocupam menos de 500MB.
Após criada a imagem, insira o cd do windows em seu driver e execute a linha a seguir:
$ kvm -no-acpi -m 384 -cdrom /dev/cdrom -boot d windows.img
A opção -m especifica a quantidade de memória alocada para o sistema. 384 é um bom começo para o WinXP, caso disponha de mais memória você poderá alocar mais. Também é essencial que utilize a opção -no-acpi, já que o windows não terá acesso direto a placa mãe.
Caso deseje executar a instalação a partir de uma imagem, e não do CD, basta usar o comando como a seguir. No exemplo abaixo também alocamos mais memória.
$ kvm -no-acpi -m 512 -cdrom /backups/windows.iso -boot d windows.img
Caso a instalação trave em algum momento, basta fechar oqemu (feche a janela, ou pressione Ctrl+C no terminal que rodou os comandos) e iniciar novamente, que a instalação progredirá de onde parou.
IMPORTANTE:
A opção -boot d força o kvm/qemu a iniciar primeiro do cdrom, após concluir a instalação você poderá iniciar seu windows com o comando a seguir:
$ kvm -localtime -no-acpi -m 512 -cdrom /dev/cdrom windows.img
A opção -localtime ajusta o relógio da máquina virtual como a hora atual de seu sistema, e a opção -cdrom diz a máquina para tentar iniciar primeiramente do cdrom, útil para atualizações do windows ou coisas do gênero.
Você pode criar um lançador ou item no menu, para seu windows, especificando o caminho completo para windows.img, assim você poderá iniciá-lo com apenas um clique.
Configurar Rede:
O Qemu cria uma rede virtual entre a máquina host (o seu Linux) e a guest (O Windows) e um servidor DHCP, o que é suficiente para transferir arquivos e navegar na internet.
Por padrão o ip do host fica 10.0.2.2 e do guest algo como 10.0.2.15. Assim, caso tenha algum servidor instalado no host você pode acessá-lo pelo ip 10.0.2.2 (como páginas web, no caso de um Apache ou Lighttpd rodando).
Caso a navegação não funcione, pode ser um problema de DNS. Assim, vá nas “Configurações de Rede” do Windows, selecione a “Conexão Local” e nas propriedades do IP coloque o DNS de sua preferência (mantenha o endereço IP como “Obter Automaticamente”). Caso não conheça nenhum, utilize este: 200.176.2.10. Este é um servidor DNS no Terra, mas utilizando um mais próximo de seu computador vai deixar a navegação mais rápida.
A rede em modo de usuário, que é o padrão do qemu, tem várias desvantagens, como por exemplo, não permitir pings. Se você deseja configurar uma rede completa, e deixar a máquina virtual visível para toda a rede, você precisará configurar interfaces de rede virtuais. Não vou explicar aqui porque ainda não testei esta possibilidade, mas basta pesquisar na documentação do qemu que você verá vários bons tutoriais.
O Qemu ainda tem várias outras opções, como gravar as alterações no sistema em um arquivo separado, mantendo a imagem instalada intacta. Para isso você deve criar uma imagem de overlay:
qemu-img create -b windows.img -f qcow windows.ovl
Então, para executar o windows utilize a imagem de overlay (adicione as opções que desejar):
kvm windows.ovl
Assim, caso a imagem do windows seja arruinada, por um vírus ou algum bug, por exemplo (nada muito incomum), basta remover a imagem de overlay e utilizar a imagem original.
A principal razão para mim decidir rodar um Windows XP numa máquina virtual é para poder rodar alguns jogos que não rodam no wine, por utilizarem nProtect/GameGuard. No meu caso ainda não habilitei o som na máquina virtual nem habilitei compartilhamento de arquivos, mas logo farei um novo post abordando esses assuntos.
Fontes: https://help.ubuntu.com/community/WindowsXPUnderQemuHowT, https://help.ubuntu.com/community/KVM
PS.: Apesar dos tutoriais terem sido tirados da wiki do ubuntu, estes podem ser utilizados para virtualização no Debian (o meu caso) ou qualquer outra distro.
Se você gostou deste artigo, inscreva-se em meu RSS feed!
Últimos Comentários