Table of Contents
XEN : Création d'un Arch domU paravirtualisé (PV)
Table of Contents
Une fois que le dom0 est pleinement opérationnel, le domu peut être créé/importé. Chaque système d'exploitation possède une méthode légèrement différente d'installation, consultez la page du wiki de Xen pour plus d'instructions sur l'installation des Invité.
Création du domU
Pour commencer, téléchargez la dernière l'image ISO de l'installation à partir du miroir. Placez le fichier ISO sur l'hôte dom0. (Il est recommandé que la somme de contrôle soit vérifiée, aussi)
Créer des disques durs pour le domU
Cela peut être fait avec LVM sur les premières partitions du disque dur ou des fichiers image.
Fichier image de disque dur
Pour créer un fichier image de disque dur de 10Go, la commande suivante peut être utilisée:
truncate-10G s sda.img
Ceci crée un fichier fragmenté, qui grossit (jusqu'à un maximum de 10GiB) uniquement lorsque des données sont ajoutées à l'image. Si la vitesse d'IO est plus importante que la portabilité, l'utilisation d'un volume logique ou d'une partition brute peut être un meilleur choix.
Volume Logique avec LVM
Cette solution a l'avantage de permettre des performances proches du matériel physique.
Pour créer un volume logique de 10Go, (le volgoup vg0 doit être préalablement défini) utiliser la commande suivante.
lvcreate -L 3.99G vg0 -n lvXen
Installer le système parvirtualisé
Pour monter l'ISO d'installation, vérifier que le répertoire /mnt existe et qu'il est vide, puis exécutez la commande suivante (en étant sûr de remplir le bon chemin ISO):
mount -o loop /path/to/iso /mnt
Créer le fichier de configuration d'amorçage domU
/etc/xen/archdomu.cfg kernel = "/mnt/arch/boot/x86_64/vmlinuz" ramdisk = "/mnt/arch/boot/x86_64/archiso.img" extra = "archisobasedir=arch archisolabel=ARCH_201301" memory = 256 name = "archdomu" disk = [ "phy:/path/to/partition,sda1,w", "file:/path/to/ISO,sdb,r" ] vif = [ 'mac=00:16:3e:__random_three_mac_bytes__,bridge=xenbr0' ]
Ce fichier doit réglé pour une utilisation spécifique. Plus important encore, la ligne archisolabel=ARCH_201301 doit être modifié pour utiliser la date de sortie / mois de la norme ISO utilisée.
Si on veut installer Arch 32-bit , modifier les chemins du noyau et ramdisk de /x86_64/ vers /i686/.
La ligne phy:/path/to/partition,sda1,w, file:/path/to/ISO,sdb,r doit être modifiée pour pointer vers la partition créée pour le domU.
Si un fichier image est utilisé, la phy: doit être changé en file:.
Enfin, une adresse MAC doit être affectée. Le bloc MAC 00:16:3e est réservé pour des domaines Xen, les trois derniers chiffres doivent être attribués aau hasaerd (valeurs hexadécimales 0-9 et a-f seulement).
Le paquet AUR xen-docs devront être installés pour accéder aux pages de manuel.
Créer le nouveau domU
xl create -c /etc/xen/archdomu.cfg
L'option -c entrera dans la console du nouveau domaine s'il est créé avec succès. À ce stade, on peut poursuivre l'installation comme d'habitude. Il y aura cependant quelques particularités. Les périphériques de bloc (disques) figurant dans la cfg seront affiché comme /dev/XVD*. Utilisez ces dispositifs lors du partitionnement du domU.
Configurer le système parvirtualisé
- domU=Achwiki :
Après installation et avant de redémarré le domU, les modules suivants doivent être ajoutés au fichier /etc/mkinitcpio.conf:
MODULES = "xen-blkfront xen-fbfront xen-netfront xen-kbdfront"
Sans ces modules, le domU ne démarre pas correctement. Après avoir enregistré les modifications, reconstruire les initramfs avec la commande suivante:
sudo mkinitcpio-p linux
Fin de l'installation
Pour démarrer, il n'est pas nécessaire d'installer Grub. Xen dispose d'un émulateur de grub en Python, donc tout ce qui est nécessaire pour démarrer est un fichier grub.cfg: (Il peut être nécessaire de créer le répertoire /boot/grub)
/boot/grub/grub.cfg menuentry 'Arch GNU/Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-__UUID__' { insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 __UUID__ else search --no-floppy --fs-uuid --set=root __UUID__ fi echo 'Loading Linux core repo kernel ...' linux /boot/vmlinuz-linux root=UUID=__UUID__ ro echo 'Loading initial ramdisk ...' initrd /boot/initramfs-linux.img }
Ce fichier doit être édité pour correspondre à l'UUID de la partition racine. De l'intérieur du domU, exécutez la commande suivante:
blkid
Remplacer toutes les occurrences de UUID__ avec l'UUID réel de la partition racine (celle qui monte en «/»).
Arrêter le domU avec la commande poweroff. La console sera retournée à l'hyperviseur lorsque le domaine est entièrement fermé, et le domaine n'apparaît plus dans la liste xl domaines. Maintenant, le fichier ISO peut être démonté:
umount /mnt
Le fichier cfg domU devrait maintenant être édité. Supprimer les lignes “kernel =”, “ramdisk =” et “extra =” et les remplacer par la ligne suivante:
bootloader="pygrub"
Retirer également le disque ISO de la ligne “disk=” .
Le domU est maintenant configuré. Il peut être lancé avec la même ligne que précédemment:
xl create -c /etc/xen/archdomu.cfg
Si le domU doi être lancé au démarrage, créez un lien symbolique vers le fichier cfg dans /etc/xen/auto et s'assurer que le service xendomains est correctement configuré.
Exemples d'utilisation de commandes xl
- xl top
- xl list
- xl console domUname
- xl shutdown domUname
- xl destroy domUname
Erreurs communes
'xl list' complains about libxl
Soit le système Xen n'a pas démarré, soit les modules xen énumérés dans le script xencommons ne sont pas installés
xl create échoue
Vérifier si le noyau du client est placé correctement, vérifiez le fichier pv-xxx.cfg des fautes de syntaxe (comme utiliser initrd au lieu de ramdisk)
l'invite Arch Linux se bloque avec un message CTRL-D
Appuyer sur ctrl-d jusqu'à revenir à une invite, reconstruire les initramfs décrites
failed to execute '/usr/lib/udev/socket:/org/xen/xend/udevevent' 'socket:/org/xen/xend/udevevent': No such file or directory
Causés par le fichier /etc/udev/rules.d/xend.rules
; xend est (a) obsolète (b) n'est pas utilisé, il est donc prudent de retirer xend.rules