QEMU - Para rodar Windows pré-instalado

A seguir, relato um passo a passo sobre como fiz para não precisar sair do Linux para utilizar o Windows, que já estava
instalado em minha máquina.

[ Hits: 23.562 ]

Por: Weslei Niz em 23/02/2012


Introdução



Eu tinha um problema que me deixava chateado.

Uso (e gosto de usar) o Linux, mas aqui onde trabalho, temos que conviver com ferramentas de desenvolvimento Open Source e proprietárias, e também com sistemas novos e legados.

Coordeno uma (pequena) equipe responsável pela manutenção de sistemas ASP (Padrão — não é .Net) e Visual Basic. Então, quando instalei o Ubuntu, instalei com Dual-Boot - com início primária no Linux.

E mantive o Windows, pois ainda preciso dele.

A seguir, relato o passo a passo sobre como fiz para não precisar sair do Linux para usar o Windows, que já estava instalado na minha máquina.

QEMU

De acordo com a Wikipedia:

“O QEMU é um Software Livre escrito por Fabrice Bellard, que implementa um emulador de processador, permitindo uma virtualização completa de um sistema PC dentro de outro”.

Mas, a característica mais importante e que difere o QEMU de outros emuladores, é que ele, primariamente, lida com imagens de discos rígidos cruas (Raw Hard Disk Images), ou seja, brutas, sem preparação, em 'estado natural'. No meu caso, o HD com o Windows instalado.

Se você estiver usando o Ubuntu, como eu, você já tem o QEMU instalado. Para verificar, digite no terminal:

qemu -version

Pra mim, a resposta foi:
QEMU emulator version 0.14.0 (qemu-kvm-0.14.0), Copyright (c) 2003-2008 Fabrice Bellard

Caso contrário, vamos instalá-lo. No terminal, digite:

sudo apt-get install qemu

Esta é a sintaxe para o Ubuntu, caso você não esteja utilizando o Ubuntu, utilize a sintaxe e o instalador de sua distribuição.

Forneça a senha de Root, confirme que você quer instalar o QEMU, e em minutos a instalação estará completa. Já podemos ver como ficou. Digite:

sudo qemu -m 768 -localtime -hda /dev/sda

Se for pedido, forneça novamente a senha de root, a tela do GRUB ou LILO, dependendo da distribuição, irá aparecer. Escolha o Windows e tecle: Enter.

Caso você tenha escolhido o Linux, por acidente ou porque o tempo configurado no GRUB (ou LILO) esteja muito curto, encerre a execução do QEMU, altere o seu GRUB para te dar mais tempo e comece de novo.

Assim que o Windows inicializar, ele irá instalar os drivers de rede, vídeo, teclado e mouse. São dispositivos virtuais que o QEMU fornece ao Windows, então, o Windows reconhece como novos dispositivos.

Uma vez instalado o driver de vídeo, você pode alterar a resolução da tela para uma que te agrade, a resolução padrão é 640x480.

Agora vamos dar uma olhada nas opções do comando:

sudo qemu -m 768 -localtime -hda /dev/sda
  • -m 768: Seta a RAM virtual em Megabytes, o default é 128.
    Opcionalmente, você pode usar um sufixo, 'M' para Megabytes ou 'G' para Gigabytes. Neste caso, as opções '-m 1024M' e '-m 1G', são equivalentes.
    Eu escolhi 768 Megabytes porque minha máquina só tem 2Gb de memória RAM, e 768Mb é aproximadamente um terço da memória disponível. Você pode usar o quanto quiser, mas aconselho-o a usar no máximo, metade de sua memória.

  • -localtime: A máquina virtual (Guest OS) assume data e hora do Sistema Hospedeiro (Host OS), caso contrario a máquina virtual vai calcular o GMT (Greenwich Mean Time) em cima do horário do hospedeiro.
    No meu caso, vai diminuir três ou duas horas (dependendo se estou em horário de verão).

  • -hda /dev/sda: A opção '-hda' define qual arquivo vai utilizar como HD do sistema.
    Como a opção está apontando para o primeiro dispositivo de HD do meu computador (/dev/sda) eu estou dando um segundo Boot na minha máquina.

É só escolher o Windows e pronto. Estou com a máquina Windows real rodando virtualmente.

Caso o QEMU reclame a falta de arquivos "pxe-???.bin", é só baixá-los e disponibilizá-los para o QEMU.

Estes arquivos são o Ambiente de Pré execução (Preboot eXecution Environment). É um ambiente para inicializar computadores usando a Interface da Placa de Rede sem a dependência da disponibilidade de dispositivos de armazenamento (como Discos Rígidos), ou algum Sistema Operacional instalado. O que não é o meu caso.

Caso você não queira baixá-los, não é imprescindível, mas eu não gosto de ver 'warnings' desnecessários, então eu baixei os arquivos:

wget -O pxe-ne2k_pci.bin http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-ne2k_pci.bin?root=qemu
wget -O pxe-rtl8139.bin http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-rtl8139.bin?root=qemu
wget -O pxe-e1000.bin http:// svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-e1000.bin?root=qemu

Movi-os para a pasta do QEMU:

sudo mv pxe-* /usr/share/qemu

Alterei o OWNER dos arquivos:

sudo chown root:root /usr/share/qemu/pxe-*

E tornei-os executáveis:

sudo chmod +x /usr/share/qemu/pxe-*


Se você seguiu este passo a passo até aqui sem erros, parabéns! Você já tem tudo que precisa.

Mas eu quis seguir um pouco mais adiante...
    Próxima página

Páginas do artigo
   1. Introdução
   2. Compartilhando arquivos e Criando lançador
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Tutorial de instalação LTSP 4.2 (Linux Terminal Server Project) no OpenSuSE 10.2

Como Funciona a Resolução de Dependências no Gslapt

Fãs do pinguim, vamos à luta!

Programas em Modo Texto (on Shell)

Montando uma rede GSM

  
Comentários
[1] Comentário enviado por nicolo em 23/02/2012 - 12:42h

Artigo confuso, escrito para quem já sabe tudo.
Não entendi. Há passos que parecem ter sido pulados.
O assunto é mais do que interessante: Utilizar windows sem rebootar máquina.

[2] Comentário enviado por julio_hoffimann em 23/02/2012 - 14:49h

Parabéns Weslei!

Abraço!

[3] Comentário enviado por podscrer em 23/02/2012 - 15:23h

Tentei rodar, chego até o boot, mas ele não consegue iniciar nenhum dos sistemas, nem o Ubuntu e nem o Windows. Seria porque eles são 64bits?

[4] Comentário enviado por wadilson em 23/02/2012 - 18:43h

Não concordo com o Bakunin sobre o artigo ser confuso. Sem dúvida, o autor, Weslei Niz, sabe tudo; mas o texto está muito claro e muito bem explicado.

Até os scripts propostos são comentados linha a linha.

Ficou show.

Na minha opinião só não ficou melhor por eu ter tido problemas com minha máquina virtual. Ainda não sei qual o causador.
Weslei, se vc puder dar a dica, agradeço.

Estou em um PC com Intel i5 760; tenho 4G de RAM, e no dual boot tenho o Ubuntu 11.10 (32 bits) com o kernel 3.0.0.16 e o Windows Seven (64 bits)
A placa de vídeo nVidia Corporation GT218 [GeForce 8400 GS]

Bom, o erro que surge no Terminal logo após a escolha do Windows no GRUB é essa abaixo:
_____________________________________________________
kvm: vm entry failed with error 0x80000021

If you're runnning a guest on an Intel machine without
unrestricted mode support, the failure can be most likely
due to the guest entering an invalid state for Intel VT.
For example, the guest maybe running in big real mode
which is not supported on less recent Intel processors.

kvm_run returned -22
_____________________________________________________

Tentei alternativas para alterar o estado da kernel virtual machine, mas não tive resultado com nenhuma. Qual será o causador do problema?
Como contornar o erro?

Valeu, obrigado e até breve



[5] Comentário enviado por wadilson em 23/02/2012 - 18:45h

Só um adendo: tenho, dentro do Ubuntu, o Virtual Box onde rodo uma versão do Windows XP, para ter acesso a alguns aplicativos Windows enquanto uso a sessão Linux. E tudo roda muito bem, incluindo dispositivos, impressoras e redes.

[6] Comentário enviado por wesleiniz em 24/02/2012 - 09:52h

Caros,

Eu não saberia dizer o que pode estar dando errado. Só posso informar minha configuração para dar uma pista.

Vi (não lembro onde nem quando) que 64-bits ainda esta rodando experimentalmente para Guest OS, não sei para Host OS.

Segue minha configuração:

Dell
vendor_id : GenuineIntel
model name : Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz
cpu MHz : 2000.000
cache size : 6144 KB
MemTotal : 1991396 kB

A partição do meu HD esta assim:
/dev/sda1 ntfs 15,6 Gb
/dev/sda3 extended 133,3 Gb (sda3 contém sda5 e sda6)
/dev/sda5 ext4 131,4 Gb
/dev/sda6 linux-swap 1,9 Gb

Ubuntu 11.04 (kernel 2.6.38-13-generic)
Windows Versão 5.1 (compilação 2600.xpsp_sp3_gdr.100427-1636: Service Pack 3)
QEMU emulator version 0.14.0 (qemu-kvm-0.14.0), Copyright (c) 2003-2008 Fabrice Bellard

Espero ter ajudado


Weslei


Até um relógio parado está certo duas vezes por dia. Após alguns anos, pode vangloriar-se de uma longa série de sucessos. - Marie Von Ebner



[7] Comentário enviado por pinduvoz em 24/02/2012 - 22:46h

Gostei bastante do artigo, mas não preciso mais dele por ter me livrado do Windows no trabalho.

Parabéns!

[8] Comentário enviado por dastyler em 25/02/2012 - 17:57h

Apesar de ter achado o artigo util para o meu uso pessoal pois sou um Linux user que precisa sempre do dual boot, hoje consegue-se o mesmo de uma forma mais prática rodando o VirtualBox com uma VM do Windows.
Testarei aqui no meu note que roda Ubuntu 11 + Windows 7 32 bits. Veremos como se sai.

[9] Comentário enviado por dastyler em 25/02/2012 - 19:36h

No meu caso o Windows 7 32 bits deu "blue screen of death" logo na inicialização: http://twitpic.com/8oncvc
E olhando no top deu consumo de CPU de 100%. com certeza deve ser devido a configuração limitada de hardware para usar o qemu com ou sem o KVM (um notebook Athlon II Dual Core - bem limitado).

[]'s

[10] Comentário enviado por removido em 27/02/2012 - 23:30h

-SHOW DE BOLA
-nota 10!
-parabéns!

[11] Comentário enviado por edmarpereira em 02/03/2012 - 16:41h

Meus parabéns pelo tutorial.
Estou usando a distribuição do Ubuntu 11, instalei normalmente o QEMU com o windows xp, porém estou com problemas para instala-lo no windows 7 ele até aparece a tela o windows está carregando arquivos porém na hora que vai iniciar da uma tela preta e volta no GRUB...
Alguém passou por esse problema >???



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts