Creando un Ramdisk sobre Linux

0 Comments

Un RAM disk es una porcion de memoria ram la cual se utiliza como si fuera un disco duro. Los discos RAM tienen tamaños establecidos que son como una particion de disco. Los tiempos de acceso para un disco RAM son mucho mas rapidos que en un disco fisico. Sin embargo, cualquier informacion guardad en un ram disk se pierde cuando el sistema se apaga o reinicia. Pero son un buen lugar para almacenamiento temporal de datos.

Desde la version 2.4 del kernel de linux se puede encontrar soporte para ramdisks, por lo cual se puede encontrar en cualquier distro moderna de linux. Al momento de redactar este documento estoy utilizando Ubuntu 8.04 Hardy Heron con kernel 2.6.24-19-generic. Ubuntu y Debian autmontan un ramdisk utilizando tmpfs. Este dispositivo se monta en /dev/shm y esta disponible para cualquier usuario del sistema. El disco ram es dinamico por lo cual cambia su tamaño automaticamente y puede utilizar hasta la mitad de la ram disponible.

Soporte para discos RAM

Por default Ubuntu ya tiene creados 16 discos ram, aunque no estan activos ni utilizando nada de nuestra ram. Actualmente mi sistema reporta 768MB de ram, para verificar o saber cuanta memoria tiene una pc en linux tecleamos:

fher98@betuntu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           748        729         19          0         50        304
-/+ buffers/cache:        374        374
Swap:         2180        173       2007

Utilizando el comando dmesg podemos verificar el tamaño de los ramdisks.

fher98@betuntu:~$ sudo dmesg | grep RAMDISK
[sudo] password for fher98:
[   23.897741] RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize

Como podemos ver, el tamaño por default del ramdisk es de 64MB. A continuacion veremos los pasos de configuracion en linux para que utilizar un disco ram mayor durante el booteo.

Incrementando la capadicad del ramdisk

El tamaño del disco RAM esta definido por una opcion en la linea de comandos dirigida al kernel durante el arranque. Ya que GRUB es el bootloader soportado por omision en Ubuntu vamos a editar /boot/grub/menu.lst

fher98@betuntu:~$ sudo vim /boot/grub/menu.lst

Buscamos estas lineas en el archivo y agregamos ramdisk_size =xxxxxx al final de la linea del kernel.

archivo: /boot/grub/menu.lst

 

## ## End Default Options ##

title           Ubuntu 8.04.1, kernel 2.6.24-19-generic
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-19-generic root=UUID=e36ac08a-eba8-4cfa-baae-61c9ca10e80a ro quiet splash
initrd          /boot/initrd.img-2.6.24-19-generic
quiet

Donde ramdisk_size =xxxxxx es el tamaño especificado para el disco virtual. Si reemplazamos xxxxxx por 650000 tendremos un disco de 650MB.

Despues de la modificacion al archivo la linea del kernel deberia estar asi:

archivo: /boot/grub/menu.lst

 

## ## End Default Options ##

title           Ubuntu 8.04.1, kernel 2.6.24-19-generic
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-19-generic root=UUID=e36ac08a-eba8-4cfa-baae-61c9ca10e80a ro quiet 
splash ramdisk_size=650000
initrd          /boot/initrd.img-2.6.24-19-generic
quiet

Es necesario reiniciar el sistema para que los cambios al ramdisk (/dev/ram) tomen efecto.

Ahora que ya tenemos configurado el tamaño de nuestro disco es necesario crear el sistema de archivos en /dev/ram0 y luego montarlo para poder guardar arhivos en el.

fher98@betuntu:~$ sudo mke2fs /dev/ram0 
fher98@betuntu:~$ cd /media/
fher98@betuntu:~$ sudo mkdir ramdisk
fher98@betuntu:~$ sudo mount /dev/ram0 /media/ramdisk/
fher98@betuntu:~$ sudo chmod -R 777 ramdisk/

Via | Vanemery – Ubuntu

Deja tus preguntas o comentarios