# Chapitre 23. Virtualisation

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

## 23.1. Synopsis

Un logiciel de virtualisation permet l’exécution simultanée de plusieurs systèmes d’exploitation sur la même machine. De tels logiciels pour PCs impliquent l’utilisation d’un système d’exploitation hôte qui exécute le logiciel de virtualisation et qui supporte un certain nombre de systèmes d’exploitation invités.

Après avoir lu ce chapitre, vous connaîtrez:

- La différence entre un système d’exploitation hôte et un système d’exploitation invité.

- Comment installer FreeBSD sur un ordinateur Apple® Macintosh® à base Intel®.

- Comment installer FreeBSD sur Linux® avec Xen™.

- Comment installer FreeBSD sur Microsoft® Windows® avec Virtual PC.

- Comment optimiser un système FreeBSD pour obtenir les meilleures performances en virtualisation.

Avant de lire ce chapitre, vous devrez

- Comprendre les fondements d’UNIX® et de FreeBSD (Quelques bases d’UNIX).

- Savoir comment installer FreeBSD (Installer FreeBSD).

- Savoir comment configurer votre connexion au réseau (Administration réseau avancée).

- Savoir comment installer des logiciels tierce-partie (Installer des applications. les logiciels pré-compilés et les logiciels portés).

## 23.2. FreeBSD comme système d’exploitation invité

### 23.2.1. Parallels sur Mac OS®

Parallels Desktop pour Mac® est un logiciel commercial pour les ordinateurs Apple® Mac® à base Intel® tournant sous Mac OS® 10.4.6 our versions supérieures. FreeBSD est totalement supporté en tant que système d’exploitation invité. Une fois que Parallels a été installé sur Mac OS® X, l’utilisateur doit configurer une machine virtuelle et installer le système d’exploitation invité qu’il désire.

#### 23.2.1.1. Installer FreeBSD sur Parallels/Mac OS® X

La première étape pour installer FreeBSD sur Mac OS® X/Parallels est de créer une machine virtuelle pour l’installation de FreeBSD. Sélectionnez FreeBSD comme Système d’exploitation invité quand on vous le demandera:

Et choisissez une taille de disque dur et de mémoire vive en fonction de l’utilisation que vous projetez pour votre FreeBSD virtuel. 4Go de disque et 512Mo de RAM conviennent pour la plupart des utilisations de FreeBSD sous Parallels:

Sélectionnez le type de réseau et une carte réseau:

Sauvegardez et achevez la configuration:

Une fois votre machine virtuelle créée, vous devrez y installer FreeBSD. Le meilleur moyen est d’utiliser un CDROM FreeBSD officiel ou une image ISO récupérée sur un site FTP officiel. Quand vous avez l’image ISO adéquate sur votre système de fichiers Mac® ou un CDROM dans le lecteur de CD du Mac®, cliquez sur l’icône disque située dans le coin droit en bas de votre fenêtre Parallels. Une fenêtre s’ouvrira pour vous permettre d’associer le lecteur de CDROM de votre machine virtuelle avec un fichier ISO ou le véritable lecteur de CDROM de votre ordinateur.

Dès que vous avez effectué cette association, redémarrez votre machine virtuelle FreeBSD en cliquant sur l’icône de redémarrage. Parallels redémarrera avec un BIOS particulier qui vérifiera si vous disposez d’un CDROM tout comme le ferait un BIOS classique.

Dans notre cas il trouvera le disque d’installation de FreeBSD et lancera une installation normale avec sysinstall comme décrit dans le Installer FreeBSD. Vous pouvez installer X11 mais ne tentez pas de le configurer pour le moment.

Quand l’installation est terminée, redémarrez votre machine virtuelle FreeBSD.

#### 23.2.1.2. Configurer FreeBSD sur Mac OS® X/Parallels

Après avoir installé avec succès FreeBSD sur Mac OS® X avec Parallels, il reste plusieurs points à configurer pour optimiser le système virtuel.

1. Paramétrer les variables du chargeur

   L’étape la plus importante est la diminution du paramètre `kern.hz` afin de réduire l’utilisation du CPU de FreeBSD sous l’environnement Parallels. Pour cela, il faut ajouter la ligne suivante au fichier /boot/loader.conf:

       kern.hz=100

   Sans ce paramétrage, un système d’exploitation invité FreeBSD inactif sous Parallels utilisera environ 15% du CPU sur un iMac® à mono-processeur. Après ce changement l’utilisation du processeur sera plus proche d’un petit 5%.

2. Créer un nouveau fichier de configuration du noyau

   Vous pouvez retirer tous les pilotes de périphériques SCSI, FireWire et USB. Parallels fournit une carte réseau virtuelle utilisant le pilote ed(4), aussi tous les autres pilotes réseau exceptés ed(4) et miibus(4) peuvent être retirés du noyau.

3. Configuration du réseau

   La configuration réseau la plus simple utilise DHCP pour connecter votre machine virtuelle sur le même réseau local que votre machine Mac® hôte. Cette configuration se fait en ajoutant la ligne `ifconfig_ed0="DHCP"` au fichier /etc/rc.conf. Des configurations réseau plus avancées sont décrites dans le Administration réseau avancée.

### 23.2.2. FreeBSD avec Xen™ sur Linux

L’hyperviseur Xen™ est un logiciel libre de para-virtualisation qui est supporté par l’entreprise commerciale XenSource. Les systèmes d’exploitation invités sont appelés domaines domU, et le système d’exploitation hôte est appelé dom0. La première étape pour faire tourner un FreeBSD virtuel sous Linux® est d’installer Xen™ pour le domaine dom0 Linux®. Le système d’exploitation hôte sera une distribution Linux® Slackware.

#### 23.2.2.1. Configuration de Xen™ 3 sur un dom0 Linux®

1. Télécharger Xen™ 3.0 auprès de XenSource

   Récupérez l’archive xen-3.0.4_1-src.tgz auprès de http://www.xensource.com/.

2. Extraire l’archive

       # cd xen-3.0.4_1-src
       # KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world
       # make install

   | Pour recompiler le noyau pour le domaine dom0:
       # cd xen-3.0.4_1-src/linux-2.6.16.33-xen0
         # make menuconfig
         # make
         # make install
   D’anciennes versions de Xen™ peuvent nécessiter l’utilisation de la commande `make ARCH=xen menuconfig`

3. Ajouter une entrée au menu de Grub (menu.lst)

   Editez /boot/grub/menu.lst et ajoutez les lignes suivantes:

       title Xen-3.0.4
       root (hd0,0)
       kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
       module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro

4. Redémarrer votre ordinateur sous Xen™

   Tout d’abord, éditez /etc/xen/xend-config.sxp, et ajoutez la ligne suivante:

       (network-script 'network-bridge netdev=eth0')

   Nous pouvons maintenant lancer Xen™:

       # /etc/init.d/xend start
       # /etc/init.d/xendomains start

   Notre domaine dom0 fonctionne:

       # xm list
       Name                                      ID   Mem VCPUs      State   Time(s)
       Domain-0                                   0   256     1     r-----  54452.9

#### 23.2.2.2. Domaine domU FreeBSD 7-CURRENT

Téléchargez le noyau pour domU FreeBSD pour Xen™ 3.0 et l’image disque auprès de http://www.fsmware.com/

- kernel-current

- mdroot-7.0.bz2

- xmexample1.bsd

Placez le fichier de configuration xmexample1.bsd dans le répertoire /etc/xen/ et modifiez les entrées relatives à l’emplacement du noyau et de l’image disque. Cela devrait donner quelque chose comme:

    kernel = "/opt/kernel-current"
    memory = 256
    name = "freebsd"
    vif = [ '' ]
    disk = [ 'file:/opt/mdroot-7.0,hda1,w' ]
    #on_crash    = 'preserve'
    extra = "boot_verbose"
    extra += ",boot_single"
    extra += ",kern.hz=100"
    extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"

Le fichier mdroot-7.0.bz2 doit être décompressé.

Ensuite, la section __xen_guest du fichier kernel-current doit être modifiée pour y ajouter le paramètre VIRT_BASE dont a besoin Xen™ 3.0.3:

    # objcopy kernel-current -R __xen_guest
    # perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp
    # objcopy kernel-current --add-section __xen_guest=tmp

    # objdump -j __xen_guest -s kernel-current

    kernel-current:     file format elf32-i386

    Contents of section __xen_guest:
     0000 4c4f4144 45523d67 656e6572 69632c47  LOADER=generic,G
     0010 55455354 5f4f533d 66726565 6273642c  UEST_OS=freebsd,
     0020 47554553 545f5645 523d372e 302c5845  GUEST_VER=7.0,XE
     0030 4e5f5645 523d7865 6e2d332e 302c4253  N_VER=xen-3.0,BS
     0040 445f5359 4d544142 2c564952 545f4241  D_SYMTAB,VIRT_BA
     0050 53453d30 78433030 30303030 3000      SE=0xC0000000.

Nous sommes maintenant prêt à créer et lancer notre domU:

    # xm create /etc/xen/xmexample1.bsd -c
    Using config file "/etc/xen/xmexample1.bsd".
    Started domain freebsd
    WARNING: loader(8) metadata is missing!
    Copyright (c) 1992-2006 The FreeBSD Project.
    Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
    The Regents of the University of California. All rights reserved.
    FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
        kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF
    WARNING: DIAGNOSTIC option enabled, expect reduced performance.
    Xen reported: 1796.927 MHz processor.
    Timecounter "ixen" frequency 1796927000 Hz quality 0
    CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU)
      Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
      Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,
      DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
      Features2=0x4400<CNTX-ID,<b14>>
    real memory  = 265244672 (252 MB)
    avail memory = 255963136 (244 MB)
    xc0: <Xen Console> on motherboard
    cpu0 on motherboard
    Timecounters tick every 10.000 msec
    [XEN] Initialising virtual ethernet driver.
    xn0: Ethernet address: 00:16:3e:6b:de:3a
    [XEN]
    Trying to mount root from ufs:/dev/xbd769a
    WARNING: / was not properly dismounted
    Loading configuration files.
    No suitable dump device was found.
    Entropy harvesting: interrupts ethernet point_to_point kickstart.
    Starting file system checks:
    /dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation)
    Setting hostname: demo.freebsd.org.
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    	  inet6 ::1 prefixlen 128
    	  inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
    	  inet 127.0.0.1 netmask 0xff000000
    Additional routing options:.
    Mounting NFS file systems:.
    Starting syslogd.
    /etc/rc: WARNING: Dump device does not exist.  Savecore not run.
    ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib
    a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
    Starting usbd.
    usb: Kernel module not available: No such file or directory
    Starting local daemons:.
    Updating motd.
    Starting sshd.
    Initial i386 initialization:.
    Additional ABI support: linux.
    Starting cron.
    Local package initialization:.
    Additional TCP options:.
    Starting background file system checks in 60 seconds.

    Sun Apr  1 02:11:43 UTC 2007

    FreeBSD/i386 (demo.freebsd.org) (xc0)

    login:

Le domaine domU devrait exécuter le noyau FreeBSD 7.0-CURRENT:

    # uname -a
    FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
    kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF  i386

Le réseau peut maintenant être configuré sur le domaine domU. Le domaine domU FreeBSD utilisera une interface spécifique appelée xn0:

    # ifconfig xn0 10.10.10.200 netmask 255.0.0.0
    # ifconfig
    xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500
        inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255
        ether 00:16:3e:6b:de:3a
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
          inet6 ::1 prefixlen 128
          inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
          inet 127.0.0.1 netmask 0xff000000

Sur le domaine dom0 Slackware, des interfaces réseaux relatives à Xen™ devraient apparaître:

    # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:07:E9:A0:02:C2
              inet addr:10.10.10.130  Bcast:0.0.0.0  Mask:255.0.0.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:815 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:204857 (200.0 KiB)  TX bytes:129915 (126.8 KiB)

    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:99 errors:0 dropped:0 overruns:0 frame:0
              TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:9744 (9.5 KiB)  TX bytes:9744 (9.5 KiB)

    peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0
              TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:2432115831 (2.2 GiB)  TX bytes:86528526 (82.5 MiB)
              Base address:0xc000 Memory:ef020000-ef040000

    vif0.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
              TX packets:815 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:129915 (126.8 KiB)  TX bytes:204857 (200.0 KiB)

    vif1.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:3 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2 errors:0 dropped:157 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:140 (140.0 b)  TX bytes:158 (158.0 b)

    xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:4 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:112 (112.0 b)  TX bytes:0 (0.0 b)

    # brctl show
    bridge name     bridge id           STP enabled         interfaces
    xenbr1          8000.feffffffffff   no                  vif0.1
                                                            peth0
                                                            vif1.0

### 23.2.3. Virtual PC sur Windows®

Virtual PC pour Windows® est un logiciel Microsoft® librement téléchargeable. Consultez la page concernant la configuration minimale requise. Une fois Virtual PC installé sous Microsoft® Windows®, l’utilisateur doit configurer une machine virtuelle puis installer le système d’exploitation invité désiré.

#### 23.2.3.1. Installer FreeBSD sous Virtual PC/Microsoft® Windows®

La première étape de l’installation de FreeBSD sous Microsoft® Windows®/Virtual PC est la création d’une nouvelle machine virtuelle pour permettre l’installation de FreeBSD. Sélectionnez Create a virtual machine:

Puis sélectionnez Other pour Operating system:

Choisissez ensuite une quantité raisonnable d’espace disque et de mémoire en fonction de vos projets pour cette installation de FreeBSD. 4Go d’espace de disque et 512Mo de mémoire vive conviennent pour la plupart des utilisateurs de FreeBSD sous Virtual PC:

Sauvegardez et poursuivez la configuration:

Sélectionnez votre machine virtuelle FreeBSD, cliquez sur Settings, puis précisez le type de réseau et l’interface réseau:

Une fois votre machine virtuelle FreeBSD créée, vous devrez y installer FreeBSD. La meilleure manière étant d’utiliser un CDROM FreeBSD officiel ou une image ISO téléchargée depuis un site FTP officiel. Quand vous avez l’image ISO appropriée sur votre système de fichiers Windows® ou sur un CDROM dans votre lecteur de CD, double-cliquez sur votre machine virtuelle FreeBSD pour démarrer. Puis cliquez sur CD et sélectionnez Capture ISO Image…​ dans la fenêtre Virtual PC. Une fenêtre apparaîtra et vous permettra d’associer le lecteur de CDROM de votre machine virtuelle avec une image ISO ou votre lecteur de CDROM réel.

L’association avec votre CDROM source effectuée, redémarrez votre machine virtuelle FreeBSD en cliquant sur Action puis sur Reset. Virtual PC redémarrera, son BIOS vérifiera tout d’abord que vous disposez d’un CDROM comme le ferait n’importe quel BIOS normal.

Dans ce cas, le support d’installation FreeBSD sera trouvé et une installation classique basée sur sysinstall débutera comme décrit dans le Installer FreeBSD. Vous pouvez installez X11 mais ne tentez pas pour le moment de le configurer.

Quand vous avez achevé l’installation, pensez à éjecter le CDROM ou l’image ISO. Enfin, redémarrez dans votre machine virtuelle FreeBSD fraîchement installée.

#### 23.2.3.2. Configuration de FreeBSD sous Microsoft® Windows®/Virtual PC

Après avoir installé avec succès FreeBSD sur Microsoft® Windows® avec Virtual PC, il reste plusieurs points à configurer pour optimiser le système virtuel.

1. Paramétrer les variables du chargeur

   L’étape la plus importante est la diminution du paramètre `kern.hz` afin de réduire l’utilisation du CPU de FreeBSD sous l’environnement Virtual PC. Pour cela, il faut ajouter la ligne suivante au fichier /boot/loader.conf:

       kern.hz=100

   Sans ce paramétrage, un système d’exploitation invité FreeBSD inactif sous Virtual PC utilisera environ 40% du CPU pour un micro-ordinateur monoprocesseur. Après ce changement l’utilisation du processeur sera plus proche d’un petit 3%.

2. Créer un nouveau fichier de configuration du noyau

   Vous pouvez retirer tous les pilotes de périphériques SCSI, FireWire, et USB. Virtual PC fournit une interface réseau virtuelle utilisant le pilote de(4), aussi tous les autres pilotes réseau en dehors de de(4) et miibus(4) peuvent être supprimés du noyau.

3. Configuration du réseau

   La configuration réseau la plus simple utilise DHCP pour connecter votre machine virtuelle sur le même réseau local que votre machine Mac® hôte. Cette configuration se fait en ajoutant la ligne `ifconfig_de0="DHCP"` au fichier /etc/rc.conf. Des configurations réseau plus avancées sont présentées dans le Administration réseau avancée.

### 23.2.4. VMware sur Windows®/Mac®/Linux®

Cette section n’est pas encore écrite.

## 23.3. FreeBSD comme système d’exploitation hôte

Actuellement, FreeBSD en tant que système d’exploitation hôte n’est officiellement supporté par aucun logiciel de virtualisation, de nombreuses personnes utilisent d’anciennes versions de VMware pour cela. Des efforts sont actuellement déployés pour faire fonctionner Xen™ en tant qu’environnement hôte sur FreeBSD.

Last modified on: 18 février 2025 by Fernando Apesteguía

Prev
Home
Next