qemu - tutorial, dicas, comandos e indicações.

Atualizado em: 28/04/2007



Sobre este documento

Original em formato texto com marcações para txt2tags, conversão em HTML e atualização do site via script.

Tutorial sobre qemu - instalar em diversas distros, ou rodar diversas distro em uma, utilizando somente os pacotes da distro com CD de instalação de outros sistemas. Instalar win98 utilizando somente o pacote da distro com o CD original de instalação do Win98.

Dicas, comandos e indicações, passo a passo da maneira mais simples, comandos pronto para copiar e colar, não tem definições nem explicações sobre qemu, sobre isto tem muito material na net, também muitos tutoriais com passo a passo e outras soluções, qualquer dificuldade pesquise no google também.

FAQ com copia de respostas na lista Linux-BR
http://www.zago.eti.br/qemu.txt

kqemu

Pesquise também sobre Kqemu, não encontrei nos repositórios do Open SUSE 10.1, tem o pacote para download em;
http://www.qemu.org/download.html
http://www.suseforums.net/lofiversion/index.php/t15156.html

QEMU Accelerator Module

Modulo para acelerar o qemu, veja sobre ele em;
http://www.qemu.org/qemu-accel.html

Resumo de comandos e dicas

Não esqueça do manual, depois de instalar qemu, execute; man qemu

qemu roda outro sistema operacional dentro do Linux, entre eles pode rodar windows, roda bem mais lento que o normal, em maquinas com poucos recursos pode tornar inviável, programas que requer muito processamento também pode ficar muito lento.

Na net tem um modulo para acelerar qemu, procure por "Accelerator Module" ou "qemu acelerator", neste tutorial não inclui este patch.

Alternar entre QEMU e o sistema operacional.

Digite: CRTL+ALT e clique com mouse no outro SO, observe que o mouse fica preso dentro da janela do qemu, para acessar o Linux, clique fora da janela depois do CTRL+ALT, ou CTRL+ALT+X, quando falhar um tente o outro, voltar é o mesmo processo, depois do CTRL+ALT clique dentro da janela do qemu.

Durante a instalação do win98, enquanto operar no prompt do DOS com boot pelo CD, evite clique do mouse na janela do qemu, some o mouse e fica a impressão que travou, para sair do qemu no prompt do DOS, tente mais de uma vez as combinações de teclas com cliques de mouse fora da janela do qemu.

Alternar tela cheia e tela normal: CRTL+ALT+F, na minha instalação quando executo na maquina local, tela cheia não ocupa toda area do monitor, conectado remotamente via ssh -X ocupa toda area do monitor.

Muito interessante abrir mais um sessão local, ou remotamente via ssh, configure o ssh para exportar o X, depois faça a conexão via ssh com opção -X e execute a linha de comando como no exemplo abaixo.

qemu win98se.img -boot c -full-screen

Na maquina remota, de origem da conexão ssh, abre o desktop do win98 ocupando toda a tela, não fica nada do Linux visível, CRTL+ALT+F alterna entre o Linux local e Win98 remoto, nesta maquina remota não tem nada de configurações do qemu, somente usando ssh a partir de um konsole.

Usando esta imagem simultaneamente na maquina local e remota, ou seja rodando qemu 2 vezes (2 usuários), cada usuário pode executar tarefas indenpendentes, um não interfere no outro, não sei quais a consequencias disto. Em poucos minutos de testes, fechando a janela do qemu sem fechar o windows, executou scandisk, recuperou registro do windows, entrou em modo de segurança.

Algumas observações sobre o hardware detectado pelo windows.

Rede

Placa de rede, sempre configura uma Realtek RTL 8029, independente de qual seja a placa de rede real na maquina.

No manual (man qemu) tem explicação em (Network options:) algo como configurar a rede no Linux e passar paramentros na linha de comando do qemu quando chama a imagem do SO, em meus testes falhou, vou traduzir esta parte do manual e tentar outro dia.

Placa de vídeo, sempre configura uma Cirrus Logic 5446 PCI, independente de qual seja a placa de vídeo real na maquina.

Resolução de vídeo, permite varias opções 800x600, 1024x768 e etc...

Alguns exemplos de linhas de comando com descrição dos parametros utilizados;

qemu win98se.img -boot c -full-screen

c = boot pela unidade C:, utilize somente com sistemas windows.

-full-screen = qemu iniciar o sistema virtual em tela cheia

qemu-img create kurumin6.img 2G

kurumin6.img = nome da imagem - disco virtual, independe do sistema virtual, use qualquer-nome.img

2G = tamanho do disco virtual a ser criado, independe do sistema virtual mas tenha o cuidado de não criar um disco virtual menor que o requerido pelo sistema, também precisa ter este espaço livre em HD físico, será criado um arquivo do tamanho da imagem.

qemu -m 512 kurumin6.img -cdrom /home/zago/kurumin-6.0.iso -boot d

-m 512 = quantidade de memória RAM reservada para o sistema virtual, depende da memória física da maquina real, tente usar valor intermediario entre o mínimo requerido pelo sistema virtual e de forma que não comprometa a maquina real, por default (sem este parametro) o qemu utiliza 128MB.

/home/zago/kurumin-6.0.iso = local da imagem .ISO no HD da maquina que executa qemu, pode ser qualquer diretório, vale também para sistemas Windows quando tem a ISO do CD no HD local.

qemu win98se.img -cdrom /dev/cdrom -boot d

/dev/cdrom = local do CD de boot de instalação do sistema virtual, independe do sistema virtual.

Kubuntu 7.04

Pacote qemu instalado sem configuração adicional, comandos executados no konsole, instalar qemu via smart.

  su -
  smart install qemu -y
  exit

Instalar win98, pode seguir os mesmos passos do tutorial para SUSE para rodar win98 sob qemu, funciona exatamente igual no Kubuntu, depois de instalado, para rodar win98 em tela cheia e com 128 MB.

qemu -m 128 win98se.img -boot c -full-screen

SUSE 10.1 (OpenSUSE) - rodar Kurumin 6 a partir da ISO

Ambiente,

  Open SUSE 10.1 x86_64 RC1
  Micro; 
  MOBO: MSI modelo MS-6471 ver: 1
  CPU: AMD Athlon 64 - 3000+ - 1GB RAM
  HD de 120GB - Sem CDROM.

Pacote qemu instalado sem configuração adicional, comandos executados no konsole, instalar qemu via smart.

  su -
  smart install qemu -y
  exit

Rodar Live CD no qemu, neste exemplo, em uma instalação do Open SUSE 10.1 com qemu instalado, com a imagem ISO do Kurumin em /home/zago/kurumin-6.0.iso

no konsole execute os comandos;

  qemu-img create kurumin6.img 2G
  qemu -m 512 kurumin6.img -cdrom /home/zago/kurumin-6.0.iso -boot d

Observe o parametro (-m 512), isto reserva 512M de RAM para o qemu, neste caso será utilizada pelo Kurumin, por default reserva somente 128MB que é muito pouco para carregar o Kurumin como Live CD.

Algumas observações;

No boot do Kurumin, na tela do qemu tudo se passa como se faz em boot pelo CDROM, detecta a CPU como sendo PII 2000Mhz, pela lentidão o desempenho parece mesmo com PII.

Kurumin detectou HD e CDROM como; QEMU HARD DISK, QEMU CDROM, não tem avisos nem mensagens de erro, carregou a interface gráfica da mesma forma que o boot pelo CDROM.

Achei muito interessante para conhecer Live CD antes de queimar o CD, basta fazer o download e rodar a partir da imagem ISO, se gostou grava para usar, se não gostou basta apagar a ISO.

Estou usando uma conexão via ssh -X, dentro da janela do qemu até o ALT+F2 para executar programas funcionou, no konsole o fdisk -l exibe o HD como sendo /dev/hda de 2.147 MB, mas o HD fisico tem outro tamanho, veja esta imagem .

http://www.zago.eti.br/figuras/qemu-livecd.jpg

Rede

Kurumin dentro do qemu navega e acessa outras maquinas via ssh, o mais interessante, não executei configuração alguma de rede para qemu, a maquina que roda qemu está configurada como estação da rede com acesso à internet, sem firewall local, com qemu instalado e sem configuração extra do qemu, no Kurumin não configurei nada.

Tentei acessar internet e navegou..., tentei conectar via ssh com outras maquinas da rede, inclusive com a própria maquina que roda o qemu, com todas completou a conexão, embora o ping não responde, mas é assim mesmo, neste ambiente não funciona o ping, use ssh no konsole para conectar com outras maquinas que funciona sem configuração adicional.

ssh user@ip, ssh zago@192.168.1.53

completou a conexão, console remoto dentro do Konsole virtual do Kurumin.

Na configuração de rede do Kurumin exibe estes dados de eth0.

  Endereço IP           10.0.2.15
  Mascara de subrede    255.255.255.0
  Endereço de broadcast 10.0.2.255
  Gateway padrão        10.0.2.2
  endereço de HW

Tentativa de carregar Kurumin com memória default, 128 MB, sem o parametro (-m 512).

  qemu-img create kurumin6.img 2G
  qemu kurumin6.img -cdrom /home/zago/kurumin-6.0.iso -boot d

Emite um aviso explicando sobre os recursos da maquina (SEU MICRO NÃO ATENDE OS REQUISITOS MINIMOS, Existem apenas kb.....), sugere modo texto, upgrade de memória e outras dicas,

Enter em aceitar.

Demorou um pouco, exibe a tela com os ícones de ferramentas de configuração do boot, no ícone das chaves sai para tela com fundo cinza, demorou muito e não esperei, nem sei se consegue carregar kurumin com 128MB.

Outra tentativa, agora em modo single, na primeira tela do Kurumin, digite linux single, tentei carregar o kurumin em modo texto, exibe a mensagem de poucos recursos, memória encontrada 124820kB, no final tenta carregar a interface gráfica e sai para tela cinza depois de piscar por algum tempo o ícone das chaves.

SUSE 10.1 (OpenSUSE) - Win98SE sob qemu

Ambiente, Open SUSE 10.1 x86_64 RC1- ambiente KDE com smart instalado e configurado.

Micro;

  MOBO: MSI modelo MS-6471 ver: 1
  CPU: AMD Athlon 64 - 3000+ - 1GB RAM

instalar a partir de ISO do win98

Comandos para criar imagem de instalação do win98 no home do usuário, instalação a partir da imagem ISO do CD do Win98se, neste exemplo a ISO está em /home/zago/win98se.iso e resevando 256MB para rodar win98, tem outro exemplo depois deste, com instalação a partir do CD do win98.

  cd ~
  qemu-img create win98.img 2G
  qemu -m 256 win98.img -cdrom /home/zago/win98se.iso -boot d

Observe na janela do qemu, faz boot pelo CD-ROM do Win98 com as opções de inicar pelo disco ou CD-ROM, com as setas de direção, selecione;

   2 Inicializar do CD-ROM
   2 Iniciar o computador com suporte a CD-ROM
  
  # criar a partição
  
  fdisk 
  
  ou 
  
  d:
  cd \win98 
  fdisk

Depois de criar a partição, precisa reiniciar o DOS, não sei como fazer isto, então fechei a janela do qemu com CTRL+ALT, ou CTRL+ALT+X para voltar ao Linux e dar um clique no x da janela do qemu.

De volta ao konsole

  qemu -m 256 win98.img -cdrom /home/zago/win98se.iso -boot d
  
  #no prompt do DOS execute;
  
  d:
  cd \win98
  format c:
  # copiar os arquivos de instalação para instalar e não precisar mais do CD no futuro
  \tools\oldmsdos\xcopy \win98 c:\win98 /s
  
  c:
  cd \win98
  instalar 

Reinicia duas vezes como se faz em instalação normal em HD de verdade, selecione (1 Inicializar do disco rígido)

Veja como criar script no tópico Instalar a partir do CD, para executar win no próximo boot, execute.

  qemu -m 256 win98.img -boot c

Instalar a partir do CD do WIN98

Com CD de instalação original do Win98SE.

Instalar Win98SE em partição virtual de 2G dentro do diretório /home/win98, os comandos abaixo cria o diretório, cria a imagem virtual e executa o boot pelo CD de instalação do WIN98, durante a instalação mantenha o CD original do win98se na unidade de CDROM.

  su -
  mkdir /home/win98
  cd /home/win98
  # ajuste a permissão do diretório para o usuário ou pule esta parte e crie a imagem 
  # em local acessível pelo usuário.
  exit
  qemu-img create win98se.img 2G
  qemu win98se.img -cdrom /dev/cdrom -boot d

Dentro da janela do qemu tudo acontece igual na instalação normal do Win98 em HD, os comandos tem os mesmos resultados quando aplicados em HD fisico normal, mas neste caso não afeta partições do HD, tudo é feito no arquivo win98se.img, tudo virtual, até a partição criada com fdisk do DOS.

Siga os mesmos passos de uma instalação normal do win98, no boot selecione boot pelo CD e boot com suporte a CDROM, no prompt do DOS mude para d:\win98.

  d: 
  cd \win98 
  fdisk

Execute fdisk para criar a partição, não se preocupe, fdisk detecta somente a pertição virtual, depois de criar a partição precisa reiniciar o DOS, sumiu o mouse e não descobri como reiniciar via prompt do DOS, tente voltar para o desktop do Linux com CTRL+ALT, ou CTRL+ALT+X e dar um clique no x da janela do qemu.

De volta ao konsole

  qemu win98se.img -cdrom /dev/cdrom -boot d
  
  #no prompt do DOS execute;
  
  d:
  cd \win98
  format c:
  # copiar os arquivos de instalação para instalar e não precisar mais do CD no futuro
  \tools\oldmsdos\xcopy \win98 c:\win98 /s
  
  c:
  cd \win98
  instalar 

Reinicia duas vezes como se faz em instalação normal em HD de verdade, selecione (1 Inicializar do disco rígido)

Prontinho, instalação completada, hardware configurado, no próximo boot, para executar win98.

  qemu win98se.img -boot c

Iniciar com tela cheia -full-screen

qemu win98se.img -boot c -full-screen

Ou crie um script e atalho para ele no desktop, exemplo para criar win98.sh, em /home/zago e liberar acesso ao user zago para carregar a imagem que está em /home/win98.

Conteúdo do arquivo win98.sh

  #!/bin/bash
  cd /home/win98
  /usr/bin/qemu win98se.img -boot c

chmod 755 win98.sh chown -R zago /home/win98

Agora pode chamar a partir do script ou crie o atalho no desktop do usuário, para executar basta clicar no atalho...

Configuração de rede win 98

Configura a rede automaticamente com estes valores, obtidos com ipconfig.

  Endereço IP           10.0.2.15
  Mascara de sub-rede   255.255.255.0
  Gateway padrão        10.0.2.2
  

Pelo que notei é padrão esta configuração, nesta maquina o Linux esta com IP 192.168.1.205, atribuiu os valores acima para windows virtual.

Acessar internet.

A maquina que roda qemu é uma estação da rede, configurada para navegar através de NAT de outra maquina, tal como no Kurumin, não precisou fazer nada, um clique no ícone do I.E e selecionar para navegar pela rede LAN, prontinho, acessando internet sem configuração nada no windows.

Detalhe, nos logs do servidor apache fica registrado o IP da instalação Linux, neste teste estava com IP 192.168.1.205, portanto tem NAT para o sistema que roda no qemu.

Servidor Samba e compartilhamento windows.

Não acessou servidor Samba, em ambiente de rede não lista o compartilhamento de outras maquinas.

Samba - acessar servidor samba em outra maquina. (Falhou, não encontrei registros nos logs do samba).

Samba - acessar servidor samba na própria maquina que roda o qemu. (ainda não testei, mas pretendo usar como ambiente de testes)

Tutorial - Acesso à rede virtual no QEMU 0.8.x

  De: 	Ederson Luiz Honorato <ederson.luiz.santos@itelefonica.com.br>
  Para: 	zagolinux@uol.com.br
  Assunto: 	Acesso à rede virtual no QEMU 0.8.x - pro FAQ
  Data: 	Sat, 02 Sep 2006 20:12:52 -0300
  
  
  Como configurar o acesso à Redes nos terminais virtuais do QEMU
  
  INTRODUÇÃO    
  ==========
  
  Devido ao fato do desenvolvimento do QEMU ser constante e da busca por 
  um virtualizador eficiente, os desenvolvedores
  vem modificando sensivelmente o QEMU.
  Apesar de ser algo muito bom, isso pode trazer alguns constrangimentos 
  ao usuário final, já que o QEMU conta com
  pouca documentação na internet e menos ainda em lingua portuguesa.
  Houve uma grande mudança na sintaxe de algumas opções para emulação de 
  placas de som e rede.
  Nas versões mais antigas o QEMU emulava uma SoundBlaster 16 e emulava 
  uma placa de rede Realtek ISA. Agora o QEMU
  conta com emulação de uma placa de som Ensonic e do speaker, além da 
  SB16 e emula uma placa de rede Realtek ISA
  ou PCI.
  
  Para ver a lista de placas de som emuladas pelo QEMU digite:
  
  ederson@linux:~$ qemu -soundhw ?
  Valid sound card names (comma separated):
  pcspk       PC speaker
  sb16        Creative Sound Blaster 16
  es1370      ENSONIQ AudioPCI ES1370
  
  -soundhw all will enable all of the above
  
  CONEXÕES DE REDE VIRTUAL
  ========================
  
  Conexão entre GUEST e HOST
  --------------------------
  
  Houve um grande avanço nas opções da rede virtual do QEMU, podendo 
  conectar varias máquinas virtuais entre sí, conectar
  a máquina virtual ao host ou utilizar a rede virtual somente como NAT 
  para que o guest virtual tenha acesso à internet.
  
  Essas mudanças apesar de necessárias me deram um pouco de dor de cabeça 
  na ora de configurar a maquina virtual com o QEMU
  da versão 0.8.x.
  A conexão entre o guest e o host me forçou a fazer algumas mudanças no 
  script /etc/qemu-ifup que levanta a rede virtual.
  
  O comando para rodar o QEMU com conexão de rede com a máquina real é o 
  seguinte:
  
  $ qemu -hda disco_virtual.img -soundhw all -m 32 -net nic -net tap -boot 
  c -localtime
  
  Onde:
  -hda         é a primeira unidade de disco virtual
  -soundhw all    emula todas as placas de som suportadas (para emular 
  somente uma SoundBlaster 16 troque o "all" por "sb16")
  -m        quantidade de memória para a máquina virtual
  -net nic    cria uma interface de rede na máquina virtual e conecta ela 
  na rede virtual VLAN
  -net tap    conecta a interface TAP do host (máquina real) à rede 
  virtual VLAN e roda o script /etc/qemu-ifup para configurá-la
  -boot c        unidade de disco em que o sistema irá iniciar
  -localtime    usa a hora do host como referência
  
  Inicialmente usando a opção "-net nic -net tap" eu recebi o seguinte erro:
  
  warning: could not open /dev/net/tun: no virtual network emulation
   Could not initialize device 'tap'
   
  para resolver o problema criei um novo qemu-ifup com o conteúdo abaixo:
  
  #!/bin/sh
  sudo mkdir /dev/net
  sudo mknod /dev/net/tun c 10 200
  sudo chmod 0766 /dev/net/tun
  chgrp users /dev/net/tun
  chmod g+w /dev/net/tun
  sudo modprobe tun
  sleep 1
  sudo /sbin/ifconfig $1 172.20.0.1
  
  Antes de criar um novo qemu-ifup, você deve mover o arquivo 
  /etc/qemu-ifup com o seguinte
  comando:
  
  # mv /etc/qemu-ifup /etc/qemu-ifup.old
  
  Isso serve para você poder recuperar o arquivo original caso ocorra 
  algum problema.
  
  Após fazer essas modificações já é possivel iniciar o QEMU com o comando:
  
  $ qemu -hda disco_virtual.img -soundhw all -m 32 -net nic -net tap -boot 
  c -localtime
  
  Se não recebeu nenhum aviso de erro tudo ocorreu bem.
  Para verificar se a interface tap foi realmente carregada abra um 
  terminal e digite:
  
  ederson@linux:~$ ifconfig
  eth0       Encapsulamento do Link: Ethernet  Endereço de HW 
  00:0A:E6:5B:D3:72
            inet end.: 192.168.0.1  Bcast:192.168.0.255  Masc:255.255.255.0
            endereço inet6: fe80::20a:e6ff:fe5b:d372/64 Escopo:Link
            UP BROADCASTMULTICAST  MTU:1500  Métrica:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
            colisões:0 txqueuelen:1000
            RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
            IRQ:5 Endereço de E/S:0xef00
  
  lo         Encapsulamento do Link: Loopback Local
            inet end.: 127.0.0.1  Masc:255.0.0.0
            endereço inet6: ::1/128 Escopo:Máquina
            UP LOOPBACKRUNNING  MTU:16436  Métrica:1
            RX packets:135 errors:0 dropped:0 overruns:0 frame:0
            TX packets:135 errors:0 dropped:0 overruns:0 carrier:0
            colisões:0 txqueuelen:0
            RX bytes:9052 (8.8 KiB)  TX bytes:9052 (8.8 KiB)
  
  tap0       Encapsulamento do Link: Ethernet  Endereço de HW 
  EE:13:44:2F:53:E6
            inet end.: 172.20.0.1  Bcast:172.20.255.255  Masc:255.255.0.0
            endereço inet6: fe80::ec13:44ff:fe2f:53e6/64 Escopo:Link
            UP BROADCASTRUNNING MULTICAST  MTU:1500  Métrica:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
            colisões:0 txqueuelen:500
            RX bytes:0 (0.0 b)  TX bytes:308 (308.0 b)
  
  No meu caso a interface tap0 foi levantada com sucesso e o IP 172.20.0.1 
  anteriormente definido em /etc/qemu-ifup, foi
  configurado adequadamente.
  
  Agora basta configurar a rede da máquina virtual com o IP 172.20.0.2 (ou 
  qualquer um nessa faixa) e máscara de rede de
  255.255.0.0.
  Nesse tipo de configuração fica barrado o acesso à internet à não ser 
  que o host faça o compartilhamento de conexão com
  á internet.
  
  Conexão entre GUESTS
  --------------------
  
  Para fazer a conexão entre várias máquinas virtuais é necessário que uma 
  delas faça o listering da VLAN em alguma porta.
  É necessário também que cada uma das máquinas virtuais tenha um MAC 
  address diferente e que façam a conexão
  com a máquina listering.
  Abaixo segue um exemplo de como rodar duas máquinas virtuais conectadas 
  entre sí:
  
  $ qemu -hda disco_virtual.img -soundhw sb16 -m 128 -net 
  nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234 -boot c -localtime &
  $ qemu -hda segundo_disco_virtual.img -soundhw es1370 -m 128 -net 
  nic,macaddr=52:54:00:12:34:57 -net socket,connect=127.0.0.1:1234 -boot c 
  -localtime
  
  Onde:
  -net nic,macaddr=52:54:00:12:34:56    indica o endereço MAC da placa de 
  rede virtual. Pode ser substituido por qualquer um.
  -net socket,listen=:1234        faz a listering na porta 1234
  -net socket,connect=127.0.0.1:1234    conecta a máquina virtual à porta 
  1234 com loopback 127.0.0.1
  
  Deve-se tomar muita atenção, por conta do tamanho da linha de comando. É 
  indicado que você use um script para chamar várias
  máquinas virtuais.
  O exemplo acima funciona perfeitamente, pois já testei inúmeras vezes 
  inclusive usando uma máquina virtual como servidor e outra
  como cliente.
  
  OUTROS EXEMPLOS DE SCRIPTS
  ==========================
  
  
  Um exemplo de script para inicialização do QEMU é:
  
  #!/bin/bash
   sudo modprobe kqemu
   sudo /etc/init.d/samba start
   sudo qemu -hda Win2k.img -boot c -hdd /dev/hda2 -localtime -soundhw 
  es1370 -net nic -net tap -parallel /dev/lp0
     
  
  qemu-ifup Alternativo
  ---------------------
  
  Um bom qemu-ifup alternativo seria:
  
  #!/bin/sh
  # IP do Host: 10.0.0.200 (real)
  # IP do Guest: 10.0.0.50 (virtual)
  # Configura o dispositivo tun0 (UML e as novas versões do Qemu usam o 
  tap0 agora!)
  sudo /sbin/ifconfig $1 10.0.0.200
  
  # Ativa o ip forwarding
  sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
  
  # Configura as rotas para o IP da máquina virtual
  sudo route add -host 10.0.0.50 dev $1
  
  # Ativa o ARP proxy para "spoof" arp address
  sudo bash -c 'echo 1 > /proc/sys/net/ipv4/conf/$1/proxy_arp'
  
  # set "spoofed" arp address
  sudo arp -Ds 10.0.0.50 eth0 pub
  
  
  Configurando o kqemu
  --------------------
  
  Você realmente DEVE fazê-lo! Vale o trabalho adicional!
  # carrega o acelerador do qemu
  sudo modprobe kqemu
  
  # crie o dispositivo de kqemu
  export device="/dev/kqemu"
  sudo rm -f $device
  sudo mknod --mode=0666 $device c 250 0
  
  # Alternativamente (se você está usando udev) crie uma regra para o udev 
  e um symlink para ativar ele:
  
  sudo echo 'KERNEL=="kqemu", NAME="%k", MODE="0666"' > /etc/udev/kqemu.rules
  sudo ln -s /etc/udev/kqemu.rules /etc/udev/rules.d/010_kqemu.rules
  
  # Agora tudo você tem que fazer é carregar o kqemu com o argumento 
  apropriado:
  
  sudo modprobe kqemu major=0
  
  # Isto criará o /dev/kqemu automaticamente e o udev controlará as 
  permissões.
  
  
  Espero que essa pequena contribuição ajude ao usuários de novas versões 
  do QEMU.

indicações

maquina virtual e emuladores

xen permite rodar maquina virtual.
http://www.zago.eti.br/xen.txt

Bochs permite rodar outro Linux dentro do Linux ou outros SOs também.
http://www.zago.eti.br/bochs.txt
http://bochs.sourceforge.net/
http://www.bablokb.de/bochs-tools/

maquina virtual, rodar outros sistemas operacionais dentro do Linux
http://www.zago.eti.br/vmplayer.html
http://www.zago.eti.br/vmware.txt

emulador para DOS, executar programas for DOS no Linux
http://www.zago.eti.br/dosemu.txt

emulador de windows que roda no Linux
http://www.zago.eti.br/wine.html
http://www.zago.eti.br/wine.txt
Outros endereços...
http://user-mode-linux.sourceforge.net/
http://www.zago.eti.br/diversos/usermode.txt

Plex86 Virtual Machine
http://savannah.nongnu.org/projects/plex86

tutoriais e documentação

Seleção de tutoriais que foram indicados na Linux-BR ou indicados diretamente, ainda não testei nenhum deles, estou seguindo o manual do qemu com minhas tentativas de erro e acerto, não esqueça do Google...

Site oficial do projeto. Documentação, lista, download, imagens de disco para testes e muito mais....
http://www.qemu.org/

Criação de ambientes e redes de teste com máquinas virtuais utilizando o QEMU
http://www.dicas-l.com.br/dicas-l/20060111.php

Site do desenvolvedor, download, documentação e etc..
http://fabrice.bellard.free.fr/qemu/

Tutorial em HTML e PDF - em Português.
http://web.onda.com.br/humberto/artigos.html#qemu

Rodando aplicativos Windows e DOS no Kurumin - qemu no Kurumin.
http://www.guiadohardware.net/artigos/288/
http://www.guiadohardware.net/livros/kurumin/04/

Instalando o Windows 98 em sessão virtualizada tutorial bem detalhado - SUSE.
http://www.linuxit.com.br/section-viewarticle-740.html

tutorial sobre rede qemu (ingles)
http://lists.gnu.org/archive/html/qemu-devel/2004-09/msg00150.html

Dicas sobre algumas distribuições
http://www.zago.eti.br/distro/A-distro.html

Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html