Un article précédent décrit brièvement comment booter une machine sur le réseau en utilisant PXE. Je me suis donc amusé à booter, cette fois ci, non pas un noyau classique mais un moyau Xen. De prime abord cela pourrait sembler être semblable mais il n’en est rien !
L’utilisation de Xen demande de booter un premier noyau “gen.gz” qui va lui-même, par la suite, booter un second noyau compilé spécifiquement. L’utilisation de pxelinux.0 comme bootloader n’est donc plus possible dans un tel cas. Voici donc la procédure à suivre :
- Il faut tout d’abord créer un noyau compatible Xen et acceptant un boot depuis le reseau, pour celà, je vous renvoie à l’article précédent qui indiques les options que celui-ci doit supporter. Ce noyau devra en outre être compilé pour une cible de type XEN.
- Il faut ensuite récupérer un bootloader adapté, celui-ci se trouve dans le package Syslinux (il est possible qu’il ne soit pas livré avec votre distribution, il suffit alors de le télécharger sur le net). Le bootloader en question est mboot.c32 ; il se trouve dans syslinux/com32/modules. Ce fichier sera placé dans le répertoire tftpboot sur serveur.
- La configuration de PXE se fait dans le fichier dhcp.conf, exactement comme nous l’avions fait précédemment. Rien ne change.
- Dans le fichier de démarrage (tftpboot/pxelinux.cfg/mac-adress ) nous allons trouver la configuration suivantes :
default linux label linux kernel mboot.c32 append xen.gz dom0_mem=192000 --- vmlinuz_xen root=/dev/nfs devfs=mount ip=::::::dhcp nfsroot=10.0.0.20:/share/homeXen initrd=initrd_xen prompt 1 timeout 10
- Le noyau qui sera booté en premier est le fameux mboot.c32
- Celui-ci va lancer la couche basse de XEN (xen.gz) qui est à récupérer dans le package de XEN
- Le premier noyau va être configuré avec 192Mo de mémoire
- Il va ensuite lancer le noyau linux compilé pour XEN : vmliuz_xen
- Le boot se fera depuis le réseau, la configuration etant obtenue par dhcp
- Le noyau ainsi démarré va encore poser un problème : lorsque XEN demarre en mode bridge, il tombe l’interface réseau, ce qui bien sure lors d’un boot NFS plante la suite du démarrage. Une des solution est l’utilisation du mode rootage plutot que bridge. Il faut modifier le fichier /etc/xen/xend-config.sxp :
- Mettre en commentaire les deux lignes de confugration du bridge :(network-script network-bridge) et (vif-script vif-bridge)
- Décommenter les lignes du mode routage : (network-script network-route) (vif-script vif-route)
Pour ceux qui comme moi tiendraient vraiment à utiliser une configuration de type bridge, je n’ai rien trouvé de mieux que d’utiliser une seconde carte réseau sur la machine …