Inhaltsverzeichnis
TMPFS unter Ubuntu / Kubuntu / Xubuntu einrichten
Aus verschiedenen Gründen kann es sinnvoll sein bestimmte Bereiche des Dateisystems nicht auf Festplatte, sondern im Arbeitsspeicher zu haben. Die gewichtigsten sind Geschwindigkeit und Sicherheit. Der Arbeitsspeicher ist sehr viel schneller als jede Festplatte, entsprechend können Daten dort auch schneller gelesen und geschrieben werden. Insbesondere bei langsamen Festplatten (besonders bei Netbooks und billigen Notebooks) führt das zu einer erheblichen Beschleunigung des Gesamtsystems. Die Sicherheit wird in dem Sinne erhöht, dass sensible Temporärdaten nicht auf Festplatte gespeichert werden, wo sie bei Verlust des Rechners wiederhergestellt werden könnten, auch wenn sie gelöscht wurden. Zwar könnte man die entsprechenden Bereiche auch verschlüsseln, aber das verlängert die Startzeit und benötigt nicht unerhebliche Systemresourcen, die insbesondere bei Netbooks die Systemleistung herunterziehen. Der dritte Grund ist die Vermeidung von Hardwareschäden bei modernen SSD-Festplatten, wie sie in teureren Notebooks und Desktop-PC verbaut werden. Die darin eingesetzten Speicher haben nur eine begrenzte Anzahl von Speicherzyklen. Durch intelligente Controller, die zum Beispiel verhindern, dass immer wieder in den gleichen Zellen geschrieben wird, lässt sich die Gesamtlebensdauer erheblich erhöhen, aber eben doch nicht unendlich. Während für Betriebssystem, Programme und selbst Nutzerdaten kaum Schreibzugriffe stattfinden, die Sachen werden einmal auf der Platte abgelegt und dann nur noch sehr selten verändert, sieht das bei Temporärdaten ganz anders aus. Die können sehr viel öfter geschrieben werden, was zu einer entsprechenden Belastung für die SSD-Festplatte führt, zumal die Daten ja eigentlich nach dem Herunterfahren des Rechners nicht mehr gebraucht werden oder sogar ein Sicherheitsrisiko sind.
Das alles sind gute Gründe für den Einsatz von TMPFS.
Vorbereitung
TMPFS ist bei allen gängigen Linux-Distributionen ein fester Bestandteil, so auch bei Ubuntu und seinen Derivaten. Deswegen ist keine eigentliche Installation nötig, sondern nur die Konfiguration. Bevor man an die eigentliche Konfiguration geht, sollte man sich überlegen, welche Bereiche des Verzeichnisbaumes überhaupt in ein TMPFS abgelegt werden sollen. Auf keinen Fall darf man das mit Daten machen, die dauerhaft gespeichert werden müssen und dazu gehören oft auch Spool-Verzeichnisse (Mail etc), auch wenn die Daten dort nur vorübergehend liegen. In solchen Fällen ist eine Festplattenverschlüsselung vorzuziehen. Das muss der User im Einzelfall selbst wissen, eine generelle Aussage kann man an dieser Stelle nicht treffen! In den meisten Fällen geht es aber um Verzeichnisse wie /tmp oder /var/tmp, in denen fast alle Anwendungsprogramme und das Betriebssystem die Temporärdaten ablegen, die wie eingangs beschrieben oft sensitive Informationen enthalten, aber nicht über das Ende der Session benötigt werden. Das nachfolgende Beispiel richtet den Computer so ein, dass diese beiden Verzeichnisse im Arbeitsspeicher und nicht mehr auf der Festplatte liegen.
Installation
Mit Administratorrechten (sudo) und einem Editor der Wahl (zum Beispiel nano) ist die Datei /etc/fstab zu öffnen und folgende Zeile ganz am Ende hinzuzufügen
tmpfs /tmp tmpfs rw 0 0 tmpfs /var/tmp tmpfs rw 0 0
Nach einem Neustart erscheinen sie in der Liste der gemounteten Dateisysteme. Bei mir sieht das so aus:
root@mars:~# mount /dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0) proc on /proc type proc (rw,noexec,nosuid,nodev) none on /sys type sysfs (rw,noexec,nosuid,nodev) fusectl on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) none on /dev type devtmpfs (rw,mode=0755) none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) none on /dev/shm type tmpfs (rw,nosuid,nodev) tmpfs on /tmp type tmpfs (rw) none on /var/run type tmpfs (rw,nosuid,mode=0755) none on /var/lock type tmpfs (rw,noexec,nosuid,nodev) tmpfs on /var/tmp type tmpfs (rw) none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
Hinweise
TMPFS kann im Detail konfiguriert werden, wobei das für viele nicht nötig ist. TMPFS belegt nur so viel Arbeitsspeicher, wie es tatsächlich braucht und standardmäßig nie mehr als 50% des gesamten Arbeitsspeicher. Das kann geändert werden und wer glaubt, mit den voreingestellten Werten nicht auszukommen, sollte einen Blick in
man mount
werfen und dort besonders in die Sektion „Mount options for tmpfs“. Diese Optionen können auch in die /etc/fstab eingetragen werden. Auf einer Workstation mit genügend RAM bin ich mit den Standardwerten immer gut gefahren, nur wenn man spezielle Bedürfnisse, viel oder sehr wenig Arbeitsspeicher hat, lohnt sich eine Anpassung.