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.027 ]

Por: Weslei Niz em 23/02/2012


Compartilhando arquivos e Criando lançador



Compartilhando arquivos entre Host OS e Guest OS com o Samba

Diferente do VirtualBox e do VMWare, o QEMU não compartilha a mesma área de transferência entre o Guest OS e o Host OS. Quem sabe, na próxima versão do QEMU, isto já esteja implementado, mas por enquanto, a solução (que encontrei) é considerar as máquinas como pertencentes a uma mesma rede e compartilhar pastas para a troca de dados entre eles.

Para isto, você vai precisar ter o Samba instalado. Para verificar se você já tem o Samba instalado (o que é bem provável), digite no terminal:

samba --version

Pra mim, a resposta foi:
Version 4.0.0alpha15-UNKNOWN

Caso necessite, instale o Samba:

sudo apt-get install samba

Após instalado, vamos compartilhar uma pasta. Como o compartilhamento é com toda a rede (escolhi assim para simplificar o processo, não preciso me preocupar com logins e permissões de cada usuário), resolvi compartilhar a pasta temporária na minha "/home".

Escolhida a pasta a ser compartilhada, vamos criar uma entrada no arquivo de configuração do Samba:

sudo gedit /etc/samba/smb.conf

Logo abaixo do bloco [profiles], coloquei o meu bloco de definições de compartilhamento:

#
# Compartilhamneto para o Windows - Qemu
#

[Temp]
comment = Compartilhamento com Windows
path = /home/weslei/Temp
create mask = 0777
directory mask = 0777
read only = no
guest ok = yes
browseable = yes


Onde:
  • Temp (entre []): é o nome do compartilhamento.
  • comment: é qualquer comentário que se queira colocar.
  • path: é o caminho completo da pasta a ser compartilhada.
  • create mask: define as permissões dos arquivos criados na pasta compartilhada (eu decidi dar acesso total — 0777).
  • directory mask: define as permissões das pastas criadas na pasta compartilhada (novamente preferi dar acesso total — 0777).
  • read only: define se o compartilhamento será somente leitura.
  • guest ok: define se o compartilhamento aceitará acesso de visitantes (anônimo).
  • browseable: define se o compartilhamento será visto na lista de compartilhamentos disponíveis.

Reiniciei o servidor:

samba restart

O QEMU define, por padrão, o IP 10.0.2.2 como o IP do Host OS (Linux). Ou seja, quando você estiver rodando o Windows (Guest OS), para acessar os arquivos compartilhados pelo Host, basta digitar (no 'Windows Explorer' ou na janelinha: Executar):

\\10.0.2.2\Temp

Novamente, se você seguiu este passo a passo até aqui sem erros, parabéns! Você já tem o que precisa. Esta executando o seu Windows real e compartilhando arquivos (via Samba) com o Linux.

Criando um ícone para acessar o Windows

Gosto de usar a interface Shell do Linux, mas prefiro usar um ícone (na área de trabalho ou nos menus) para deixar à mão, as execuções mais corriqueiras.

Resolvi criar um lançador para o Windows. Primeiro criei, na minha pasta "/home", o seguinte Shell Script:

#!/bin/bash

# obtendo a senha do root
PW=$(zenity --entry --title="Root password" --text="Enter root password:" --entry-text="" --hide-text)

# executando o comando como root
echo $PW | sudo -S -k qemu -m 768 -localtime -hda /dev/sda


Salvei o Shell Script com o nome de ".QemuWin.sh". O ponto no início do nome, é para tornar o arquivo oculto, pois só vou executá-lo via lançador, portanto, não tem a necessidade de ficar visível.

E tornei-o executável:

chmod +x .QemuWin.sh

O que faz este Script, linha a linha:
  • #!/bin/bash: define que o arquivo é um Shell Script e identifica o interpretador de comandos do Script (bash — Bourne Again Shell) .
  • PW=$(zenity ... ): coloca a saída do comando ZENITY na variável PW.

O Zenity oferece um meio de interação gráfica entre o usuário e os comandos do Script. Usei o Zenity em conjunto com as seguintes opções:
  • --entry: opção que define uma janela de diálogo de entrada de texto.
  • --title="Root password": opção que define o título da janela de diálogo.
  • --text="Enter root password:" opção que define o texto que será exibido na janela de diálogo.
  • --entry-text="": opção que define o texto que é exibido no campo de entrada da janela de diálogo.
  • --hide-text: opção que oculta o texto no campo de entrada da janela de diálogo.


A linha seguinte, usa o encadeamento de comandos (pipe "|") para enviar o resultado de: echo $PW, para o comando sudo -S - k.
  • $PW: faz o display do valor da variável PW e não dos caracteres 'PW'.
  • -S: faz com que o sudo obtenha a senha do standard input (do pipe "|") e não do terminal.
  • -k: faz com que a senha seja 'esquecida' logo após ser usada.

Criando o Lançador

Cliquei com o botão direito do mouse na Área de Trabalho, selecionei: Criar Lançador...

No campo: Nome, coloquei: qemu Windows. No campo: Comando, coloquei: /home/weslei/.QemuWin.sh

Cliquei no ícone do lançador:

Escolhi um ícone (que baixei da internet) e clique em Ok.

O Lançador foi criado. Veja como ficou (com o QEMU rodando):

Espero que este meu relato tenha sido útil.

"Se o conhecimento pode criar problemas, não será através da ignorância que os resolveremos" - Isaac Asimov
Página anterior    

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

Monitoramento de Comunicação - Blackbox Exporter(ICMP) + Prometheus + Grafana

Ultimate Boot CD - Um Fantástico "Canivete Suíço" para recuperar seu Linux

Linux em um pendrive

MEncoder - Criando Programa Gráfico Para Conversão

Utilizando o RSYNC para fazer backups de servidores e estações Windows

  
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 clodoaldops 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