Ich erstelle eine RAM-Disk auf Ubuntu 16.10 (läuft innerhalb einer VM) mit den folgenden Befehlen
sudo mkdir -p /media/RAMDisk sudo mount -t tmpfs -o Größe=2048M tmpfs /Medien/RAMDisk
Wenn ich danach in die RAMDisk gehe und dies mache,
df.
Ich bekomme folgendes
tmpfs 2097152 0 2097152 0% /Medien/RAMDisk
So weit, ist es gut.
Dann starte ich Ubuntu neu (wodurch die über Workstation Pro laufende VM neu gestartet wird).
Nach dem Neustart erwarte ich, dass der /media/RAMDisk
Ordner entweder gar nicht existiert oder alstmpfs
Dateisystem ohne Inhalt.
Der /media/RAMDisk
Ordner existiert zwar ohne Inhalt, aber überraschenderweise als /dev/sda1
Dateisystem. Wenn ich df .
dies mit mache /media/RAMDisk
, sehe ich Folgendes:
/dev/sda1 17413904 9577448 6928836 59% /
Nun könnte ich die Befehle problemlos in mein Programm eingeben .bashrc
und sie ausführen lassen, sodass sie jedes Mal die richtigen Dinge tun, aber ich muss wissen, was vor sich geht.
Und könnte mein virtueller Maschinenmanager – Workstation Pro – etwas bewirken?
Antwort1
Was ist los?
Nichts Ungewöhnliches.
df /media/RAMDisk
Wenn sich Sie auf beziehen /dev/sda1
, erfahren Sie, dass das Verzeichnis momentan zu dem Dateisystem gehört, auf /dev/sda1
dem gemountet ist /
.
Dies liegt daran, dass die Wirkung Ihres mount
Befehls nicht dauerhaft ist und einen Neustart nicht übersteht. Andererseits hat der mkdir
Befehl ein Verzeichnis innerhalb des Dateisystems erstellt /dev/sda1
und dieses Dateisystem wird nach jedem Neustart gemountet, sodass das Verzeichnis selbst erhalten bleibt, allerdings als Teil des /dev/sda1
Dateisystems.
Sie müssen RAMDisk
irgendwie nach (oder bei) jedem Bootvorgang mounten.
Wie montieren?
mount
Von innen heraus wegzulaufen .bashrc
ist keine gute Idee, denndiese Datei kann mehrfach als Quelle verwendet werdenwährend einer einzelnen Sitzung. Da Sie es sudo
sowieso brauchen, ist es besser, /etc/rc.local
das zu verwenden, das einmal beim Starten des Betriebssystems ausgeführt wird.
Noch besser ist es jedoch, wenn Sie Ihrer die folgende Zeile hinzufügen /etc/fstab
:
tmpfs /media/RAMDisk tmpfs defaults,nosuid,nodev,size=2048M 0 0
Informieren Sie sich user
über noauto
die Optionen (siehe man 5 fstab
), vielleicht möchten Sie diese verwenden und mount /media/RAMDisk
nur bei Bedarf aufrufen.
systemd
?
Diese Seitelässt mich glauben, dass Sie eine Einheit ausführen können systemd
, wenn sich ein bestimmter Benutzer zum ersten Mal anmeldet, und sie beenden können, sobald die letzte Sitzung für den Benutzer geschlossen ist. Ich bin nicht sehr vertraut mit systemd
, daher kann ich Ihnen nicht sagen, wie (ob) Sie dies mit einer Einheit tun können .mount
.
Wenn Sie jedoch verwenden systemd
, sollte bereits ein persönlicher tmpfs
Proxy auf installiert sein /run/user/<UID>
. Der systemweite Proxy sollte auf installiert sein /dev/shm
.
Um/media/
Beachten Sie auch, /media/
dass Ubuntu Mountpoints verwendet, um z. B. für externe USB-Laufwerke zu erstellen (ich glaube, das udisks2
ist dafür verantwortlich). Sie sehen vielleicht /media/<username>/<label>
so aus, also wird es vermutlich /media/RAMDisk
nicht mit irgendetwas kollidieren. Generell würde ich die Verwendung dieses Speicherorts jedoch vermeiden. In meinen Systemen (Debian, Kubuntu, Raspbian, OpenWRT) verwende ich es /mnt/<something>
und hatte noch nie Probleme.