salut
Le but de ce tutoriel est de montrer comment utiliser l'utilitaire IMDISK pour monter un disque virtuel en RAM sous Windows 7.
L'intérêt de monter un disque en RAM est de :
- simuler un disque dur pour bénéficier des temps d'accès de la RAM
- ne pas avoir Ă supprimer des fichiers temporaires
- préserver un SSD dans le cas particuliers où on souhaite régulièrement modifier de gros fichiers
Attention. Le principe d'un RamDisk est de monter en RAM un disque virtuel. Tout ce qui ne sera pas enregistré sur un disque réel (SSD ou HDD) à la mise hors tension du PC sera perdu !
Pour donner une idée des performances voici quelques comparaisons de performances des disques matériels par rapport à un RAMDisk.
Les performances ci-dessus dépendent du matériel avec lequel le test est réalisé. Elles ne sont données qu'à titre indicatif
1) Installation de IMDISK.
Le site officiel publiant l'application permettant un RamDisk :
http://www.ltr-data.se/opencode.html/#ImDisk ou à télécharger dans la logithèque :
télécharger ImDisk A l'installation, l'application créé un nouveau panneau de contrôle visible depuis le
Panneau de Configuration Windows.
Depuis ce panneau on peut facilement créer un disque virtuel ou le supprimer.
Toutefois Windows limite certaines fonctionnalités de l'interface graphique d'IMDisk pour des raisons de sécurité. (ex : formatage du disque virtuel)
Mais il est également possible d'utiliser IMDISK en ligne de commande. C'est ce mode qui sera utilisé par la suite pour configurer un RamDisk depuis un script.
2) Création d'un RamDisk automatiquement au démarrage du PC.
2.1) Création d'un script de création de RamDisk au démarrage du PC.
Depuis un Bloc Note placer le code suivant
Code:
imdisk -a -s 1G -m X: -p "/fs:ntfs /q /y" exit
En violet : la taille du disque virtuel à créer en Go. (ici 1 Go).
En vert : le nom du lecteur de disque utilisé
Enregistrer ce script dans un fichier ayant une extension
.bat Exemple :
C:\MesScripts\RamDisk.bat 2.2) Ajouter une tâche dans le planificateur de tâche pour lancer le script au lancement du PC.
Lancer le planificateur de tâche :
- touche <Windows> + <R>
- taper
taskschd.msc puis <Enter>
Ajouter une nouvelle tâche :
- Sélectionner l'entrée
Bibliothèque du Planificateur de tâche.
- Clic droit puis choisir
Ajouter une tâche.
Configurer la tâche pour lancer le script de création de RAMDisk Depuis l'onglet général cocher
Exécuter avec les autorisations maximales. Dans l'onglet <Déclencheurs> choisir :
-
Lancer au démarrage - Cocher la case
Reporter la tâche pendant - Dans la zone de temps de report taper
au clavier : 10 secondes.
Note : Lors des essais, en mettant un délais de report au démarrage inférieur à 3 sec, le disque ne se montait pas à chaque démarrage.
Dans l'onglet <Action>, taper dans les champs :
-
Programmes/script :
cmd
- Ajouter des arguments :
/c "start /min C:\MesScript\RamDisk.bat" Dans l'onglet condition, décocher l'option
Ne démarrer la tâche que si l'ordinateur est relié au secteur.
La tâche s'enregistrera pour être lancée à chaque démarrage après avoir valider cette tâche avec le bouton <OK>. Au prochain démarrage du PC, une fenêtre noir apparaîtra transitoirement 10 secondes après le démarrage du Windows. Cette fenêtre se réduira dans la barre des tâches le temps de créer le RAMDisk. (durée d'exécution ~ 4 sec).
Ensuite un nouveau lecteur
X: sera disponible dans l'explorateur de fichier Windows. Il correspondra au RAMdisk.
3) Déplacer les répertoires temporaires Windows dans le RamDisk.
Un des inconvénients du RamDisk est qu'à l'arrêt du PC, tout ce qui s'y trouvait et qui n'a pas été copié vers un disque réel, ne sera pas conservé pour le prochain démarrage.
Cet inconvénient peut être utilisé pour les dossiers temporaires Windows qu'il faut habituellement vider manuellement. En les déplaçant vers le RamDisk, ils seront vidés automatiquement, instantanément et en totalité à chaque arrêt du PC.
Les répertoires temporaires par défaut de Windows 7 sont :
- %USERPROFILE%\AppData\Local\Temp
- %SystemRoot%\TEMP
Il est possible de déplacer des répertoires temporaires vers le RamDisk en modifiant les variables d'environnement.
- touche <Windows> + <Pause>
- Dans la colonne de droite, sélectionner
Paramètres système avancés.
- Dans l'onglet <Paramètres système avancés> cliquer sur <Variables d'environnement>
Dans la zone <Variables
Utilisateur> modifier les variables suivantes :
Variable d'environnement | Ancienne Valeur | Nouvelle valeur |
TMP | %USERPROFILE%\AppData\Local\Temp | X:\%username%\tmp |
TEMP | %USERPROFILE%\AppData\Local\Temp | X:\%username%\tmp |
Dans la zone <Variables
Système> modifier les variables suivantes :
Variable d'environnement | Ancienne Valeur | Nouvelle valeur |
TMP | %SystemRoot%\TEMP | X:\system\tmp |
TEMP | %SystemRoot%\TEMP | X:\system\tmp |
Pour accueillir ces dossiers temporaires dans le RamDisk, il faut modifier le script de création du Ramdisk pour y ajouter les instructions de création des dossiers temporaires.
Depuis le script créé précédemment (dans l'exemple :
C:\MesScripts\RamDisk.bat), ajouter en fin de fichier (juste avant la ligne
exit) les lignes suivantes :
Code:
mkdir X:\system\tmp mkdir X:\%username%\tmp
Ansi au prochain démarrage du PC, le script créera automatiquement les dossiers temporaires à la suite de la création du RamDisk.
4) Sauvegarder automatiquement des dossiers du RamDisk vers un disque dur.
4.1) Créé un dossier sur un disque dur pour stocker les données placées dans le RamDisk
Exemple :
C:\Permanent 4.2) Modifier le script de création du RamDisk pour ajouter un dossier qui sera sauvegardé sur le disque dur
Modifier le script de création de RamDisk créé précédemment en l'ouvrant dans un bloc note.
Depuis le bloc note ajouter en fin de fichier (juste avant la ligne
exit) les instructions suivantes :
Code:
mkdir X:\Permanent robocopy "C:\Permanent" "X:\Permanent" /E /R:0 /W:1
4.3) Créer un script de copie de donnée du RamDisk vers le disque dur.
Depuis un nouveau document de bloc note placer le code suivant :
Code:
robocopy "X:\Permanent" "C:\Permanent" /MIR /R:0 /W:1
Ce script utilise l'utilitaire
robocopy pour faire une copie de fichier entre X: et C:.
A noter l'option
MIR ne copie vers le
disque dur que les données qui ont changées et supprime les fichiers de "C:\Permanent" qui n'existent pas dans "X:\Permanent".
Enregistrer ce script dans un fichier ayant une extension .bat
par exemple :
C:\MesScript\SaveRamdisk.bat 4.4) Créer une tâche à exécuter à la déconnexion.
4.4.1) Pour une version de Win 7 Pro ou Intégrale : - Appuyer simultanément sur les touches <Window> + <R>
- Taper
gpedit.msc puis <Entrer>
- Ajouter un nouveau script de déconnexion dans : Configuration Utilisateur -> Windows -> Scripts.
- Double cliquer sur LogOff et Ajouter le script créé précédemment (exemple :
C:\MesScript\Logout.bat) Par défaut, Windows donne 10 minutes à ce script pour s'exécuter. Si la copie devait être plus longue, Windows interromprait le script avant la fin. (ce qui entraine la perte des données qui ne serait pas copié dans les 10 minutes qui suivent la demande d'arrêt du PC).
Pour augmenter la durée donné au script de déconnexion modifier l'entrée de police de groupe depuis
gpedit :
Sous
Configuration Ordinateur->Modèle d'administration->Système->Script -> Délai d'attente maximum pour les scripts de stratégie de groupe
Entrer un nouveau temps Ă attendre en secondes
4.4.2) Pour les versions Familiales. gpedit n'existe pas dans les versions Familiales.
Il est possible de créer un script qui s'exécute sur la déconnexion en le déclenchant sur un évènement. Le problème est que rien ne garantie que le script ait le temps de s'exécuter avant l'arrêt de Windows. Typiquement, si le script dure plus de 2 sec, il est probable qu'il soit interrompu. (entrainant la perte des données qui ne seraient pas copiées).
Par conséquent dans ces versions de Windows, pour garantir la sauvegarde, il est préférable de cliquer sur le script de sauvegarde avant d'arrêter le PC, plutôt que d'utiliser l'exécution automatique d'une tâche planifiée.
Je mets tout de même la solution de tâche planifiée à la déconnexion pour référence.
Lancer le planificateur de tâche :
- touche <Windows> + <R>
- taper
taskschd.msc puis <Enter>
Ajouter une nouvelle tâche :
- Sélectionner l'entrée
Bibliothèque du Planificateur de tâche.
- Clic droit puis choisir
Ajouter une tâche.
Configurer la tâche pour lancer le script copie de données du RamDisk vers un
disque dur : depuis l'onglet général cocher
Exécuter avec les autorisations maximales. Dans l'onglet <Déclencheur>, choisir :
- lancer la tâche
Sur un évènement.
- Journal :
Système.
- Source :
Winlogon - ID de l'évènement :
7002 Dans l'onglet <Actions>, choisir de démarrer le programme, et depuis le bouton parcourir, choisir le script créé précédemment.
exemple :
C:\MesScript\Logout.bat Dans l'onglet <Conditions>, décocher l'option
Ne démarrer la tâche que si l'ordinateur est relié au secteur. La tâche s'enregistrera pour être lancé à chaque démarrage après avoir valider cette tâche avec le bouton <OK>.
salut