Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/07/2012, à 15:19

Arbiel

[Résolu] [VirtualBox] Gestion incorrecte des disques de mach. virt.

Pour gérer un nombre relativement important de machines virtuelles, j'ai décidé d'en automatiser la production par un script bash sur la base de l'organisation suivante :

toutes les machines, MV${i}, i variant de 1 à N, sont construites à partir d'une machine de base, "Windows XP.vbox" dont la configuration contient un disque dur "Windows XP.vdi", et deux lecteurs de CD, vides
pour chacune je définis un répertoire d'enregistrement (VBOX_USER_HOME) et un répertoire pour la machine virtuelle ("MV${i}.Windows XP")
je construis chaque machine en recopiant le fichier "Windows XP.vbox" vers "MV${i}.Windows XP" sous le nom MV${i}.vbox, et en l'enregistrant dans son propre répertoire
je prends un instantané de la machine, instantané qui me sert à installer les logiciels spécifiques à la machine à partir soit d'une image iso, soit d'un CD
comme je veux ultérieurement encore déplacer l'ensemble pour particulariser chaque machine pour chaque futur utilisateur en créant un second instantané, je sors l'instantané que je viens de créer du répertoire Snapshots pour le remplacer par un lien symbolique absolu

Jusqu'à ce point de mon script, tout fonctionne parfaitement, les liens entre les fichiers sont correctement gérés, soit par des adressages absolus (depuis MV${i}.vbox vers "Windows XP.vdi") ou relatifs (depuis Virtualbox.xml vers MV${i}.vbox)

    if ${loquace}; then
        zenity --info --window-icon="info" --text="Création de la machine virtuelle"; fi
    mkdir -p "${varctx}/"{r,Snapshots,log,vbx}
    export VBOX_USER_HOME="${varctx}/r
    cp --preserve=all "/.ciel/${mv}/${mv}.vbox" "${varctx}"
    VBoxManage registervm "../${mv}.vbox"
    vbx_mv_uuid=$(VBoxManage list vms | grep "${mv}" | sed -e s/.*{// -e s/}//)
    VBoxManage modifyvm "${vbx_mv_uuid}" --name "${Jeu}"
    VBoxManage unregistervm "${vbx_mv_uuid}"
    VBoxManage registervm "../${Jeu}.vbox"
    VBoxManage snapshot "${vbx_mv_uuid}" take "${mv}"
    cp "${varctx}/Snapshots/"*.vdi "${varctx}/vbx"
    ln -f --symbolic "${varctx}/vbx"/*.vdi "${varctx}/Snapshots"

Pour procéder à l'installation de ces logiciels, et c'est là que tout se gâte, je veux utiliser le premier lecteur de CD de la machine soit pour y monter l'image iso, soit lui faire correspondre le lecteur CD de l'hôte. Je n'ai pour l'instant pas encore tester ce deuxième besoin, car mes machines "perdent" leurs disques dans les manipulations que je fais et qui sont les suivantes :

    if ${loquace}; then zenity --info --window-icon="info" --text="Installation de la machine VirtualBox"; fi
    if ${cdrom}; then
        medium="host:/dev/sr0"
    else
        medium="${varjeu}/${Jeu}.iso"
    fi
    VBoxManage storageattach "${vbx_mv_uuid}"        \
                            --storagectl "Contrôleur IDE"    \
                            --port 0                \
                            --device 1                       \
                            --type dvddrive            \
                            --medium "${medium}"
    scriptinstall
    VBoxManage storageattach "${vbx_mv_uuid}"        \
                            --storagectl "Contrôleur IDE"    \
                            --port 1                \
                            --device 0                       \
                            --type dvddrive            \
                            --medium "/.ciel/scripts/CielWindows.iso"
    VirtualBox --startvm "${vbx_mv_uuid}" --fullscreen
    VBoxManage storageattach "${vbx_mv_uuid}"        \
                            --storagectl "Contrôleur IDE"    \
                            --port 0                \
                            --device 1                       \
                            --type dvddrive            \
                            --medium emptydrive
    VBoxManage storageattach "${vbx_mv_uuid}"        \
                            --storagectl "Contrôleur IDE"    \
                            --port 1                \
                            --device 0                       \
                            --type dvddrive            \
                            --medium emptydrive

scriptinstall crée l'image "CielWindows" que la machine hôte exécute au démarrage

A partir de là, je constate un comportement qui me paraît aléatoire, et mes machines virtuelles deviennent inacessibles. Le fichier vbox se vide de ses HardDisks. J'y retrouve en effet le code suivant

      <HardDisks/>
      <DVDImages>
        <Image uuid="{7bc889cd-4a1f-46d6-ab85-66f48d246fab}" location="/media/Multimedia/Ciel_Iconiochore/Justine et la pierre de feu/Justine et la pierre de feu.iso"/>
        <Image uuid="{866ca08c-fe76-43bd-823f-dff9ef01e713}" location="/.ciel/scripts/CielWindows.iso"/>
      </DVDImages>

Merci à quiconque pourra me donner des pistes d'investigation.

Arbiel

Dernière modification par Arbiel (Le 12/07/2012, à 18:15)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#2 Le 10/07/2012, à 17:31

Haleth

Re : [Résolu] [VirtualBox] Gestion incorrecte des disques de mach. virt.

Si t'as beaucoup de VM et que c'est pas pour jouer, tu devrais utiliser des systèmes plus performant que virtualbox
Prend un hyperviseur de niveau 1, genre kvm


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#3 Le 10/07/2012, à 18:57

Arbiel

Re : [Résolu] [VirtualBox] Gestion incorrecte des disques de mach. virt.

Bonsoir

C'est pour un club informatique ouvert à des adultes handicapés mentaux. La performance n'est pas un problème.


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#4 Le 10/07/2012, à 22:10

Arbiel

Re : [Résolu] [VirtualBox] Gestion incorrecte des disques de mach. virt.

Bonsoir

Ne cherchez plus.

Je viens de constater qu'au cours de mes manipulations, j'ai dû modifier l'organisation de mes fichiers de sorte que la référence au fichier "Windows XP.vdi" est passée d'absolue à relative, et ce doit être là la source de mes problèmes.

Je passerai en résolu dès que j'aurai pu vérifier que tout se passe bien maintenant.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#5 Le 11/07/2012, à 17:57

Arbiel

Re : [Résolu] [VirtualBox] Gestion incorrecte des disques de mach. virt.

Bonsoir

Ma précédente hypothèse ne s'est pas vérifiée. Donc, si quelqu'un dispose d'informations sur ce qui ne va pas, je reste preneur.

D'avance, merci

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#6 Le 12/07/2012, à 18:14

Arbiel

Re : [Résolu] [VirtualBox] Gestion incorrecte des disques de mach. virt.

Finalement j'ai opté pour une approche radicalement différente. Plutôt que de me perdre dans tous les ordres VBoxManage pour paramétrer mes machines, j'ai construit un fichier modèle.vbox dans lequel j'ai introduit des paramètres bash que je remplace ensuite par la commande

sed {liste de motifs "-e s/\${param}/${param}/g" modèle.vbox 1>nouvelle_machine.vbox

et cela fonctionne parfaitement.

Je marque le sujet comme résolu, bien qu'il ne le soit pas du tout, afin de permettre à quiconque confronté au même problème d'appliquer éventuellement la même méthode

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne