Modifications entre les versions 5 et 6
Version 5 à la date du 2008-05-30 14:43:46
Taille: 8010
Commentaire:
Version 6 à la date du 2008-05-30 15:08:00
Taille: 8007
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 215: Ligne 215:
 * Créer un petit script qui permet à chaque nouvelle version du noyau, de faire apt-get install virtualbox-ose-modules-generic et reajouter les utilisateurs dans vboxusers !!
  

 
 * Créer un petit script qui permet à chaque nouvelle version du noyau, de faire apt-get install virtualbox-ose-modules-generic et reajouter les utilisateurs dans vboxusers !!

TAF pour pouvoir virtualiser correctement

Idée principale

* Mettre l'image disque-winxp sur un serveur

* Mettre le snapshot sur le disque dur local pour le traitement des diffèrences

* Ceux qui restent sur le serveur nfs, de préférence sur une partition lvm

I. Configuration de la machine type/modele

* Configurer virtualbox en mode graphique :), l'essentiel est d'avoir une "bonne" config de Windows XP

* Installer le VBOXGuestAdditions_Tools_1.5.x_OSE.iso qui est un correctif, essentiel pour le partage de dossier, graphisme etc...que du bien

* Configuration de Windows avec un disque en mode normal. Droits: (rwx)

  • * Mappage de "mes documents" avec /$HOME/Documents, et mettre le chemin unc: \\VBOXSVR\Documents

  • * Création d'un lecteur logique pour simuler le lecteur usb dans le poste de travail du guest: net use z: \\VBOXSVR\FlashDisk

  • * Logiciels dépendant de la formation

II. Configuration sur les machines foad

* Créer une partition (en lvm c'est mieux) de 10Go pour mettre le snapshot

  • ex: /dev/mapper/scsi--0-temp--vbox on /var/tmp/vbox type ext3 (rw,noatime) Donner les droits aux dossiers /usr/local/temp-vbox à tous les vboxusers.

     sudo chmod 666 /dev/vboxdrv
     sudo adduser $LOGNAME vboxusers
     sudo groupadd vboxusers
     sudo chown -R .vboxusers /var/tmp/vbox
     sudo chmod 770 /usr/local/vbox 

* Essai de ATAoverEThernet ... impossible en multiaccess de disque-winxp.vdi

* Mettre le disque-winxp.vdi sur le serveur NFS avec les droits 440, appartenant au groupe vbox.

* Modifier les fichiers /etc/auto.master et auto.vbox.sn, pour l'export Par exemple pour /etc/auto.master

/nfs /etc/auto.nfs --timeout=1800
/usr/local/vbox /etc/auto.vbox.sn --timeout=1800
/auf/nfs.refer.sn /etc/auto.auf-nfs.refer.sn --timeout=1800
/auf/bao.sn.auf /etc/auto.auf-bao.sn.auf --timeout=1800
  • /etc/auto.vbox.sn

  aigeme -fstype=nfs,noatime,noexec,intr,proto=udp 213.154.65.72:/srv/nfs/vbox/

* Faire un script qui automatise le management et le démarrage de vbox,

# 
# Script qui permet aux uilisateurs d'installer une image windows sous virtualbox
# VDI contient l'image du disque winxp mis sur le serveur nfs
# TMP contient l'image de diffèrence. Il est préfèrable de monter une partition sur TMP

VBOXMANAGE=$(which vboxmanage)
ZENITY=$(which zenity)

#Prend comme argument le nom de la nouvelle machine 
VBOXVMUUID=$1

# fichier exporter du serveur
VDI=/srv/nfs/vbox/
MAPAGE=/nfs$HOME/Documents
FLASH=/nfs$HOME/.FlashDisk
# partition lvm /dev/scsi-0/temp-vbox
TMP=/var/tmp/vbox
#Nom du disk
DISKFILE=XP-AIGEME.vdi

# Tips pour les usb, dans VBOX ose
 if [ ! -d $FLASH ] ; then
        mkdir $FLASH
        ln -s /media/disk/ $FLASH/
 fi

# Test de Zenity
 if [ ! -x ${ZENITY} ]; then
        echo "Erreur: l'outil Zenity n'est pas installé."
        exit 1
 fi

if [ ! $# = 1 ]; then
        ${ZENITY} --error --title "Argument nécessaire" --text "Ce script doit faire appel à un argument: l'UUID/nom de la machine virtuel doit être mis en argument."
        exit 2
fi

# Nettoyer le répertoire home/.Virtualbox/defaults
  if [ -f $HOME/.VirtualBox//.nfs* ]; then
        sleep 3
        ${ZENITY} --error --title "Erreur suppression nfs*** " --text " Ressource occupée, redémarrer l'application"
        exit 2
  fi

 # Re-nettoyage
 rm -rf $HOME/.VirtualBox/


 # Nettoyage des disques de diffèrences
 if [ ! -d $TMP ] ; then
                ${ZENITY} --error --title " Erreur d'accès disque temp." --text "La partition temporaire est innaccessible "
                exit 1
         elif [ -n "$TMP" -a -e $TMP/* ] ; then                 
                rm -rf $TMP/{*
  fi 


# repertoires des images sources des machines sur le serveur nfs
 ${VBOXMANAGE} setproperty vdifolder $VDI/

# conf des machines restent dans le homedir
 ${VBOXMANAGE} setproperty machinefolder defaults


# faire reconnaitre notre image modele
 if [ ! -e $VDI/$DISKFILE ] ; then
        ${ZENITY} --error --title " Erreur d'accès disque " --text "L'image disque ${DISK} ne peut être trouver "

 fi 
# rendre le disque immutable
${VBOXMANAGE} registerimage disk $DISKFILE -type immutable

                
# creer la machine du nom de "WinXP"
${VBOXMANAGE} createvm -name ${VBOXVMUUID} -register

# lui attacher l'image disque avec les options audio et nat
${VBOXMANAGE} modifyvm ${VBOXVMUUID} -hda $DISKFILE -nic1 nat -snapshotfolder $TMP -audio alsa


if ${VBOXMANAGE} showvminfo ${VBOXVMUUID} | grep ^Primary\ master > /dev/null; then
        DISKFILE=$(${VBOXMANAGE} showvminfo ${VBOXVMUUID} | grep ^Primary\ master | sed -e "s/Primary\ master:\ *//" -e 's/\ *(UUID.*$//')
        if [ ! -r ${DISKFILE} ]; then
                ${ZENITY} --error --title "Disque primaire non trouvé" --text "L'image disque pour le disque primaire, ${DISKFILE}, ne peut être trouvé."
                        exit 1
        fi
fi
                

# supprimer les extradatas
${VBOXMANAGE} setextradata global "GUI/SuppressMessages" "remindAboutAutoCapture,remindAboutInputCapture,remindAboutMouseIntegrationOn"
${VBOXMANAGE} setextradata global "GUI/Customizations noMenuBar,noStatusBar"

# Partage des dossiers entre XP et Ubuntu
vboxmanage sharedfolder add ${VBOXVMUUID} -name Documents -hostpath $MAPAGE/
vboxmanage sharedfolder add ${VBOXVMUUID} -name FlashDisk -hostpath $FLASH/

 
# lancement de vbox

VBOXOUT=$(${VBOXMANAGE} startvm ${VBOXVMUUID})
VBOXCODE=$?

   if [ ! ${VBOXCODE} = 0 ]; then
           echo -e ${VBOXOUT}
           VBOXERROR=$(echo ${VBOXOUT} | grep "\[\!\]\ Text" | sed "s/.*\[\!\]\ Text\ *=\ *//")
           VBOXERROR=$(echo ${VBOXERROR} | sed "s/\ \[\!\].*//")
           ${ZENITY} --error --title "Erreur lors du lancement de la machine virtuelle" --text " Une erreur s'est produite lors du lancement de la machine virtuelle: ${VBOXERROR} 
           tapez \"${VBOXMANAGE} startvm ${VBOXVMUUID}\" pour plus de détails."
        exit 4
   fi
        


Remarques

  • * Lorsqu'on modifie, supprime, ou on déplace des fichiers dans "Mes documents" sous WinXP, il faut rafraichir la fenêtre :(

  • * Pour modifier le type de l'image pour la maintenance, sachant qu'on a disque-winxp.vdi, avec un chmod rwx
     vboxmanage modifyvm WinXP -hda none
     vboxmanage unregisterimage disk disque-winxp.vdi
     vboxmanage registerimage disk disque-winxp.vdi -type normal
     vboxmanage modifyvm WinXP -hda disque-winxp.vdi
     vboxmanage startvm WinXP -gui 
  • et c'est reparti en n'oubliant pas de remettre le mod en read-only

/!\ Avant de copier l'image modele faire un petit

  •  vboxmanage modifyvm WinXP -hda none
     vboxmanage unregisterimage disk disque-winxp.vdi
  • * Pour les fichiers de configurations, on a 3 types de uuid:
    • 1. Celui qui spécifie le nom de la machine virtuelle: WinXp

    • 2. L'uuid qui spécifie le "disque dur", qu'il soit immutable ou non
    • 3. Et enfin un dernier qui est spécifié quand le type est immutable
        <MachineRegistry>
          <MachineEntry src="Machines/WinXP/WinXP.xml" uuid="{f4270d7d-2c5f-4776-46af-e43f34e655dd}"/>
        </MachineRegistry>
         .....
            <HardDisk type="immutable" uuid="{85330e70-3e98-488c-0586-f01e5685fec3}">
              <VirtualDiskImage filePath="/mnt/e1.1/disque-winxp.vdi"/>
              <DiffHardDisk uuid="{db7c4e20-7a9c-4d72-ecbb-96a07249f8c5}">
                <VirtualDiskImage filePath="/mnt/VBOX/{db7c4e20-7a9c-4d72-ecbb-96a07249f8c5}.vdi"/>
              </DiffHardDisk>
            </HardDisk> 
          </HardDisks> 

Reste à faire

  • Implementer en vrai
  • Créer un petit script qui permet à chaque nouvelle version du noyau, de faire apt-get install virtualbox-ose-modules-generic et reajouter les utilisateurs dans vboxusers !!

Misc

Templates de distros en VDI http://veedee-eyes.com:82/veedeeeyes/book

NdimbyAndriantsoavina/VirtualBox (dernière édition le 2009-06-24 10:57:55 par NdimbyAndriantsoavina)