Wie mache ich eine RAM-Disk?


55

Ich möchte eine Partition erstellen, die aus RAM besteht ...

Beispiel

In Windows 7 können Sie eine Partition erstellen, die aus RAM besteht

Bildbeschreibung hier eingeben

Ich habe 1 GB Partition im RAM erstellt. mit Primo RamDisk

Gibt es eine gute Alternative in Ubuntu?


3
Ubuntu kommt mit tmpfs. Sie müssen keine RAMDISK erstellen.
Mixdev

Abhängig von Ihrem beabsichtigten Anwendungsfall benötigen Sie möglicherweise keine Ramdisk für Ubuntu (oder die meisten Linux-Distributionen). Das Betriebssystem speichert Lese- und Schreibvorgänge im RAM, während es mit normalen Datenträgern arbeitet. Wenn Sie eine kleine Datei mehrmals lesen, wird sie nur einmal von der Festplatte abgerufen und dann zu den folgenden Zeiten aus dem RAM-Cache abgerufen. Wenn Sie über ausreichend RAM verfügen, wird alles, was Sie tun, auf diese Weise zwischengespeichert, sodass Sie nur sehr wenig Aktivität auf der Festplatte erhalten. Wenn Sie nicht persistenten schnellen Speicher anstelle von Dateien verwenden möchten, benötigen Sie noch eine RAMDISK. Weitere Informationen finden Sie unter linuxatemyram.com .
6.

Antworten:


77

Dies wird Ihnen zeigen, wie Sie eine RAMDISK schnell und einfach erstellen können. Mit einem RAMDISK können Sie Ihren Speicher für temporären Speicherplatz verwenden und es ist auch viel schneller als Ihre Festplatte.

Nun können Sie mit den nächsten 2 Befehlen beginnen, um Ihre RAMDISK zu erstellen.

Platziere deine RAMDISK an der Stelle, an der ich "nameme" geschrieben habe.

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
Die obigen Befehle würden 2 GB RAM für die RAMDISK verwenden. Wenn Sie nicht so viel RAM wie ich haben, würde ich 512 MB oder 1 GB verwenden. Als nächstes sollten Sie einen Befehl für Terminal erstellen, der automatisch die RAMDISK für Sie erstellt.

Quelle: So erstellen Sie eine RAMDISK unter Linux


3
Wie kann ich dies zwischen Neustarts beibehalten?
Chovy

1
Da es sich um RAM handelt, ist es flüchtig. Wenn Sie neu starten, geht alles verloren, auch wenn ein Warmstart durch BIOS / EFI das RAM löscht. Am besten erstellen Sie ein Shell-Skript, das die Befehle bei der Anmeldung ausführt.
Brandon MacEachern

1
@chovy zu bestehen, Sie haben ein paar Optionen, ich denke über 2 im Moment. 1. Schreiben Sie eine API, um auf die RAM-Festplatte zu schreiben, und eine asynchrone, um auf die Festplatte zu schreiben. Immer vom RAM lesen, nur beim Booten RAM von der Festplatte aufwärmen. 2. Rufen Sie von Zeit zu Zeit ein Skript auf, das alles auf einer RAM-Festplatte auf eine HDD-Festplatte kopiert und nach dem Start erneut kopiert.
Lukas

Eine andere Möglichkeit wäre, so etwas wie /tmp/cacheIhr Cache-Verzeichnis zu bestimmen, in dem dieses Verzeichnis tatsächlich der Mountpunkt eines Overlays ist (unter Verwendung eines tmpfs als oberes Verzeichnis und was auch immer auf Ihrem normalen Dateisystem, mit dem Sie normalerweise interagieren würden, als unteres Verzeichnis). Auf diese Weise erhalten Sie eine schnelle, kurzlebige Ebene und etwas, das trivial synchronisiert werden kann, wenn Sie gelegentlich Teile davon dauerhaft machen möchten.
mway

chovy füge es zu /etc/rc.local hinzu und es wird automatisch die Partition mounten ... aber die Daten gehen verloren.
777Anon

49

Das tmpfs-Dateisystem ist ein RAMDISK. Im Folgenden wird ein 2G RAMDISK erstellt, der immer verfügbar ist.

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

Der Ramdisk-Ordner gehört root, da er beim Neustart verfügbar sein soll. Die Ramdisk-Berechtigungen sollten für alle schreibbar sein. Die tmpfs-Standardberechtigungen (chmod 1777) sind korrekt.

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

Um die Ramdisk dauerhaft verfügbar zu machen, fügen Sie sie zu / etc / fstab hinzu.

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

Sie werden sehen, dass die Linie von mtab nach fstab verschoben wurde. Es wird ungefähr so ​​aussehen.

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

Der RAMDISK belegt erst dann Speicherplatz, wenn Sie ihn verwenden. Überprüfen Sie Ihren Speicherbedarf bei maximaler Systemauslastung. Wenn die RAMDISK zu groß ist, verbraucht Ihr System Swap-Speicher, um den Unterschied auszugleichen.

Um die Größe der RAMDISK anzupassen, bearbeiten Sie / etc / fstab und überprüfen Sie dies, indem Sie die Ramdisk erneut einbinden (der aktuelle RAMDISK-Inhalt geht beim Neustart verloren). Im Folgenden wird die Größe der Ramdisk auf 512 MB geändert

# 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

1
Technisch gesehen tmpfshandelt es sich um eine ramfs, nicht um eine Ramdisk .
Heemayl

2
Zustimmen. Ich habe mich für RAMDISK entschieden, da dies unter Windows der gebräuchliche Name ist.
Rickfoosusa

Wie kann man überprüfen, ob die Ramdisk wirklich in Gebrauch ist? Ich sehe es immer als Gebraucht 0%.
BTR Naidu

9

Füge meine 2 Cent für den Fall hinzu, dass du keine Root-Rechte hast:

Zitiert aus dieser Antwort von unix.stackexchange

Linux stellt ein tmpfs-Gerät zur Verfügung, das jeder Benutzer verwenden kann, / dev / shm. Standardmäßig ist es nicht an ein bestimmtes Verzeichnis angehängt, Sie können es jedoch weiterhin als solches verwenden.

Erstellen Sie einfach ein Verzeichnis in / dev / shm und verknüpfen Sie es mit einem Symbol, wo immer Sie möchten. Sie können dem erstellten Verzeichnis beliebige Berechtigungen zuweisen, sodass andere Benutzer nicht darauf zugreifen können.

Dies ist ein RAM-gestütztes Gerät. Was sich also dort befindet, ist standardmäßig im Speicher. Sie können beliebige Verzeichnisse in / dev / shm erstellen

Natürlich überstehen die hier abgelegten Dateien einen Neustart nicht, und wenn Ihr Computer zu tauschen beginnt, hilft Ihnen / dev / shm nicht weiter.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.