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.
Últimos Comentários