Comme on l'a vu dans la Section 3, « Choix d'une solution de virtualisation », cette solution de virtualisation ne peut être utilisée qu'avec un processeur possédant les extensions matérielles nécessaires.
Voici un exemple d'identification sur un processeur Intel du
type : Intel(R) Core(TM)2 Duo CPU
E6750 @ 2.66GHz.
$ egrep '(vmx|svm)' /proc/cpuinfo
flags : 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 ht tm pbe syscall nx lm
constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl
vmx smx est tm2 ssse3 cx16 xtpr lahf_lm
Pour exploiter les extensions matérielles du processeur, il faut sélectionner les modules du noyau Linux à utiliser.
Pour construire un paquet Debian de noyau Linux avec les options ci-dessus, on passe par les étapes rituelles suivantes.
$ cd /usr/src$ wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.3.tar.bz2 $ tar xf linux-2.6.25.3.tar.bz2 $ ln -s linux-2.6.25.3 linux $ cd linux $ cp /boot/config-2.6.25.2 .config
$ make menuconfig
$ make-kpkg --rootcmd fakeroot --initrd kernel_image
![]()
|
Si l'utilisateur normal fait partie du groupe système
|
|
|
Avant d'accéder aux menus de configuration des fonctions du noyau Linux, il est préférable de travailler à partir d'une configuration existante et fonctionnelle. On recopie donc la configuration de la version précédente du noyau. Normalement, c'est celle du noyau en cours d'exécution. |
|
|
Accès aux menus de configuration. Voir la copie d'écran ci-dessus. |
|
|
Les outils fakeroot et make-kpkg servent respectivement à utiliser une «fausse» arborescence racine à partir des droits d'un utilisateur normal et à construire le paquet de noyau après avoir compilé la partie monolithique et les modules. |
L'installation du nouveau noyau doit se faire avec les droits super utilisateur.
# dpkg -i linux-image-2.6.25.3_2.6.25.3-10.00.Custom_amd64.deb Sélection du paquet linux-image-2.6.25.3 précédemment désélectionné. (Lecture de la base de données... 249991 fichiers et répertoires déjà installés.) Dépaquetage de linux-image-2.6.25.3 \ (à partir de linux-image-2.6.25.3_2.6.25.3-10.00.Custom_amd64.deb) ... Done. Paramétrage de linux-image-2.6.25.3 (2.6.25.3-10.00.Custom) ... Running depmod. Finding valid ramdisk creators. Using mkinitramfs-kpkg to build the ramdisk. Running postinst hook script update-grub. Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: //vmlinuz-2.6.25.3 Found kernel: //vmlinuz-2.6.25.2 Updating /boot/grub/menu.lst ... done
Une fois le nouveau noyau installé et le système réinitialisé, on peut valider le chargement des modules si les scripts d'initialisation assurent cette fonction. Par exemple, la distribution Debian GNU/Linux fournit un paquet kvm qui contient un script assurant le chargement du module approprié au démarrage du système hôte.
$ lsmod |grep kvm kvm_intel 38016 3 kvm 214257 1 kvm_intel
On constate que les modules sont effectivement chargés en mémoire à l'aide d'un script que l'on peut identifier.
$ dpkg -L qemu-kvm | grep init.d/ /etc/init.d/qemu-kvm
Si toutefois, le chargement ne se fait pas automatiquement, on peut procéder au chargement manuel des modules de virtualisation KVM et valider l'accès aux fonctions matérielles du processeur.
# uname -ar Linux typhoon 2.6.25.3 #1 SMP PREEMPT Sat May 10 18:23:31 CEST 2008 x86_64 GNU/Linux # modprobe -v kvm-intel insmod /lib/modules/2.6.25.3/kernel/arch/x86/kvm/kvm.ko insmod /lib/modules/2.6.25.3/kernel/arch/x86/kvm/kvm-intel.ko
Maintenant que les fonctions de virtualisation KVM sont en place, on peut passer à la création d'une instance de système d'exploitation. Voir la Section 6, « Création d'une machine virtuelle avec KVM ».
$ wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.3.tar.bz2
$ tar xf linux-2.6.25.3.tar.bz2
$ ln -s linux-2.6.25.3 linux
$ cd linux
$ cp /boot/config-2.6.25.2 .config
$ make menuconfig
$ make-kpkg --rootcmd fakeroot --initrd kernel_image