Ramdisk ubuntu 10.04

12

Estoy usando Ubuntu 10.04 (64 bits) para mi escritorio.
La máquina tiene una memoria RAM de 5 GB.

Quiero usar el disco RAM (1G o 2G) pero no sé cómo puedo hacer esto.

¿Hay algún producto de código abierto de disco RAM?

Benjamín
fuente

Respuestas:

18

La tecnología está integrada en el núcleo, no necesita herramientas adicionales. De hecho, ya tiene algunos discos RAM (que no debe usar, están reservados para el sistema), que puede ver haciendo

grep -w tmpfs /proc/mounts

Para configurar un disco RAM de 2GB montado en /ramdisk, agregue la siguiente línea a /etc/fstab:

ramdisk  /ramdisk  tmpfs  mode=1777,size=2g

Luego monte el disco con el comando mount /ramdisk(esto se hará automáticamente cuando reinicie).

El tamaño indicado es máximo, el disco solo usa tanta memoria como los archivos que tiene.


Puede cambiar /tmppara ser un disco RAM. En la /etc/fstablínea de arriba, pon en /tmplugar de /ramdisk, luego reinicia.

La primera vez que reinicie después de cambiar /tmppara ser un disco RAM, los archivos que estaban en /tmpestarán ocultos. Eso es inofensivo, excepto que están desperdiciando un poco de espacio en disco. Puede limpiarlos ( después de reiniciar con /tmpel disco RAM) haciendo

mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt

El mount --bindcomando crea /mntuna vista duplicada de su sistema de archivos raíz; pero mientras el disco RAM ahora se oculta /tmpen la vista raíz, nada está oscureciendo /mnt/tmp.

AGREGADO : puede cambiar /tmpa un disco RAM sin reiniciar, es un poco más complicado. Agregue la línea a la /etc/fstabanterior, luego ejecute los siguientes comandos:

mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .

Luego elimine /tmp.olddespués de su próximo reinicio.

La razón por la que no puede simplemente mover archivos de /tmp.olda /tmpes que algunos programas críticos tienen archivos abiertos /tmp, por ejemplo, en los /tmp/.X11-unix/X0que el servidor X escucha y cada programa GUI se abre cuando se inicia. Mover un archivo a un sistema de archivos diferente significa copiarlo y eliminar el anterior, por lo que terminaría con el servidor X todavía escuchando /tmp.old/.X11-unix/X0pero los clientes X contactando /tmp/.X11-unix/X0en vano. En un servidor, puede salirse con la suya si tiene cuidado.

Gilles 'SO- deja de ser malvado'
fuente
@giles: ¿Hay alguna manera de hacer esto sin cambiar fstab y reiniciar? Supongo que hay un método mkfs correspondiente, seguido de un montaje, pero "man mkfs" no fue muy útil.
hotei
1
@hotei: El reinicio es solo para cambiar /tmpa tmpfs. No es necesario, y he editado mi respuesta para explicar cómo hacerlo, pero es más complicado. No hay nada mkfsinvolucrado porque no hay almacenamiento subyacente para preparar, el núcleo maneja todo.
Gilles 'SO- deja de ser malvado'
@giles: Gracias por la actualización. Me faltaba la parte donde "ocurre la magia" durante la lectura de la línea fstab de la montura. Creo que entiendo por qué funciona ahora.
hotei
¿Puedo preguntar si esto resulta en una aceleración notable?
Robert Massaioli
@Robert: Creo que causó una notable aceleración en el SSD muy lento de mi netbook (principalmente porque las sincronizaciones pueden durar varios segundos y /tmpen el disco aumenta la frecuencia de las sincronizaciones), pero esta es una impresión subjetiva poco confiable. Nunca he tratado de comparar.
Gilles 'SO- deja de ser malvado'