Installation de qemu
        
        
          Vous aurez besoin d'un groupe dédié qui contient les utilisateurs
          (autre que root) autorisé à accéder au périphérique KVM. Créez ce
          groupe en lançant la commande suivante en tant qu'utilisateur
          root :
        
        groupadd -g 61 kvm
        
          Ajoutez tous les utilisateurs qui peuvent utiliser le périphérique
          KVM dans ce groupe :
        
        usermod -a -G kvm <username>
        
          Installez qemu en lançant les
          commandes suivantes :
        
        
          
          
            Note
          
          
            Qemu est capable de faire tourner de nombreuses architectures. La
            procédure de construction est aussi capable de construire les
            différentes cibles en une fois à l'aide d'une liste de cibles
            séparées par des virgules à l'option --target-list. Lancez ./configure --help pour avoir
            une liste complète des cibles possibles.
          
         
        if [ $(uname -m) = i686 ]; then
   QEMU_ARCH=i386-softmmu
else
   QEMU_ARCH=x86_64-softmmu
fi
mkdir -vp build &&
cd        build &&
../configure --prefix=/usr               \
             --sysconfdir=/etc           \
             --target-list=$QEMU_ARCH    \
             --audio-drv-list=alsa       \
             --with-sdlabi=2.0           \
             --docdir=/usr/share/doc/qemu-2.9.0 &&
unset QEMU_ARCH &&
make
        
          Pour lancer les tests intégrés, lancez make V=1 -k check.
        
        
          Maintenant, en tant qu'utilisateur root :
        
        make install
        
          Vous pouvez aussi avoir besoin d'ajouter une règle Udev pour que le
          périphérique KVM ait les bonnes permissions :
        
        cat > /lib/udev/rules.d/65-kvm.rules << "EOF"
KERNEL=="kvm", GROUP="kvm", MODE="0660"
EOF
        
          Modifiez les permissions et le propriétaire d'un script d'aide, qui
          est requis lorsque vous utilisez un périphérique
          « pont » (voir en bas) :
        
        chgrp kvm  /usr/libexec/qemu-bridge-helper &&
chmod 4750 /usr/libexec/qemu-bridge-helper
        
          
          
            Note
          
          
            Par confort vous pouvez vouloir créer un lien symbolique pour
            lancer le programme installé. Par exemple :
          
          ln -sv qemu-system-`uname -m` /usr/bin/qemu
         
       
      
        
          Utilisation de Qemu
        
        
          Comme l'utilisation de qemu signifie d'utiliser un ordinateur
          virtuel, les étapes pour mettre en place la machine virtuelle sont
          très proches de celles d'un vrai ordinateur. Vous devrez décider du
          CPU, de la mémoire, des disques, des périphériques USB, des cartes
          réseau, de la taille de l'écran, etc. Une fois que le
          « matériel » est décidé, vous
          devrez par exemple choisir comment connecter la machine à internet
          et installer un système d'exploitation. Dans la suite, nous
          montrons des façons simples d'effectuer ces étapes. Mais qemu est
          bien plus que ça, et il est fortement recommandé de lire la
          documentation de qemu dans /usr/share/doc/qemu-2.9.0/qemu-doc.html.
        
        
          
          
            Note
          
          
            Il est d'usage d'appeler l'ordinateur qui fait tourner qemu
            l'« hôte » et la machine
            émulée qui tourne sous qemu l'« invitée ». Nous utiliserons ces notations
            dans la suite.
          
         
        
          
          
            Note
          
          
            Les instructions suivantes supposent que vous avez créé le lien
            symbolique facultatif, qemu. De
            plus, vous devez exécuter qemu depuis un terminal dans
            une fenêtre X (soit localement, soit à travers ssh).
          
         
        
          Disk
        
        
          Un disque virtuel peut être mis en place de cette manière :
        
        VDISK_SIZE=50G
VDISK_FILENAME=vdisk.img
qemu-img create -f qcow2 $VDISK_FILENAME $VDISK_SIZE
        
          Ajustez la taille du disque virtuel et le nom du fichier image
          comme vous le souhaitez. La taille réelle du fichier sera plus
          petite que spécifiée, mais s'agrandira quand il sera utilisé, donc
          une valeur élevée reste sûre.
        
        
          Système d'exploitation
        
        
          Pour installer un système d'exploitation, téléchargez une image ISO
          de votre distribution Linux préférée. Pour les besoins de
          l'exemple, nous utiliserons une distribution Fedora-16-x86_64-Live-LXDE.iso dans le répertoire
          courant. Exécutez les commandes suivantes :
        
        qemu -enable-kvm                           \
     -drive file=$VDISK_FILENAME           \
     -cdrom Fedora-16-x86_64-Live-LXDE.iso \
     -boot d                               \
     -m 1G
        
          Suivez la procédure d'installation normale pour la distribution
          choisie. L'option -boot
          spécifie l'ordre de démarrage des disques comme une chaîne de
          lettres de lecteur. Les lettres valides de lecteurs sont : a,
          b (lecteur de disquettes 1 et 2), c (premier disque dur), d
          (premier lecteur CD-ROM). L'option -m est la quantité de mémoire à
          utiliser pour la machine virtuelle. Le choix dépend de la charge de
          l'hôte. Les distributions modernes devraient être à l'aise avec 1
          Go. L'option -enable-kvm
          permet l'accélération matérielle. Sans ce paramètre, l'émulation
          est assez lente.
        
        
          Définition du matériel virtuel
        
        
          Le matériel de la machine virtuelle est défini par la ligne de
          commande de qemu. Par exemple :
        
        qemu -enable-kvm                     \
     -smp 4                          \
     -cpu host                       \
     -m 1G                           \
     -drive file=$VDISK_FILENAME     \
     -cdrom grub-img.iso             \
     -boot order=c,once=d,menu=on    \
     -net nic,netdev=net0            \
     -netdev user,id=net0            \
     -soundhw ac97                   \
     -vga std                        \
     -serial mon:stdio               \
     -name "fedora-16"
        
          Signification des options de la ligne de commande
        
        
          -enable-kvm : active
          le support complet de la virtualisation KVM. Sur certain matériels,
          il est nécessaire d'ajouter l'option non-documentée -machine smm=off pour activer KVM.
        
        
          -smp <N> :
          active le multi-tâche symétrique avec <N> processeurs.
        
        
          -cpu <model> :
          simule le <modèle> du processeur. La liste des modèles
          supportés peut être obtenu avec -cpu
          help.
        
        
          -drive
          file=<filename> : définie un disque virtuel
          dont l'image est enregistrée dans <filename>.
        
        
          -cdrom grub-img.iso :
          définit un fichier formaté en iso pour l'utiliser comme cdrom. Ici
          nous utilisons le disque de secours de grub, qui peut être pratique
          lorsque quelque chose ne va pas au démarrage.
        
        
          -boot
          order=c,once=d,menu=on : définit l'ordre de
          démarrage pour le BIOS virtuel.
        
        
          -net
          nic,netdev=<netid> : définie la carte réseau
          connectée au périphérique réseau avec l'id <netid>.
        
        
          -netdev
          user,id=<netid> : définie le périphérique
          « utilisateur » réseau. Il
          s'agit d'un réseau local virtuel avec les adresses 10.0.2.0/24, où
          l'hôte à l'adresse 10.0.2.2 et agit comme une passerelle vers
          internet, et avec un serveur de nom à l'adresse 10.0.2.3, et un
          serveur smb à l'adresse 10.0.2.4. Un serveur DHCP inclus peut
          allouer des adresses entre 10.0.2.15 et 10.0.2.31.
        
        
          -soundhw
          <model> : définie le modèle de la carte son.
          La liste peut être obtenue avec -soundhw
          help.
        
        
          -vga <type> :
          définie le type de carte vga à émuler.
        
        
          -serial mon:stdio :
          envoie le port série de l'invité (/dev/ttyS0 sur les invités linux), multiplexé
          avec le moniteur qemu, vers l'entrée standard et la sortie du
          processus qemu.
        
        
          -name <name> :
          définit le nom de l'invité. Ce nom est affiché dans le titre de la
          fenêtre de l'invité. Il peut être utile si vous lancez plusieurs
          invités en même temps.
        
        
          Contrôle de l'affichage émulé
        
        
          Il peut arriver que la fenêtre de l'invité affichée par qemu ne
          corresponde pas à la plein capacité de la carte vga émulée. Par
          exemple la carte vmware est capable d'afficher en 1600x900 mais ne
          s'affiche qu'en 1024x768 par défaut. Une configuration appropriée
          de Xorg sur l'invité permet d'utiliser la taille maximale
          (remarquez que le pilote vidéo Xorg à utiliser est Xorg VMware Driver-13.2.1) :
        
        cat > /usr/share/X11/xorg.conf.d/20-vmware.conf << "EOF"
Section         "Monitor"
  Identifier    "Monitor0"
  # cvt 1600 900
  # 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
  Modeline      "1600x900"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
  Option        "PreferredMode" "1600x900"
  HorizSync     1-200
  VertRefresh   1-200
EndSection
Section         "Device"
  Identifier    "VMware SVGA II Adapter"
  Option        "Monitor" "default"
  Driver        "vmware"
EndSection
Section         "Screen"
  Identifier    "Default Screen"
  Device        "VMware SVGA II Adapter"
  Monitor       "Monitor0"
  SubSection    "Display"
    Depth       24
    Modes       "1600x900" "1440x900" "1366x768" "1280x720" "800x480"
  EndSubSection
EndSection
EOF
        
          Des tailles supplémentaires seront disponibles en plus des tailles
          natives. Vous devrez redémarrer X pour rendre ces nouvelles tailles
          disponibles.
        
        
          Networking
        
        
          La solution pour le réseau ci-dessus permet à l'invité d'accéder au
          réseau local à travers l'hôte (et éventuellement d'accéder à
          internet à travers des routeurs locaux), mais l'inverse n'est pas
          vrai. Pas même l'hôte ne peut accéder à l'invité, à moins que la
          redirection de port ne soit activée. Et dans le cas où plusieurs
          invités tourneraient, ils ne peuvent pas communiquer entre eux.
          D'autres périphériques réseau peuvent être utilisés pour cela. Par
          exemple, le périphérique « socket » qui permet à plusieurs invités de
          partager un réseau virtuel commun. Dans la suite, nous décrivons
          plus en détails comment mettre en place le périphérique
          « bridge » qui permet aux
          invités d'apparaître comme s'ils étaient connectés au réseau local.
          Toutes les commandes ce-dessous devraient être lancés en tant
          qu'utilisateur root.
        
        
          Autorisez le système hôte à transférer les paquets IP :
        
        sysctl -w net.ipv4.ip_forward=1
        
          Pour rendre cela permanent, ajoutez la commande au fichier
          etc/sysctl.d/60-net-forward.conf :
        
        cat >> /etc/sysctl.d/60-net-forward.conf << EOF
net.ipv4.ip_forward=1
EOF
        
          Initialisez un fichier de configuration requis :
        
        
install -vdm 755 /etc/qemu &&
echo allow br0 > /etc/qemu/bridge.conf
        
          Dans la commande au-dessus, remplacez l'option -netdev user,... par -netdev bridge,id=net0.