Mardi 25 juin 2019

image

VirtualBox

Virtualiser une installation physique d’un système d’exploitation

Il existe deux variantes pour créer une VM à partir d’une installation existante d’un système d’exploitation.

La première (A), certainement la plus simple, permet de créer une VM qui démarre sur une installation physique de votre OS. Cette variante permet dès lors d’utiliser le même système d’exploitation soit en natif soit en VM.
La seconde (B) fait une image de votre installation. La VM ainsi créée est indépendante de votre installation de base. Cette solution est plus portable et permet d’avoir plusieurs VM issues d’une même installation.

A - Démarrage sur disque dur physique

GNU/Linux

  • Identifier le disque à virtualiser : /dev/sdx (p. ex. /dev/sdb) , repérez le disque à l’aide de la commande cat /proc/partitions ou sudo fdisk -l
  • Créer votre disque virtuel en ligne de commande
    VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/usb.vmdk -rawdisk /dev/sdx

  • Démarrer VirtualBox et créez une nouvelle VM à laquelle vous attachez comme disque dur existant le fichier ‘.vmdk’ généré au point précédent.

Exemple: Virtualiser une clé USB multiboot
On va utiliser dmesg immédiatement après insertion de la clé USB

...
[36407.725393]  sde: sde1 sde2
[36407.726437] sd 5:0:0:0: [sde] Attached SCSI removable disk

La clé est sous /dev/sde
Création du disque virtuel

sudo VBoxManage internalcommands createrawvmdk -filename /home/yannick/virtuel/Vbox/multibootUSB/multibootUSB.vmdk -rawdisk /dev/sde
sudo chown $USER.users /srv/virtuel/Vbox/multibootUSB/multibootUSB.vmdk

B - Virtualiser une installation

Pré-requis

  • Un LiveUSB GNU/Linux
  • Un fichier ‘.iso’ d’une distribution GNU/Linux
  • VirtualBox v.4.x
  • GParted ou un autre outil permettant de redimensionner ou déplacer une partition
  • De l’espace disque en suffisance

Procédure

Les différentes opérations présentées ci-après prennent du temps… beaucoup de temps! Je vous conseille dès lors de privilégier l’exécution de chaque étapes de nuit ainsi vous aurez peut-être un résultat le matin au réveil !

Préparation

  • Windows
    • Afin que Windows retrouve son disque au démarrage, vous devez modifier la base de registre à l’aide de l’application Add_VBox_Hardware
  • LiveUSB
    • La procédure d’installation qui suit utilise VirtualBox pour créer l’image du disque à virtualiser. Il est donc nécessaire que ce dernier soit installé sur votre LiveUSB.

Création de l’image

  • Identifiez le disque à virtualiser : /dev/sdx (p. ex. /dev/sdb), repérez le disque à l’aide de la commande cat /proc/partitions ou sudo fdisk -l
  • Montez la partition sur laquelle vous désirez créer l’image (p.ex /mnt/vmDest).
    Attention, vous devez disposer au minimum d’un espace égal à la taille du disque à virtualiser car l’opération suivante va créer une image un pour un du disque.
  • Adaptez la commande suivante pour générer l’image:
sudo -s cat /dev/sdx | VBoxManage convertfromraw stdin /mnt/vmDest/image.vdi \  
$(fdisk -l /dev/sdx | grep sdx: | cut -d" " -f5)
  • Une fois l’image créée nous allons modifez ses droits:
    sudo chown $UID:vboxusers /mnt/vmDest/image.vdi
  • Votre image est prête, vous pouvez l’assigner à une nouvelle VM et la démarrer.

Compression de l’image

Bien que parfaitement fonctionnelle, cette VM prend probablement beaucoup de place! Les étapes qui suivent expliquent comment réduire sa taille.

  • Démarrez VirtualBox et sélectionnez la machine virtuelle utilisée pour démarrer l’image générée précédemment
  • Cliquez sur Configuration puis Stockage
  • Sous Contrôleur IDE cliquez sur le bouton Ajouter lecteur CD/DVD puis Choisir un disque et sélectionnez l’image iso de votre distribution GNU/Linux
  • Lancez votre machine virtuelle. Celle-ci devrait démarrer comme si vous aviez un LiveCD.
  • Exécutez GParted (ou un autre outil) et réduisez la taille des partitions de la VM à une taille “raisonnable”
  • Arrêtez la machine virtuelle et compressez l’image avec la commande:
    VBoxManage modifyhf /mnt/vmDest/image.vdi --compact