jeudi 4 novembre 2010

Faire un RamDisk sous linux

Un RAM-disque est un disque virtuel qui utilise une partie de la mémoire centrale de l'ordinateur, la mémoire vive, en tant que mémoire de masse, une fonction habituellement effectuée par les disques durs. Les temps d'accès sont grandement améliorés, car la mémoire vive a un temps d'accès approximativement 1000 fois plus court que les disques durs.

Sous Debian / Ubuntu :

Pour créer un RamDisk dans /tmp/ramdisk, une fois (au prochain redémarrage, il n'y aura pas de ramdisk), vous devez taper les commande suivantes :

  • sudo mkdir /tmp/ramdisk0    (créer un point de montage)
  • sudo mke2fs /dev/ram0    (créer / formater un système de fichiers)
  • sudo mount /dev/ram0 /tmp/ramdisk0    (monter le ramdisk)
  • sudo chmod ugoa+rwx /tmp/ramdisk0    (Donner tous les droits d'exécutions pour que root ne soit pas le seul autorisé a écrire)

Pour qu'a chaque démarrage, le RamDisk soit crée (souvenez-vous que les informations étant en ram, tout est pderdu si le PC est éteint), ces informations doivent être incorporé au fichier /etc/rc.local

sudo vi /etc/rc.local

Placez les lignes suivantes devant le exit 0 :

Code: 
 
### DEBUT CREATION RAMDISK ###
mkdir /tmp/ramdisk0
mke2fs /dev/ram0
mount /dev/ram0 /tmp/ramdisk0
chmod ugoa+rwx /tmp/ramdisk0
### FIN CREATION RAMDISK ###
exit 0



Pour modifier la taille max du RamDisk (par default le ramdisk est limité à 64 Mo) à 1,5 Go sous linux, on doit modifier le fichier de menu ( /boot/grug/menu.lst ) de grub, l'utilitaire qui permet de démarrer linux :

sudo vi -w /boot/grub/menu.lst

Après de nombreuses lignes de commentaires vous avez le menu de démarrage :

## ## End Default Options ##

title      Ubuntu 9.04, kernel 2.6.28-11-generic
uuid      40c76d23-89f7-4844-b3f7-00c5cb6cfb09
kernel      /boot/vmlinuz-2.6.28-11-generic root=UUID=40c76d23-89f7-4844-b3f7-00c5cb6cfb09 ro quiet splash
initrd      /boot/initrd.img-2.6.28-11-generic
quiet

title      Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid      40c76d23-89f7-4844-b3f7-00c5cb6cfb09
kernel      /boot/vmlinuz-2.6.28-11-generic root=UUID=40c76d23-89f7-4844-b3f7-00c5cb6cfb09 ro  single
initrd      /boot/initrd.img-2.6.28-11-generic

title      Ubuntu 9.04, memtest86+
uuid      40c76d23-89f7-4844-b3f7-00c5cb6cfb09
kernel      /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

Il faut rajoutez à la fin de la ligne ramdisk_size=1500000 sur la ligne kernel utilisée :
(1 500 000 donnant un RamDisk d'une taille maximum de 1,5 Go)

Ligne kernel avant modification :
Code:
 
kernel      /boot/vmlinuz-2.6.28-11-generic root=UUID=40c76d23-89f7-4844 b3f7-00c5cb6cfb09 ro quiet splash
Ligne kernel aprés modification :

Code: 
kernel      /boot/vmlinuz-2.6.28-11-generic root=UUID=40c76d23-89f7-4844-b3f7-00c5cb6cfb09 ro quiet splash ramdisk_size=1500000
Information importante : Sous linux un RamDisk ne prend de la place en RAM qu'a hauteur des fichiers copiés dessus. La création de ce RamDisk de taille maximum de 1,5 Go ne prendras pas de place en RAM tant que vous n'y mettrez pas de fichiers.

Aucun commentaire:

Enregistrer un commentaire