Ramdisk ubuntu 10.04

12

Estou usando o Ubuntu 10.04 (64 bits) para minha área de trabalho.
A máquina tem 5 GB de RAM.

Eu quero usar o disco RAM (1G ou 2G), mas não sei como posso fazer isso.

Existe algum produto de código aberto de disco RAM?

    
por Benjamin 14.08.2010 / 16:39

1 resposta

18

A tecnologia é construída no kernel, você não precisa de ferramentas extras. Na verdade, você já tem alguns discos RAM (que você não deveria usar, eles são reservados para o sistema), o que você pode ver fazendo

grep -w tmpfs /proc/mounts

Para configurar um disco RAM de 2 GB montado em /ramdisk , adicione a seguinte linha a /etc/fstab :

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

Em seguida, monte o disco com o comando mount /ramdisk (isso será feito automaticamente quando você reiniciar).

O tamanho indicado é o máximo, o disco usa apenas a quantidade de memória dos arquivos que estão nele.

Você pode alterar /tmp para ser um disco RAM. Na linha /etc/fstab acima, coloque /tmp em vez de /ramdisk e, em seguida, reinicialize.

Na primeira vez que você reinicializar após alterar /tmp para ser um disco RAM, os arquivos que estavam em /tmp serão ocultados. Isso é inofensivo, exceto que eles estão desperdiçando um pouco de espaço em disco. Você pode limpá-los ( após ter reiniciado com /tmp no disco RAM) fazendo

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

O comando mount --bind torna /mnt uma visualização duplicada do seu sistema de arquivos raiz; mas enquanto o disco RAM agora obscurece /tmp na visão raiz, nada está obscurecendo /mnt/tmp .

ADICIONADO : você pode trocar /tmp para um disco RAM sem reiniciar, é um pouco mais complicado. Adicione a linha a /etc/fstab como acima e execute os seguintes comandos:

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

Em seguida, exclua /tmp.old após sua próxima reinicialização.

O motivo pelo qual você não pode simplesmente mover arquivos de /tmp.old para /tmp é que alguns programas críticos têm arquivos abertos em /tmp , por exemplo /tmp/.X11-unix/X0 que o servidor X atende e todo programa GUI é aberto quando começa. Mover um arquivo para um sistema de arquivos diferente significa copiá-lo e excluí-lo, então você acabaria com o servidor X ainda atendendo em /tmp.old/.X11-unix/X0 , mas os clientes X entrando em contato com /tmp/.X11-unix/X0 em vão. Em um servidor, você pode se safar se for cuidadoso.

    
por 14.08.2010 / 18:23