[:en]Tales of a GeekTrotter[:fr]Récits d'un GeekTrotter[:ja]Tales of a GeekTrotter [:en]Binary Logbook[:fr]Carnet de bord binaire[:ja]ギークの旅行

4Jan/1166

Boot on your USB Drive in VirtualBox 4Bootez sur votre clé USB avec VirtualBox 4VirtualBox4でUSBキーにブートする

VirtualBox is a free and easy to use multi-platform Virtualization software.

It means you can run a different OS inside your current OS (Linux in Windows, Windows in Linux, Linux in Linux, Windows in Windows, almost everything is possible!).

VirtualBoxLinux in Windows

It is very easy to start a new virtual machine and use space on a virtual hard drive on your local hard drive (or USB drive). Just follow the VirtualBox wizard.
However, some people want more portability in the physical meaning. To have a system that you can put in your pocket, bring anywhere, plug into any computer and it will run YOUR system.

This is possible by installing a system on a USB stick! This guide won't explain how to install an OS on a USB stick but how to boot on this USB disk in VirtualBox.

Sometimes you don't want to boot on your USB stick directly but within another running system. Then, you need to run the system in a Virtual Machine.

Unfortunately, VirtualBox doesn't allow you to boot from the USB from the GUI.

Nevertheless, there is a small trick to make it possible, using only a single built-in VirtualBox command-line tool.

Let see how to do so in this tutorial!

VirtualBox est un logiciel de virtualisation multi-plateforme facile à utiliser.

Cela signifie que vous pouvez faire tourner un OS différent à l'intérieur de votre OS courant (Linux dans Windows, Windows dans Linux, Linux dans Linux, Windows dans Windows... à peu près toutes les combinaisons sont possibles !).

VirtualBoxLinux dans Windows

C'est très simple de créer une nouvelle machine virtuelle en utilisant une image de disque virtuel stockée sur le disque dur (ou stockée sur la clé USB), il suffit de suivre étape par étape l'installateur de machine virtuelle de VirtualBox.

Cependant, certains d'entre vous veulent plus de portabilité au sens physique du terme. Avoir un OS qu'on peut mettre dans sa poche, emporter partout, brancher sur n'importe quel ordinateur, démarrer dessus et ça nous offrira NOTRE OS (avec nos logiciels, nos paramètres...).

C'est possible en installant un OS sur une clé USB ! Ce guide n'a pas pour but d'expliquer comment installer un OS sur une clé USB mais plutôt comment démarrer sur ce système sur clé USB dans VirtualBox.
Parfois vous ne voulez pas démarrer directement sur la clé USB mais êtes entrain d'utiliser un autre OS et voudriez avoir votre système qui est sur la clé USB à l'intérieur de celui-ci. A ce moment-là, vous devez lancer le système depuis un logiciel de virtualisation tel que VirtualBox.

Malheureusement, VirtualBox ne permet pas de démarrer depuis une clé USB directement depuis son interface graphique.
Cependant, une petite astuce ne nécessitant qu'une simple ligne de commande permet cela.

Voyons ça dans ce guide !
This tutorial is largely inspired by the Boot your USB Drive in VirtualBox tutorial by AgniPulse, only updating it to the last current version of VirtualBox (4.0).

I assume you have:

  • a bootable USB stick/drive with the system you want to boot on
  • VirtualBox installed with the Expansion Pack (to support USB2 devices)

First, we need to know what is the device ID of your USB. Plug your USB in.

If you are running VirtualBox on Linux, the USB ID will be something like /dev/sdx (for example /dev/sdb for me).

On Windows,  you can see it in the "Disk Management".

Start typing "dsk" after entering the Start Menu and choose Create and Format Hard Disk Partitions:

01_-_Disk_Management

Create and format disk partitions

Then you will have a page where you can identify the device number of your USB stick or drive.

In my case, my 8GB USB stick is on the Disk 1:

02_-_Disk_Manager

Disk Management

Note that on Ubuntu with VirtualBox 4.0.4 OSE (Open Source Edition): Make sure that you remove the USB device from the "USB Device Filters" list in the machine's settings (thanks Tim).

Now we are ready to create a Raw Virtual Machine Disk that will link to our USB stick.

Simply open a terminal on linux or a command-line tool on Windows (Win+R cmd) and change directory to your VirtualBox folder.

cd "C:\Program Files\Oracle\VirtualBox"

Then we run the VBoxManage command with the following options to link the USB Drive to a vmdk file (Virtual Machine Disk):

VBoxManage internalcommands createrawvmdk -filename output_usb.vmdk -rawdisk path_to_usb

You need to change the two red color highlighted parts to YOUR settings.

For example on Linux if I want to save in /home/thomas/.VirtualBox/usb.vmdk a virtual machine disk that links to my USB in /dev/sdb, I type the following line:

VBoxManage internalcommands createrawvmdk -filename /home/thomas/.VirtualBox/usb.vmdk -rawdisk /dev/sdb

On Windows, if I want to save the virtual machine disk in C:\Users\Thomas\.VirtualBox\usb.vmdk that links to my USB in in Disk 1 (according to the previous Disk Management), I type the following line:

VBoxManage internalcommands createrawvmdk -filename C:\Users\Thomas\usb.vmdk -rawdisk \\.\PhysicalDrive1

Replace the 1 in \\.\PhysicalDrive1 by YOUR device number os the USB drive (for example \\.\PhysicalDrive2).

Note: As noticed by Carlet, if any path contains spaces, write it between quotation marks (") to make it work.
Example: VBoxManage internalcommands createrawvmdk -filename "C:\Documents and Settings\Carletdesiles\.VirtualBox\usb.vmdk" -rawdisk \\.\PhysicalDrive1
Note: As noticed by Alex and skydvr, on Windows Vista/7, you need to start the command prompt as administrator (right click -> run as administrator) in order to access to the USB drive/stick.

That's it, you have done a Virtual Machine disk that should be very tiny (~1KB) and links to your USB drive.

You just need to import this hard drive in VirtualBox and use it as primary hard drive (to boot on) for your new system.

You can do it step by step by following the screenshots:

You can see the result of my Ubuntu 10.10 on my 8GB USB stick running on VirtualBox on Windows 7 at the very beginning of this article (first screenshot).

Video Summary of this tutorial

Enjoy!Ce guide est largement inspiré par le guide Boot your USB Drive in VirtualBox d'AgniPulse, se contentant de mettre à jour les informations à la dernière version de VirtualBox (4.0).

Je part du principe que vous avez :

  • une clé USB bootable qui contient l'OS que vous souhaitez virtualiser (et qui boote de façon "normale")
  • VirtualBox et son Expansion Pack (qui permet le support des clés USB2)

Primo, nous devons connaître l'identifiant (numérique) de votre clé USB.

Si vous êtes sous Linux, l'identifiant de votre disque USB est quelque chose comme /dev/sdx (par exemple /dev/sdb pour moi).

Sous Windows,  vous pouvez le trouver dans le "Disk Management" (Gestionnaire de Disques ?).
Commencez à écrire "dsk" après être entré dans le menu Démarrer et choisissez Create and Format Hard Disk Partitions (Créer et formater les partitions du disque dur ?):

01_-_Disk_Management

Create and format disk partitions

Une page dans laquelle vous trouverez l'identifiant de votre disque USB va s'ouvrir.
Dans mon cas, ma clé USB 8GB est sur le Disque 1:

02_-_Disk_Manager

Disk Management

Retenez bien ce "1", c'est l'identifiant numérique de votre disque.
Désormais nous sommes prêts à créer un Disque de Machine Virtuelle Brut qui sera lié à ce disque USB (fichier .vmdk).

Ouvrez simplement un terminal sous Linux ou l'outil de commandes sous Windows (Win+R cmd) et naviguez dans votre dossier VirtualBox.

cd "C:\Program Files\Oracle\VirtualBox"

Ensuite, exécutez la commande VBoxManage avec les paramètres suivants pour lier le disque USB à un fichier .vmdk (Virtual Machine Disk):
VBoxManage internalcommands createrawvmdk -filename output_usb.vmdk -rawdisk path_to_usb

Vous devez changer les deux paramètres en rouge en fonction de VOS paramètres.

Par exemple sous Linux, si je veux sauver mon VMDK dans /home/thomas/.VirtualBox/usb.vmdk et le lier à mon disque USB /dev/sdb, j'exécute la commande suivante:

VBoxManage internalcommands createrawvmdk -filename /home/thomas/.VirtualBox/usb.vmdk -rawdisk /dev/sdb

Sous Windows, si je veux sauver mon VMDK sous C:\Users\Thomas\.VirtualBox\usb.vmdk et le lier à mon Disque 1 (selon le Disk Management), j'exécute la ligne de commande suivante :

VBoxManage internalcommands createrawvmdk -filename C:\Users\Thomas\usb.vmdk -rawdisk \\.\PhysicalDrive1

Remplacez le "1" dans \\.\PhysicalDrive1 par le numéro correspondant à VOTRE disque USB (si 2 : \\.\PhysicalDrive2).
C'est terminé, vous avez votre petit .vmdk (~1KB) lié à votre disque USB.

Note: Comme remarqué par Carlet, si le chemin contient des espaces, encadrez-le de guillemets doubles.
Exemple: VBoxManage internalcommands createrawvmdk -filename "C:\Documents and Settings\Carletdesiles\.VirtualBox\usb.vmdk" -rawdisk \\.\PhysicalDrive1
Note: Comme remarqué par Alex et skydvr, sous Windows Vista/7, vous devez lancer l'outil de commandes en administrateur pour pouvoir accéder au disque USB ou à la clé USB.

Il ne vous reste plus qu'à importer ce .vmdk en tant que disque virtuel dans VirtualBox et l'utiliser en disque primaire (pour booter dessus) de votre nouveau système.

Vous pouvez faire cela étape par étape en suivant les captures d'écran :

Vous pouvez voir le résultat de ma clé USB faisant tourner Ubuntu 10.10 virtualisé dans Windows 7 avec VirtualBox (première capture d'écran de cet article).
Vous pouvez aussi voir une vidéo résumant chaque étape de ce tutorial :

Vidéo Résumé de ce guide

Enjoy!