Como faço para criar um disco RAM?

55

Eu quero fazer uma partição que é feita de ram ...

Exemplo

No Windows 7, você pode criar uma partição feita de RAM

insira a descrição da imagem aqui

Eu criei 1 GB de partição em RAM. usando o Primo RamDisk

Existe alguma boa alternativa no Ubuntu?

One Zero
fonte
3
O Ubuntu vem com tmpfs. Você não precisa criar um RAMDISK.
mixdev
Dependendo do caso de uso pretendido, talvez você não precise de um ramdisk para o Ubuntu (ou a maioria das distribuições de Linux). O sistema operacional armazena em cache as atividades de leitura e gravação na RAM enquanto trabalha com discos regulares. Se você ler um arquivo pequeno várias vezes, ele será buscado apenas no disco uma vez e depois recuperado do cache da RAM nos seguintes horários. Se você tiver bastante RAM, tudo o que fizer será armazenado em cache dessa maneira, para que você tenha muito pouca atividade de disco repetido. Se você deseja usar memória rápida não persistente em vez de arquivos, ainda precisa de um RAMDISK. Veja linuxatemyram.com para mais detalhes.
TafT

Respostas:

77

Isso mostrará como fazer um RAMDISK super rápido e fácil. Com um RAMDISK, você pode usar sua memória para espaço temporário e também é muito mais rápido que o seu disco rígido.

Agora vamos começar usando os próximos 2 comandos para criar seu RAMDISK.

Coloque o que você quiser que seu RAMDISK seja chamado onde eu escrevi "nameme".

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
Os comandos acima usariam 2 GB da minha RAM para o RAMDISK. Se você não tem tanta memória RAM quanto eu, usaria 512 MB ou 1 GB. Então, a seguir, criaríamos um comando para o Terminal que criará automaticamente o RAMDISK para você.

Fonte: Como criar um RAMDISK no Linux

Mitch
fonte
3
Como posso fazer isso persistir entre as reinicializações?
21416 chovy
11
Sendo a RAM, é volátil, quando você reinicia, tudo está perdido, mesmo que uma inicialização a quente, pois o BIOS / EFI apague a RAM. O melhor que você pode fazer é criar um script de shell que execute os comandos no login.
Brandon MacEachern
11
@chovy para persistir, você tem algumas opções, penso em 2 no momento. 1. escreva api para gravar no disco ram e escreva assíncrona no disco hdd. Leia sempre a partir da memória RAM, apenas na inicialização, aqueça a memória RAM do disco. 2. Chamar periodicamente algum script que copie qualquer coisa no disco ram para algum disco rígido e copie novamente uma vez após a inicialização.
Lukas
outra opção seria designar algo como /tmp/cacheo diretório de cache, onde esse diretório é realmente o ponto de montagem de um overlayfs (usando um tmpfs como o upperdir e qualquer outra coisa no sistema de arquivos normal com a qual você normalmente interage como o lowerdir). isso permitiria que você tivesse uma camada rápida e efêmera e algo capaz de ser sincronizado trivialmente se ocasionalmente quisesse tornar partes dela persistentes.
mway
chovy adicione-o ao /etc/rc.local e ele montará automaticamente a partição ... mas os dados serão perdidos.
precisa saber é o seguinte
49

O sistema de arquivos tmpfs é um RAMDISK. A seguir, será criado um RAMDISK 2G que estará sempre disponível.

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

A pasta ramdisk pertence à raiz, pois deve estar disponível na reinicialização. As permissões do ramdisk devem ser graváveis ​​por todos. As permissões padrão do tmpfs (chmod 1777) estão corretas.

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

Para tornar o ramdisk disponível permanentemente, adicione-o ao / etc / fstab.

grep /media/ramdisk /etc/mtab | sudo tee -a /etc/fstab

Você verá a linha movida de mtab para fstab. Vai parecer algo assim.

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

O RAMDISK não consumirá memória até você usá-lo. Verifique novamente os requisitos de memória durante a carga máxima do sistema. Se o RAMDISK for muito grande, seu sistema consumirá armazenamento de troca para compensar a diferença.

Para ajustar o tamanho do RAMDISK, edite o / etc / fstab e verifique remontando o ramdisk (você perderá o conteúdo atual do RAMDISK e reinicializará). A seguir, o tamanho do ramdisk mudará para 512M.

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk
rickfoosusa
fonte
11
Tecnicamente, tmpfsé um ramfs, não ramdisk .
heemayl
2
Aceita. Eu escolhi usar o RAMDISK, pois é o nome comum para isso no Windows.
Rickfoosusa
Como se pode verificar se o ramdisk está realmente em uso? Eu sempre o vejo como Usado 0%.
BTR Naidu 12/01
9

Adicionando meus 2 centavos para o caso de você não ter privilégios de root:

Citando esta resposta de unix.stackexchange

O Linux fornece um dispositivo tmpfs que qualquer usuário pode usar, / dev / shm. Por padrão, ele não é montado em um diretório específico, mas você ainda pode usá-lo como um.

Simplesmente crie um diretório em / dev / shm e faça o link simbólico para onde quiser. Você pode conceder ao diretório criado as permissões que escolher, para que outros usuários não possam acessá-lo.

Este é um dispositivo suportado por RAM, então o que há na memória por padrão. Você pode criar todos os diretórios necessários em / dev / shm

Naturalmente, os arquivos colocados aqui não sobreviverão a uma reinicialização e se sua máquina começar a trocar, / dev / shm não ajudará.

Yuval Atzmon
fonte