IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VirtualBox Discussion :

Auto-monter les clés USB dans un XP virtualisé


Sujet :

VirtualBox

  1. #1
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Auto-monter les clés USB dans un XP virtualisé
    Bonjour

    Pour une démonstration, je dois mettre en place plusieurs XPs virtualisés sur un seul ordinateur. L'utilisateur dois pouvoir se connecter en selectionnant sur quel XP virtualisé il veut travailler. Un fois connecté seul le XP sur la machine virtuelle sélectionnée démarre en mode plein écran. Lorsque que l'on ferme le XP virtualisé, on revient au login de l'hôte.

    Les applications et OS utilisés sont:

    Ubuntu Karmic Koala comme hôte
    VirtualBox 3.1.2 comme machine virtuel (Pas la version OSE)
    XP SP3 comme invités

    Je n'entrerai pas dans les détails de la configuration de ma démonstration, mais si quelqu'un a des questions, ca me feras plaisir de l'aider.

    Le tout fonctionne à merveille sauf un petit problème, je dois me connecter en administrateur pour administrer toute nouvelle clé USB pour qu'elle soit reconnue dans les XPs invités. Une fois reconnue, cette clé peut être utilisé par tous les utilisateurs sur les XPs virtualisés sans problème. J'aimerais que les nouvelles clés USB soit automatiquement reconnues dans les XPs virtualisés quand celles-ci sont branchées. J'ai trouvé un début de solution sur le net que je vais vous expliquer.

    Premièrement je dois ajouter une règle udev qui permet d'éxecuter un script a chaque clé USB inserrée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DRIVERS=="usb-storage", IMPORT{program}="/lib/udev/usb_id --num-info --export %p", RUN+="/etc/udev/vboxusb.sh"
    Ensuite je dois créer ce script qui seras éxecuté a chaque nouvelle clé USB insérée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #!/bin/sh
    
    attach_storage()
    {
      set `/usr/sbin/lsusb -d ${ID_VENDOR}:${ID_MODEL}| sed 's/:.*//g'`
      while [ ! -z "$1" ]; do
        case $1 in
          [Bb]us) shift; BUSID=$1; shift;;
          [Dd]evice) shift; DEVICEID=$1; shift;;
          *) shift;;
        esac
      done
      ADDRESS=/proc/bus/usb/$BUSID/$DEVICEID
    
      set `ps ax -f | grep VBoxSDL | grep -v grep`
      NAME=$1
      while [ ! -z "$1" ]; do
        case $1 in
          --startvm) shift;VM=$1;;
          *) shift;;
        esac
      done
    
      if [ ! -z "$ADDRESS" ]; then
        su - $NAME -c "VBoxManage controlvm $VM usbattach $ADDRESS" > /etc/udev/test.txt 2> /etc/udev/error.txt
      fi
    }
    
    case $DEVNAME in
      /dev/sd[a-z][1-9])
      attach_storage;
      ;;
      /dev/sd[a-z])
      attach_storage;
      ;;
    esac
    Ce script fonctionne à merveille sauf à la ligne avec VBoxManage. VBoxManage me retourne l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    VirtualBox Command Line Management Interface Version 3.1.2
    (C) 2005-2009 Sun Microsystems, Inc.
    All rights reserved.
    
    ERROR: Could not find a USB device with address '/proc/bus/usb/001/005'
    Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component Host, interface IHost, callee nsISupports
    Context: "FindUSBDeviceByAddress(Bstr(a->argv [2]), dev.asOutParam())" at line 553 of file VBoxManageControlVM.cpp
    Si quelqu'un a une solution pour règler ce problème, ca serais le bienvenue.

    J'ai trouvé un autre problème en écrivant ces lignes, mais je crois que c'est plus un problème de udev, je le posterai dans le forum approprié si c'est le cas. Lors du démarrage de l'hôte, udev ne charge pas ma règle, je dois donc redémarrer udev. Mais si je redémarre udev, lorsque je me déconnecte d'un XP en machine virtuel, je perd le controle du clavier et de la souris (il sont tous les 2 en USB). je suis bon alors pour un redémarrage de l'hôte.

    Merci

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    est ce que /proc/bus/usb/001/005 correspond bien à la clé USB avec Ubuntu ?
    essaye la commande "lsusb" pour vérifier ça
    GNAP !

  3. #3
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Salut

    merci pour la réponse.

    Je ne suis pas au travail pour donner le résultat de lsusb, mais de mémoire /proc/bus/usb/001/005 (ou tous autres périphériques) sont en mode 666 avec root comme propriétaire et vboxusers comme groupe, et tous les utilisateur font parti du groupe vboxusers. Et je suis sur que /proc/bus/usb/001/005 est la clé USB, lsusb -d XXXX:YYYY (ou XXXX est le VENDOR_ID et YYYY le MODEL_ID de la clé) me donnais "bus 001 device 005 id XXXX:YYYY NOM_DE_LA_CLÉ_USB".

    J'ai l'impression de mal utiliser "VBoxManager controlvm", mais j'ai utilisé un exemple sur le net que plusieurs personnes disaient que ça fonctionnais, mais pour moi ca ne ne fonctionne malheureusement pas. Mais je dois essayer de trouver parce que les utilisateur n'aurons pas accès au menu de Virtual Box et nin au menu de linux. En fait les utilisateur ne voit pas ni linux (sauf le login de GDM), ni virtual box.

    Merci

Discussions similaires

  1. [VBS]Empêcher l'écriture et l'infection des VIRUS sur les clés USB
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 4
    Dernier message: 07/03/2017, 19h00
  2. [phpMyAdmin] clés uniques, clés primaires et les clés étrangeres dans phpMyAdmin
    Par godza dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/03/2010, 21h59
  3. [WS 2003] [Terminal Server] Monter automatiquement les clés usb
    Par hélios44 dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 11/11/2009, 13h49
  4. Lister les clés USB et les formater en NTFS
    Par viaipi dans le forum C++/CLI
    Réponses: 0
    Dernier message: 12/12/2008, 21h21
  5. [bash][exemple de code] Script pour monter les clef usb
    Par troumad dans le forum Contribuez
    Réponses: 6
    Dernier message: 29/10/2007, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo