mercredi 4 mai 2011

Dernière mise à jour : 19 octobre 2013 22:24

Cela peut, peut-être, représenter un avantage d’utiliser un disque réel avec une machine virtuelle plutôt qu’une image de disque. Il n’est pas interdit de penser que les accès en écriture et lecture devraient être accélérés si on attaque directement le disque plutôt que de passer par une couche de gestion supplémentaire.



UTILISATION D'UNE PARTITION RÉELLE

AVEC VirtualBox


Le but est de faire tourner un PC Virtuel avec VirtualBox mais directement surune partition réelle d'un disque dur; ne pas passer par une image de disquecomme c'est généralement le cas. Ceci pour avoir de meilleures performancesdans la machine virtuelle.

Comme ça, nous pourrons, peut-être, éliminer le double boot et avoir un PC sous un seul boot Linux et une simple machine virtuelle pour les logiciels ne tournant que sous Windows.

Il est primordial de ne pas monter la partition Windows sous l'OS d'accueil.Il risquerait d'y avoir des problèmes sir l'OS hôte écrivait quoi que cesoit sur la partition utilisée sur la machine virtuelle faisant tournerl'OS "invité" (ça n'a pas encore été testé sous Windows)


Toute cette installation est décrite pour un Linux Ubuntu «Maverick Meerkat» (10.10). Rien n’interdit de penser que les mises à jour ne changent rien. Pour ce qui est des outils utilisés, en voici la liste :

Linux Ubuntu «Maverick Meerkat» (10.10)

Images d’installation de Ubuntu pour les tests de la machine virtuelle

Images de l’excellent outil d’archivage de disques «clonezilla» pour effectuer, éventuellement, une sauvegarde de la machine virtuelle et/ou un portage d’une configuration d’un autre poste sur la machine virtuelle

VirtualBox de Sun (heu, pardon, d’Oracle). C’est le gestionnaire de machines virtuelles.



1- Créer une partition NTFS

Avec GParted par exemple. Ici, il s'agit de /dev/sda9

Il ne faut pas renseigner /etc/fstab pour ne pas monter la partition sous Unix



2- Installer VirtualBox dernière version

Il faut ajouter le dépôt de Sun (Oracle) dans /etc/apt/sources.list. Pour ça, voici une commande à faire avec un compte administrateur :

% echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib non-free" | sudo tee /etc/apt/sources.list.d/virtualbox.list

% sudo apt-get update

% sudo apt-get install virtualbox-4.0


Comme ça, on est certain qu’on a le dépôt concernant sa version d’Ubuntu installé et que, donc, on a bien installé la bonne version de VirtualBox.



3- Ajouter l'utilisateur dans le groupe "disk"

VirtualBox DOIT pouvoir écrire dans le pilote du disque visé (/dev/sda) et la partitionutilisée (/dev/sda9). Pour ne pas avoir à laisser tout le monde faire n'importe quoi,la moins mauvaise solution, c'est d'ajouter chaque utilisateur ayant besoin deVirtualBox dans le group "disk" :

% sudo adduser localu disk

On ajoute également l'utilisateur au groupe "vboxusers" :

% sudo adduser localu vboxusers


Il faut relancer la session de l'utilisateur pour que ça soit pris en compte.



4- Création du pseudo-disque pour VirtualBox

VirtualBox a besoin de pointer sur un fichier disque. C'est ce pseud-disque quisera ouvert par VirtualBox.Dans mon cas, j'ai choisi d'installer les "disques VirtualBox" sur une zone departage "/Users/Shared" (droits 1777), j'ai créé un répertoire"/Users/Shared/VirtualBox/HardDisks/Win_7_raw" j'ai donné des droits augroupe "vboxusers" sur ces répertoires.

% sudo -s

# mkdir -p /Users/Shared/VirtualBox/HardDisks/XP_Pro_ArcGIS

# chgrp -R vboxusers /Users/Shared/VirtualBox

# chmod -R 1770 /Users/Shared/VirtualBox


4-1) Création du pseudo-disk pointant sur la partition /dev/sda9

% sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/sda\

-filename /Users/Shared/VirtualBox/HardDisks/Win_7_raw/Win_7_raw.vmdk\

-partitions 9

[sudo] password for localu:<Mot de passe de localu>

Oracle VM VirtualBox Command Line Management Interface Version 3.2.10

(C) 2005-2010 Oracle Corporation

All rights reserved.

RAW host disk access VMDK file /Users/Shared/VirtualBox/HardDisks/Win_7_raw/Win_7_raw.vmdk created successfully.

% sudo chmod 1660 /Users/Shared/VirtualBox/HardDisks/Win_7_raw/Win_7_raw*.vmdk

% sudo chgrp vboxusers /Users/Shared/VirtualBox/HardDisks/Win_7_raw/*

% ls -la /Users/Shared/VirtualBox/HardDisks/Win_7_raw/

total 172

drwxrwx--T 2 root vboxusers  4096 2010-11-05 17:30 .

drwxrwx--T 3 root vboxusers  4096 2010-11-05 17:19 ..

-rwxrwx--T 1 root vboxusers 162304 2010-11-05 17:30 Win_7_raw-pt.vmdk

-rwxrwx--T 1 root vboxusers  948 2010-11-05 17:30 Win_7_raw.vmdk

Comme ça, le pseudo-disque et la pseudo-MBR sont accessible par l'utilisateurappartenant au groupe.


4-2) Modification du pseudo-disque

Le problème, c'est que le pseudo disque fait référence à l'ensemble des partitionsexistantes. Même si l'accès aux autres partitions que celle voulue est impossible,ça nous a posé problème pour l'installation de Windows. En effet, tel que,l'installation de Windows "voit" toutes les partitions et leur attribue une lettreà partir de C:. Dans mon cas, la partition où je voulais installer Windows était la... "G:" et l'installeur de Windows plante.

La solution que j'ai trouvé consiste à supprimer du fichier pseudo-disque toutes lesréférences aux partitions non visées. Ce n'est pas difficile, le fichier"Win_7_raw vmdk" est un simple fichier texte et les partition non modifiablesont un ZERO qui insterdit l'écriture.


Voici le fichier qui a été créé par la commande VirtualBox "VBoxManager", le fichier"Win_7_raw vmdk" :

# Disk DescriptorFile

version=1

CID=d07ffff2

parentCID=ffffffff

createType="partitionedDevice"

# Extent description

RW 63 FLAT "XP_Pro_ArcGIS-pt.vmdk" 0 <== A supprimer ou commenter

RW 1985 ZERO <== A supprimer ou commenter

RW 4192256 ZERO <== A supprimer ou commenter

RW 230692122 ZERO <== A supprimer ou commenter

RW 2 FLAT "XP_Pro_ArcGIS-pt.vmdk" 63 <== A supprimer ou commenter

RW 8385867 ZERO <== A supprimer ou commenter

RW 63 FLAT "XP_Pro_ArcGIS-pt.vmdk" 65 <== A supprimer ou commenter

RW 245762307 ZERO <== A supprimer ou commenter

RW 63 FLAT "XP_Pro_ArcGIS-pt.vmdk" 128 <== A supprimer ou commenter

RW 627383320 ZERO <== A supprimer ou commenter

RW 63 FLAT "XP_Pro_ArcGIS-pt.vmdk" 191 <== A supprimer ou commenter

RW 1985 ZERO <== A supprimer ou commenter

RW 627384320 ZERO <== A supprimer ou commenter

RW 63 FLAT "XP_Pro_ArcGIS-pt.vmdk" 254

RW 1985 ZERO

RW 209713152 FLAT "/dev/sda" 1743806464

RW 5552 ZERO

# The disk Data Base

#DDB

ddb.virtualHWVersion = "4"

ddb.adapterType="ide"

ddb.geometry.cylinders="16383"

ddb.geometry.heads="16"

ddb.geometry.sectors="63"

ddb.uuid.image="a07bbf76-e427-4c79-bf82-0201983c51b7"

ddb.uuid.parent="00000000-0000-0000-0000-000000000000"

ddb.uuid.modification="00000000-0000-0000-0000-000000000000"

ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"


Pour un disque dont voici la table de partition :

Disque /dev/sda: 1000.2 Go, 1000204886016 octets

255 têtes, 63 secteurs/piste, 121601 cylindres

Unités = cylindres de 16065 * 512 = 8225280 octets

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Identifiant de disque : 0x7bc5196a

Périphérique Amorce Début    Fin   Blocs   Id Système

/dev/sda1  *      1     262   2096128  7 HPFS/NTFS

La partition 1 ne se termine pas sur une frontière de cylindre.

/dev/sda2       262    14622  115346061  7 HPFS/NTFS

/dev/sda3      14622   121601  859316819+  5 Etendue

/dev/sda5      14622    15143   4192933+ 82 Linux swap / Solaris

/dev/sda6      15144    30441  122881153+ 83 Linux

/dev/sda7      30442    69494  313691660  7 HPFS/NTFS

/dev/sda8      69494   108547  313692160  83 Linux

/dev/sda9     108547   121601  104856576  7 HPFS/NTFS



5- Installation de Windows

5-1) Lancer VirtualBox

C’est dans le menu "Application/outils systèmes/Oracle VM VirtualBox"


5-2) Ajouter le pseudo disque

Avec le menu "Fichier/Gestionnaire de média...", onglet "Disque durs", cliquez surajouter, cherchez le disque .vmdk créé. Pour nous, c'est le fichier"Win_7_raw.vmdk"

Si votre utilisateur est bien intégré au groupe "disk", il ne doit pas y avoirde message d'erreur, ni d'avertissement.

Cliquez sur "[OK]" pour quitter le getionnaire de médias.


5-3) Créez la machine virtuelle

Dans la fenêtre principale de VirtualBox, cliquez sur le bouton "Nouvelle" etsuivez les instructions. Lorsqu'il vous proposera de créer un nouveau disquedur, choisissez "Utiliser un disque dur existant" et sélectionnez le disqueWindows. Chez nous il s'appelle "Win_7_raw.vmdk".


5-4) Installez Windows

Vous pouvez le faire à partir du CD d'installation ou d'une image de ce CD. J'aiessayé, ça marche très bien.Il ne faut pas oublier d'installer les "Outils VirtualBox" si on ne veut pass'emmerder avec la souris.

Autre chose, comme Windows XP ne sait pas gérer les interfaces SATA avec la SP2,il faut choisir un montage IDE de votre pseudo-disque. Rien ne vous empêche,après l'installation, de créer une image de disque dynamique supplémentaire,de la rattacher à votre machine virtuelle dans une interface SATA, de démarrerWindows et le laisser effectuer la mise à jour des pilotes. Ça marche si vousavez effectué la mise à jour SP3 de Windows XP. Après, il vous suffit d'arrêterWindows, de virer le disque dynamique créé et de déplacer votre pseudo-disquesur l'interface SATA. D'après les drafts de VirtualBox, même la machinevirtuelle est plus rapide avec SATA...


Personnellement, j'ai opté pour l'utilisation d'une image clonezilla poureffectuer mon installation Windows pour VirtualBox classique :=) ... Mais ça ne marche pas :-(


5-5) À partir d'une image Clonezilla

J'ai créé une image Clonezilla du disque "matrice" que j'ai installé. Ilcomprend toutes les installations de nos logiciels payants (ArcGIS 9.3,Erdas Imagine 2010, eCognition 8) et est parametré pour pointer sur notreserveur de licences. C'est un Windows XP SP3 avecles pilotes SATA installés.

Pour récupérer cette configuration il suffit de créer une machine virtuellede type Windows XP avec ces montages :

Port IDE :

 CD : Image de clozilla i686

 Disque : aucun

Port SATA :

 Disque 1 : (sda) pseudo-image vmdk créé

 Disque 2 : (sdb) image de la sauvegarde "RawXP_Clonezilla.vdi"


Lancer le PC virtuel sous Clonezilla et faire une récupération de l'imageArcGIS.


Have a nice trip :-)