Démarrer VirtualBox à partir d’un disque dur externe

Problématique du jour

VirtualBoxUne amie crame son vieux PC portable, elle en achète un tout neuf, mais tout vierge. Le but est donc de récupérer les données de son compte, et de les transférer sur le nouveau. Avec Windows 7, Microsoft a mis en place le « Transfert de fichiers et paramètres Windows » qui permet de faire ça bien, en conservant l’ensemble des mots de passe et des configurations diverses. J’ai donc un PC portable HS sur lequel je veux exécuter ce logiciel. Sauf que oh joie, le disque refuse de lancer Windows sur d’autres machines.

VirtualBox

Pour ceux qui ne savent pas, VirtualBox est un logiciel gratuit qui permet d’émuler un nouvel ordinateur à partir d’une autre machine (en gros, de faire tourner Windows sur Linux ou vice-versa). L’idée est donc de partir d’un ordinateur vierge et suffisamment configurable pour arriver à démarrer sur le disque dur de l’ancien PC.

Méthode

A première vue, VirtualBox ne permet pas de reconnaître un disque dur externe comme un disque natif qui permettrait le démarrage. En regardant de plus près, la doc nous indique que c’est faisable en ligne de commande.

Sur Mac

Lancer un terminal et coller la ligne suivante (en ayant pris soin de remplacer ‘nomUtilisateur‘ par le nom du compte Mac OSX)
VBoxManage internalcommands createrawvmdk -filename /Users/nomUtilisateur/Library/VirtualBox/HardDisks/DisqueUsb.vmdk -rawdisk /dev/disk1 -register

Sur Linux

Il faut d’abord retrouver la référence du disque. La liste s’obtient avec sudo fdisk -l Ensuite, la commande sera à peu près équivalente que sur celle executée sur Mac (remplacer /dev/sdaN par le numéro du disque obtenue, et cheminVersLeFichierUSBSouhaite par le chemin vers le fichier USB à créer) :
VBoxManage internalcommands createrawvmdk -filename cheminVersLeFichierUSBSouhaite -rawdisk /dev/sdaN -register

Sous Windows

Une fois encore, il faudra remplacer nomUtilisateur par le nom de votre compte sur la machine :

VBoxManage internalcommands createrawvmdk -filename "C:/Documents and Settings/nomUtilisateur/.VirtualBox/HardDisks/DisqueUsb.vmdk" -rawdisk \.PhysicalDrive1 -register

Lancement

Une fois le disque USB mis en place, il suffira de créer une nouvelle machine et de l’attacher en tant que disque principal. Les réglages de la machine virtuelle peuvent varier en fonction de la machine d’origine sur laquelle le disque était sensé tourner à la base.
Attention
Windows vous demandera certainement une réactivation de la copie car la machine virtuelle sera forcément très différente de la machine originale.

7 commentaires

  • J’ai essayé de suivre cette procédure sur Windows 8.1 pour un disque dur exter, mais voici l’erreur qui m’est renvoyée:
    VBoxManage n’est pas reconnu en tant que une commande interne

    • Bonjour,
      Ça peut arriver effectivement. A ce moment là, il faut localiser le fichier vboxmanage.exe (probablement dans « Program Files\Oracle\VirtualBox\ »), se rendre dans le même dossier avec la console de commande et appeler Vboxmanage.exe à la place de vboxmanage.
      Bon courage 😉

  • Merci, la commande passe mais avec l’erreur suivante:

    syntax error: invalid parameter « register »

    • Effectivement, un –help sur VboxManage ne laisse plus apparaître cette option, ce billet date un peu. Et en retirant simplement l’option ? Certains forums semblent indiquer que ça devrait passer…

  • Juste pour info, j’ai pu aller plus loin avec la commande
    VBoxManage internalcommands createrawvmdk -filename « C:\Users\Am\.VirtualBox\usbhdd.vmdk » -rawdisk « \\.\PhysicalDrive1 »

    Mais au démarrage de la machine sur VB, j’obtiens l’erreur
    Échec de l’ouverture de session pour la machine virtuelle Windows 7.

    No error info.

    Code d’erreur : E_FAIL (0x80004005)
    Composant : ProgressProxy
    Interface : IProgress {c20238e4-3221-4d3f-8891-81ce92d9f913}

    Avez-vous une idée?

  • <> à remplacer bien sûr par  » ou « 

  • Enfin la machine arrive à démarrer, mais j’obtiens l’erreur bootmgr absent

Ajouter un commentaire