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
% wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
% 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 :-)