Erstellen Sie unter Linux eine RAM-Disk, die das Dateisystem nach dem Neustart nicht ändert

Erstellen Sie unter Linux eine RAM-Disk, die das Dateisystem nach dem Neustart nicht ändert

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/RAMDiskOrdner entweder gar nicht existiert oder alstmpfsDateisystem ohne Inhalt.

Der /media/RAMDiskOrdner existiert zwar ohne Inhalt, aber überraschenderweise als /dev/sda1Dateisystem. 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 .bashrcund 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/RAMDiskWenn sich Sie auf beziehen /dev/sda1, erfahren Sie, dass das Verzeichnis momentan zu dem Dateisystem gehört, auf /dev/sda1dem gemountet ist /.

Dies liegt daran, dass die Wirkung Ihres mountBefehls nicht dauerhaft ist und einen Neustart nicht übersteht. Andererseits hat der mkdirBefehl ein Verzeichnis innerhalb des Dateisystems erstellt /dev/sda1und dieses Dateisystem wird nach jedem Neustart gemountet, sodass das Verzeichnis selbst erhalten bleibt, allerdings als Teil des /dev/sda1Dateisystems.

Sie müssen RAMDiskirgendwie nach (oder bei) jedem Bootvorgang mounten.


Wie montieren?

mountVon innen heraus wegzulaufen .bashrcist keine gute Idee, denndiese Datei kann mehrfach als Quelle verwendet werdenwährend einer einzelnen Sitzung. Da Sie es sudosowieso brauchen, ist es besser, /etc/rc.localdas 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 noautodie Optionen (siehe man 5 fstab), vielleicht möchten Sie diese verwenden und mount /media/RAMDisknur 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 tmpfsProxy 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 udisks2ist dafür verantwortlich). Sie sehen vielleicht /media/<username>/<label>so aus, also wird es vermutlich /media/RAMDisknicht 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.

verwandte Informationen