Disques virtuels sous Windows 7 – VHD goodness
Voici une petite astuce qui pourra peut-être vous être utile. Le principe est d'utiliser des VHDs (Virtual Hard Disk) pour stocker des données volumineuses mais peu souvent utilisées et de "mapper" le disque virtuel dans un répertoire de votre disque principal grâce à la fonction Attach VHD de Windows 7. Les fichiers apparaissent bien dans votre répertoire mais les accès sont redirigés vers le disque virtuel qui peut être ailleurs.

Orgueil et préjugés
En fait, cela part d'un préjugé lorsque j'installe des training kits, des labs, ou que je décompresse des exemple de projets avec sources, cela fait un bon paquet de fichiers microscopiques. Je suis psychologiquement plus zen de savoir tout ce "bazar" confiné dans un espace disque à part que sur ma partition principale.

Ici, les fichiers apparaissent dans C:\Labs, cependant ils sont stockés réellement dans un disque virtuel (fichier .vhd) qui peut être situé n’importe où ailleurs sur C: ou sur un autre volume.
Une meilleure raison pour faire cela est l'aspect "nomade" de nos configurations. Votre VHD avec toute votre base de code sera peu volumineux (quelques Gigas) et vous pourrez l'embarquer sur une clé, pour l'utiliser comme référence sur un autre poste, ou bien pour le rendre accessible depuis plusieurs de vos machines virtuelles et travailler sur une même base de code.
Il y a aussi l'aspect sauvegarde, car recopier un gros fichier VHD de 1Go c'est tellement plus commode et performant que 20000 petits fichiers, on n'hésite plus à sauvegarder ce fichier fréquemment.
Rien d'indispensable donc, mais je suis plutôt content depuis que je suis passé sur système de "conteneur".

J'utilise donc un VHDs que j'ai nommé "Labs" pour stocker :
- Mes projets de développement
- Des trainings kits
- Des exemples de code et ateliers
- Des sources de projet Open Source
- Toute documentation à base de nombreux fichiers (HTML)
Je n'y mets que du contenu portable (autonome).
Un volume virtuellement illimité
Une vraie bonne raison de pratiquer ce mode de stockage est le gain de place sur C:, car on peut alors étendre la taille de son disque C: au fur et à mesure du besoin en place.
J'utilise un SSD comme disque principal, et sa taille est très limitée (vu le prix !). Utiliser des VHD montés sur le volume C: me permet d’avoir un seul volume contenant l’intégralité de mes fichiers. Je n’ai pas à morceller logiquement mes données ou programmes sur plusieurs volumes.
En effet, j'ai commencé à installer un ou deux jeux sur mon système, mais je ne veux pas que les jeux prennent de la place sur mon SSD bien mieux utilisée par des VM. Au lieu d’installer les jeux sur D:, j’ai préféré n’avoir qu’un seul volume logique pour tout mon système. J’ai pu déporter le stockage des jeux sur D: en les faisant virtuellement apparaître sur C:. Je pourrai les remettre sur C: de manière transparente pour mes logiciels et mon système le jour où j’aurai un disque plus important. Souplesse, et pérennité de la configuration donc…
Remarque: si le disque n’est pas attaché, cela m’empêche juste de lancer les jeux
Mise en place
Côté pratique, j'utilise Windows 7 pour "monter" ces disques dans mon système de fichier. Il suffit d'utiliser le Disk Management pour cela (commande "diskmgmt.msc") et vous pourrez créer, attacher, détacher, assigner une lettre à un VHD attaché etc.
Lorsque vous attacherez la 1ère fois un nouveau disque, le Disk Management vous proposera si vous voulez l’utiliser comme un nouveau lecteur (E:, F: etc.) ou bien le “monter” dans un répertoire de votre système de fichiers.

Ici, j'ai deux disques virtuels Labs et Games, qui ne me prennent que quelques Gigas chacun en taille réelle et qui sont mappés respectivement sur C:\Labs et C:\Games.
Il est ainsi assez simple de déplacer un répertoire volumineux sur un autre disque. Voici comment par exemple stocker le contenu de C:\Games sur le lecteur D :
- Je renomme mon répertoire C:\Games => C:\tempGames
- Je crée un répertoire vide "Games"
- Je crée un VHD nommé "Games.vhd" sur mon disque D: et je l’attache à C:\Games
- Je déplace le contenu de tempGames vers C:\Games et cela remplit mon VHD sur D:
Résultat : un gain de place sur C: et les jeux restent installés de manière cohérente.
Attacher automatiquement les disques au démarrage
Problème : il manque la case à cocher pour réattacher un disque virtuel à chaque démarrage !
Solution : une tâche programmée qui se déclenche à chaque démarrage de votre PC et qui lance "diskpart.exe" afin d'automatiser le montage de vos disques.
Créez un fichier texte avec les commandes diskpart suivantes (selon vos disques) :
select vdisk file="C:\VHDs\labs.vhd"
attach vdisk
select vdisk file="D:\VHDs\Games.vhd"
attach vdisk
Puis définissez la tâche programmée :

Configurer la tâche pour se déclencher au démarrage du système par exemple (Trigger at System Startup), et faites-lui lancer l’action suivante :

Cette petite logistique est plutôt simple à mettre en place et j’en suis assez satisfait. Utilisez-vous cette fonctionnalité des VHD dans Windows 7 ?
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :