HOWTO Qemu
Un article de Gentoo Linux Wiki.
Cet article est une ébauche. Vous pouvez l'aider à s'enrichir en le complétant.
| Méthodes d'installation • CD Live • Noyau et matériel • Portables et Notebooks • Portage • Système • Réseaux et Services • Serveur X • Logiciels fréquemment utilisés • Autres |
Sommaire |
[modifier] Introduction
QEMU permet de faire tourner un ou plusieurs systèmes d'exploitation (et leurs applications) de manière isolée sur une même machine physique. QEMU fonctionne sur les plateformes x86, x86-64, PPC, MIPS, Sparc et ARM.
[modifier] Installation
| Note: QEMU 0.8.2 peut être compilé uniquement avec GCC 3 |
Les versions récentes sont masquées. Si on veut utiliser la dernière version, il est donc nécessaire de la démasquer (remplacer ~x86 par votre architecture) :
echo "app-emulation/qemu ~x86" >> /etc/portage/package.keywords echo "app-emulation/qemu-softmmu ~x86" >> /etc/portage/package.keywords echo "app-emulation/qemu-user ~x86" >> /etc/portage/package.keywords echo "app-emulation/kqemu ~x86" >> /etc/portage/package.keywords
Afin d'améliorer les performances, il est préférable d'utiliser le module kqemu (sdl est nécessaire pour l'affichage) :
echo "app-emulation/qemu-softmmu kqemu sdl" >> /etc/portage/package.use
Maintenant il suffit de faire :
emerge qemu
Pour charger le module kqemu automatiquement au démarrage :
echo "kqemu major=0" >> /etc/modules.autoload.d/kernel-2.6
Si /dev/kqemu n'existe pas :
mknod /dev/kqemu c 250 0
Pour profiter du module kqemu en tant que simple utilisateur il faut s'ajouter au groupe qemu :
gpasswd -a nomutilisateur qemu
[modifier] Lancement
Il faut, si on veut installer un systéme d'exploitation, commencer par créer un disque :
qemu-img create nomimage.img 10G
(Pour créer une image raw de 10Go)
Pour lancer QEMU en utilisant l'image disque et un fichier .iso en tant que CD :
qemu -hda nomimage.img -cdrom cdimage.iso -boot d
Pour lancer QEMU en utilisant l'image disque et en démarrant sur un CD dans votre lecteur :
qemu -hda nomimage.img -cdrom /dev/cdrom -boot d
Pour lancer QEMU en démarrant sur l'image disque et gardant l'accés à un CD dans votre lecteur :
qemu -hda nomimage.img -cdrom /dev/cdrom -boot c
Pour augementer la mémoire de la machine virtuelle :
qemu -hda nomimage.img -boot c -m 256M
(Ici on démarre sur l'image disque avec 256Mo de mémoire)
[modifier] Accés au réseau
Pour utiliser la connexion de l'hôte au réseau à partir de la machine virtuelle, vous devez avoir TUN/TAP.
Pour activer TUN/TAP dans le noyau :
| Configuration du noyau Linux : Enable TUN/TAP support |
Device Drivers --->
Networking support --->
<M> Universal TUN/TAP device driver support
|
Vous pouvez ensuite utiliser ces 2 scripts pour simplifier l'utilisation de Qemu avec TUN : Il faut déjà installer vde :
emerge net-misc/vde
#!/bin/bash
set -e
IMGPATH=/mnt/qemu
IMG="-hda ${IMGPATH}/disk.img"
NETWORK="-net nic -net user"
MEMORY="-m 256"
CDROM="-cdrom /usr/local/isos/KNOPPIX_V5.0.1CD-2006-06-01-DE.iso"
BOOT="-boot c" # a - floppy, c - hd, d - cdrom
# prepare network, speedup
/bin/su -c "/usr/local/bin/qemu-helper start"
# Start qemu
qemu ${IMG} ${MEMORY} ${CDROM} ${BOOT} ${QEMUIFUP} -localtime $1
# reset network, unload modules
/bin/su -c "/usr/local/bin/qemu-helper stop"
#!/bin/bash
case "$1" in
start) modprobe kqemu major=0
modprobe tun
vde_switch -tap tun0 -daemon
chmod 777 /tmp/vde.ctl
ifconfig tun0 10.0.0.1 up
;;
stop) ifconfig tun0 down
rm /tmp/vde.ctl
killall vde_switch
modprobe -r kqemu
modprobe -r tun
;;
esac
Vous configurez la machine virtuelle en DHCP et vous devriez avoir accés au réseau.
[modifier] Utilisation
- Utilisez l'option -full-screen pour voir le systéme émulé en plein écran
- Cliquez dans la fenêtre de QEMU pour contrôler le systéme de la machine virtuelle, Appuyez sur Ctrl+Alt pour retourner à Gentoo
- Appuyez sur Ctrl+Alt+F pour passer en plein écran
- Appuez sur Ctrl+Alt+1-9 pour voir les consoles de QEMU
- Tapez qemu sans option dans la console pour de l'aide
- Tapez help dans une console de QEMU pour de l'aide (Ctrl+Alt+2 quand QEMU est lancé)
[modifier] Problèmes
Si à la compilation vous avez ce message:
incapable de trouver un registre de déversement dans la classe « GENERAL_REGS »
essayez de changer de version de GCC3. Par exemple 3.3.6.
