Archiv der Kategorie: Betriebssystem

Dateisysteme für Linux

Bei Dateisystemen gibt es keinen Stillstand. Im Hinblick auf ihre immense Verantwortung geschehen aber alle Fortschritte zäh, konservativ und abseits der öffentlichen Wahrnehmung. Ubuntus aktuelle Parteinahme für ZFS sorgt für frische Diskussion.

Seit vielen Jahren gilt das Dateisystem Ext4 als Standard auf dem Linux-Desktop, zumeist auch auf Servern. Eindeutige Plädoyers für andere Dateisysteme wie etwa beim NAS-System Freenas für ZFS blieben rar. 2017 schlug sich Open Suse Leap auf die Seite von BTRFS, und neuerdings hat Ubuntu ZFS in die Desktop-Installation integriert (wenn auch optional). Wir nehmen dies zum Anlass für einen Heftschwerpunkt zum Thema „Dateisysteme“. Dieser erste Beitrag soll die Bedeutung und prinzipielle Funktionsweise von Dateisystemen skizzieren, die wichtigsten kurz charakterisieren und die erweiterten Fähigkeiten von Dateisystemen diskutieren. Dies führt dann zwangslos zu Fragen, für welche Szenarien sich welche Dateisysteme am besten eignen und ob der Linux-Desktop tatsächlich eine Abkehr vom bisherigen Ext4-Standard benötigt.

Die nachfolgenden vier Artikel führen dann in den praktischen PC-Alltag und zeigen Basiskonfiguration und Tuning-Tipps für die Linux-Dateisysteme Ext4, ZFS, BTRFS und für Windows-Alternativen für den Datenaustausch.

1. Dateisysteme: Die sichtbare Spitze

Am Linux-Desktop zeigen sich Dateisysteme nur an zwei Stellen deutlich: bei der (manuellen) Installation und in der Laufwerksverwaltung. Die Installation bietet die Formatierung mit Ext2/3/4, XFS, JFS, BTRFS, eventuell ZFS, die Laufwerksverwaltung hat in der Regel zusätzlich NTFS und FAT32, exFAT im Angebot. Inaktive (ausgegraute) Linux-Dateisysteme lassen sich durch Nachinstallationen passender Pakete aktivieren.

Die Aktion, ein Laufwerk oder einen Teil dessen (Partition) mit einem Dateisystem zu versehen, nennt sich bekanntlich „Formatieren“. Optionales Partitionieren (Aufteilen) eines Laufwerks ist einer Formatierung vorgeschaltet. Dort und in der daraus resultierenden Partitionstabelle geht es darum, ein Laufwerk aus organisatorischen Gründen in mehrere Bereiche aufzuteilen (Partitionen). Sobald eine Partition anschließend durch ein Dateisystem formatiert wird, erhält die Partition in der Partitionstabelle eine knappe Kennziffer, um welches Dateisystem es sich handelt.

Die sichtbare Spitze des Eisbergs „Dateisystem“ wird wesentlich größer, sobald die zugehörigen Terminaltools zum Einsatz kommen. Erst diese zeigen die Komplexität und die Tatsache, dass ein Formatieren mit grafischen Werkzeugen für zahlreiche Parameter einfach bewährte Kompromisswerte setzt. Ein besonders wichtiger Parameter ist die Block- oder Clustergröße, die standardmäßig 512 Bytes, heute meist 4 KB beträgt.

Wichtig und sichtbar für den Anwender sind ferner Standardverzeichnisse eines Dateisystems. Diese sind allerdings bloße Namen, Konvention und Tradition, und vom eigentlichen Handwerk des Dateisystems Lichtjahre entfernt.

Dateisysteme auf Desktop und Terminal: Grafische Tools zeigen nur die Spitze des Eisbergs und formatieren mit Standards. Wer spezielle Wünsche hat, muss Terminalwerkzeuge verwenden.

2. Dateisystem-Pflicht: Die Übersetzungsleistung

Dateisysteme kennen Pflicht und Kür (dazu später). Unabdingbare Pflicht für jedes Dateisystem ist es, angeforderte Dateien zu finden und bereitzustellen. Die Tatsache, dass sich Dateien über hierarchische Pfade, über Namen, Extensionen oder Datumsangaben aufrufen oder filtern lassen, erfordert erheblichen Verwaltungsaufwand. Der Controller der Hardware (Festplatte, SSD) kann jede Einheit (Sektor, Block) in Milli- oder Mikrosekunden ansteuern. Aber er braucht die exakte Kennziffer der gewünschten Einheit: Ordner und Dateinamen sind ihm so fremd wie der Dateibegriff insgesamt. Wenn ein Laufwerk die Bits aus etlichen angeforderten Blöcken ausliefert, weiß es weder, dass es sich um eine zusammengehörige Datei handelt, noch weniger, dass diese sich in einem bestimmten Ordner befindet und einen Namen besitzt. Nebenbei: Auch die Einteilung in Partitionen ist der Hardware unbekannt. Das ist alles Aufgabe des Dateisystems.

Das Dateisystem errichtet ab Formatierung eine Dateitabelle. Jede Datei erhält dort einen Eintrag mit Metadaten wie Dateiname, Erstelldatum, Rechtemaske. Format und Umfang dieser Einträge bestimmen die maximalen Datei- und Pfadnamen, maximale Dateigrößen und die Tauglichkeit für Multiuser-Systeme mit Rechteverwaltung. Entscheidend zum Auffinden der Dateiinhalte ist der Verweis auf die Zuordnungseinheiten – Cluster oder Blöcke (Cluster ist der klarere Begriff für eine Dateisystemeinheit, weil „Block“ auch Hardware-technisch die kleinste Datenträgereinheit meint). Um die Übersetzungsarbeit für die Hardware zu vereinfachen, entsprechen diese Cluster genau oder als einfaches Vielfaches der Block- oder Sektorgröße des Datenträgers – oft vier KB, sofern der Nutzer bei der Formatierung keine andere Wahl trifft. Als Clusterzeiger in der Dateitabelle dient dann eine schlichte Ziffer für den Startcluster der Datei, ferner eine weitere Ziffer für die Anzahl der Folgecluster (da eine Datei in der Regel mehrere oder viele Cluster beansprucht).

Nehmen wir an, Sie klicken im Dateimanager auf eine Datei „Rechnung_034-2020.odt“. Woher weiß das Dateisystem, dass es den Inhalt dieser Datei etwa aus den Clustern 12057, 12058 und 12116 zu laden hat? Und woher weiß das System, welche Dateinamen es anzeigen soll, wenn Sie im Home-Verzeichnis auf „Dokumente“ klicken? Anhand der kompletten Pfadangabe beginnt die Suche immer auf der obersten Ebene der Dateitabelle. Dort findet sich der Eintrag für den ersten Ordnernamen der Pfadangabe, in dessen Inhalt geht die Suche dann weiter zum nächsten Unterordner gemäß Pfadangabe bis hinunter zur gesuchten Datei.

Noch sind wir beim Eintrag der Datei in der Dateitabelle – nicht bei der Datei selbst: Wo diese liegt, zeigen nun aber die Cluster-Verweise. Startcluster und Anzahl der Cluster können nun an die Hardware weitergegeben werden. Wenn die Datei unfragmentiert ist, also der komplette Inhalt in einer zusammenhängenden Clusterfolge abgelegt ist, genügt es, den Startcluster anzuspringen und ab dort die angegebene Anzahl von Cluster einzulesen. Bei fragmentierten Dateien folgt in der Dateitabelle ein weiterer Eintrag mit dem nächsten Startcluster und der Clusteranzahl.

Teil eines Eintrag in der Dateisystemtabelle (schematisch): Das System muss Dateiinhalte aus Clustern einsammeln. Die Dateitabelle nennt nur die Anzahl der Cluster und die Kennziffer des Startclusters.

3. Dateisystem-Kür: Erweiterte Eigenschaften

Die angesprochene Kernaufgabe erledigt jedes Dateisystem. Die Limits für Pfadlänge, Dateigröße und Datenträgergröße sind zum Teil pragmatisch (Pfadlänge bei NTFS, Größen bei F2FS oder Ext2/3), ohne aber bei Desktop-Systemen an ernsthafte praktische Grenzen zu stoßen. Lediglich das alte FAT32 hat mit einer maximalen Dateigröße von nur 4 GB ein Limit, das in den PC-Alltag hineinwirkt.

Was Dateisysteme neben der Pflicht der Dateibereitstellung zusätzlich leisten sollen, wird durchaus kontrovers interpretiert. Die einzelnen Eigenschaften (siehe Tabelle) lassen sich in folgende Hauptaspekte gliedern:

1. OPTIMIERTE LEISTUNG: Während einfache Dateisysteme Schreibaktionen sofort und undifferenziert einfach in die nächstmöglichen freien Cluster schreiben, gibt es eine Reihe von intelligenteren Methoden, um erstens die Zugriffe zu beschleunigen und zweitens die Fragmentierung zusammenhängender Dateien zu verringern. Allocate-on-Flush verzögert den Schreibvorgang, um den kompletten Platzbedarf einer Datei abzuwarten und dann zusammenhängend zu speichern (unfragmentiert). Extents verschlanken die Dateisystemtabelle, indem sie bei vermehrten Metadaten selbige in normale Datencluster auslagern. Permanentes Dateisystem-Caching verwendet nur ZFS mit entsprechenden RAM-Ansprüchen.

Sparse-Dateien sind eine intelligente Antwort auf Dateien ohne Inhalt: Das Dateisystem erkennt die „Leere“ und belegt keine Cluster, selbst wenn die Metadaten eine formale Dateigrößen im MB- oder GB-Bereich definieren. Trim-Support ist eine Spezialität für SSDs, um die Hardware über gelöschte und somit freigewordene Blöcke zu informieren. Eine eher marginale Eigenschaft ist Execute-in-Place, das Programmausführung direkt vom Datenträger erlaubt (ohne Kopie in den Arbeitsspeicher), aber nur für sehr speziellen Programmecode in Betracht kommt.

2. OPTIMIERTE SICHERHEIT: Das verbreitete Journaling ist sowohl eine Sicherheitsfunktion als auch eine Leistungsoptimierung: Das Journal protokolliert entweder nur die Metadaten in der Dateitabelle oder sämtliche Änderungen an Dateiinhalten (Full Journaling). Nach Absturz, Hard Reset oder Stromausfall muss das Dateisystem dann nicht komplett geprüft werden, sondern sieht im Journal alle Dateiänderungen, die nicht ordentlich abgeschlossen wurden. Einige wenige Dateisysteme führen obendrein gesonderte Change-Logs und schreiben Checksummen in die Metadaten. Copy-on-Write (CoW) bedeutet, dass geänderte Blöcke nicht an Ort und Stelle überschrieben, sondern zunächst in freie Cluster kopiert werden. Die dadurch entstehende Redundanz ist Voraussetzung für Snapshot-Sicherung (nur BTRFS und ZFS).

3. ERWEITERTE METADATEN: Alle elaborierteren Dateisysteme notieren als Metadaten deutlich mehr als die unbedingt erforderlichen Pfade, Namen und Clusterverweise. Besitz, Dateirechte, mehrere Zeitstempel und Streams als formal unstrukturierte Metadaten sind fast überall Standard. Streams eignen sich als interne Infos für Software, aber auch als Kommentarfunktion.

4. ERWEITERTE FUNKTIONEN: Besondere Attraktivität für Anwender haben native Zusatzfunktionen des Dateisystems wie Verschlüsselung und Kompression. Hier kann das ansonsten pragmatische NTFS gegenüber den Linux-Standards klar punkten. Snapshots zur Systemsicherung bieten andererseits nur die Linux-Dateisysteme BTRFS und ZFS. Diese gehen aber noch einen ganzen Schritt weiter, indem sie einen eigenen Volume-Manager zur Laufwerksverwaltung integrieren. Funktional bedeutet das, dass Größenänderungen des Dateisystems online wie offline und mit Anschluss zusätzlicher Laufwerke möglich sind.

Dateisystem-Funktionen treten selten wie hier ins sichtbare Licht: ZFS-Snapshots erscheinen neuerdings als „History“ im Grub-Menü von Ubuntu (falls ZFS als Dateisystem arbeitet).

4. Dateisysteme und ihre Performance

Zur Leistung von Dateisystemen gibt es zahlreiche Messungen, die sich aber nicht gegenseitig bestätigen. Zuverlässiges Testen der Dateisystemleistung ist heikel, weil sehr viele Faktoren mitspielen. Die Größe der Dateien ist relevant, weil Dateisysteme ihre jeweiligen Vorzüge besitzen. Noch wichtiger ist die Clustergröße, denn jedes Dateisystem ist umso schneller, je weniger Einzelblöcke es zusammensuchen muss. Ein gerechter Vergleich müsste überall dieselbe Clustergröße verwenden – soweit dies einstellbar ist. Dies wiederum kann zu Ungerechtigkeiten führen, wenn Dateisysteme intern auf ihre Standardgrößen hin optimiert sind. Für einen gerechten Vergleich müssten ferner alle Daten unfragmentiert vorliegen. Spezielle Funktionen wie Kompression müsste man von vornherein ausschalten, eventuell auch das Aufzeichnen von speziellen Metadaten – soweit dies überhaupt vorgesehen ist.

Angesichts dieser Situation ist ein objektiver Vergleichstest eine akademische Herausforderung, die wir an dieser Stelle radikal und vereinfachend abkürzen: Generell darf man von einfachen Dateisystemen wie Ext2 oder FAT32, die sich weder mit Journaling, Fehlerprüfung noch mit luxuriösen Metadaten abgeben müssen, höheren Durchsatz erwarten. Gerade auf nicht systemrelevanten Laufwerken mit Benutzerdaten ist älteres Ext2 oft die beste und schnellste Alternative, exFAT auch nicht immer verkehrt. F2FS bietet sich für USB-Sticks an. Elaborierte Dateisysteme können den zusätzlichen Verwaltungsaufwand durch optimierte Schreibverfahren und präventive Maßnahmen gegen die Fragmentierung nur teilweise kompensieren.

5. Relevante Dateisysteme

Wie viele Dateisysteme braucht Linux? Die Betriebssystem-Konkurrenz leistet sich längst nicht den Luxus so zahlreicher Entwicklungen. Der langjährige Windows-Standard NTFS ist bislang ausreichend und hat Komfortfunktionen an Bord, ähnliches gilt für APFS unter Mac OS sowie das einfachere HFS+. Für wachsende Server-Ansprüche arbeitet Microsoft an ReFS, das zwar astronomische Kapazitäten verwaltet, aber noch viele unter NTFS selbstverständliche Attribute vermissen lässt. Für das einfache Austauschformat FAT32 hat Microsoft beizeiten den Nachfolger exFAT nachgelegt, um drängende Größenlimits zu überwinden.

Unter Linux tummeln sich zahlreiche prominente, exotische und spezialisierte Dateisysteme. Die Übersichtstabelle beschränkt sich auf jene, die am Linux-Desktop in Erscheinung treten (etwa in der Laufwerksverwaltung). Da Ext4, BTRFS und ZFS nachfolgend eigene Beiträge erhalten, beschränken wir uns an dieser Stelle auf eine Kurzcharakteristik der verbleibenden Dateisysteme Ext3, Ext2, JFS, XFS und F2FS:

Ext3 und Ext2: Der wichtigste Unterschied dieser Ext-Versionen ist das mit Ext3 eingeführte Journal. Wo diese Sicherheitsfunktion keine Rolle spielt, ist Ext2 die einfachere und schlankere Wahl. Anders ausgedrückt: Wenn Journaling-Sicherheit gefragt ist (Systempartition), nimmt man besser gleich Ext4, wo nicht, genügt auch Ext2.

XFS: Das Journaling-Dateisystem wurde ursprünglich für Server-Aufgaben geschaffen. Die ehemals gelobten Geschwindigkeitsvorteile beim Umgang mit sehr großen Dateien und beim Mehrfachzugriff auf Daten dürften mittlerweile weitgehend egalisiert sein. Ein spürbarer Unterschied zu Ext4 besteht heute nicht mehr. Messbar mag XFS aber immer noch vorne liegen, da etwa Open Suse die Home-Partition standardmäßig mit XFS formatiert.

JFS: Das „Journaling File System“ ist so alt (1990 von IBM), dass es die damals noch revolutionäre Journal-Funktion zur Namensgebung verwendete. JFS ist heute eigentlich JFS2 und hat keine herausragenden Eigenschaften, aber auch keine nennenswerten Schwächen.

F2FS: Das „Flash-Friendly File System“ von Samsung ist ein Spezialist für Flash-Speicher – also für SD-Karten, SSDs und eMMC. Die begrenzte Lebensdauer von rund 10.000 Schreibzugriffe pro Speicherzelle legt es dort nahe, die Dateiinhalte turnusmäßig so umzuverteilen, dass alle Bereiche des Datenträgers in etwa gleichmäßig beansprucht werden. Für solches „Wear-Leveling“ sorgt die Hardware im Prinzip selbständig. F2FS entlastet diese Aufgabe aber dadurch, dass es die Daten für Schreibvorgänge strukturiert und zwischen Daten mit tendenziell kurzer (Benutzerdaten) und langer Lebensdauer (Dateitabelle, Betriebssystem) unterscheidet. F2FS ist in der Regel nicht vorinstalliert, kann aber mit dem Paket „f2fs-tools“ leicht nachgerüstet werden:

Nachgerüstete Spezialdateisysteme: Wenn die meist kleinen Pakete für Dateisysteme nachinstalliert sind (hier f2fs-tools), sind sie auch in grafischen Werkzeugen wie Gparted aktiv.

Der Linux-Standard Ext4

Das robuste Ext4 ist in den meisten Linux-Distributionen der Standard bei der Installation und bei der Formatierung externer Laufwerke. Die Voreinstellungen garantieren Datensicherheit, Ext4-Tools ermöglichen optionales Tuning und Dateiverschlüsselung.

Die Entwicklung von Ext („Extended Filesystem“) reicht über die Vorgänger 3 und 2 letztlich zurück bis ins Jahr 1993. Änderungen bei Ext folgten ganz konservativ den gewachsenen Standardanforderungen (etwa Journaling-Sicherheit) oder technischen Notwendigkeiten (etwa Kapazitätslimits), experimentelle Extras standen offenbar nie zur Diskussion. Version Ext4 hat mit seinen aktuellen Spezifikationen keine drohenden Limits hinsichtlich Gerätegrößen, Dateigrößen oder mangelnder Metadaten. Es darf seit mehr als 10 Jahren als Quasi-Standard auf allen Desktop- und Server-Distributionen gelten, wo ein grundsolides Dateisystem gewünscht ist – genau das: nicht weniger, nicht mehr.

Integration und Werkzeuge

Die kleine Ewigkeit als Linux-Standard hatte wenige Konsequenzen am grafischen Desktop. Zwar ist eine händische Formatierung mit

sudo mkfs.ext4 […]

nur in Sonderfällen nötig, weil Installer und Laufwerksverwaltungen Ext4 integrieren. Nennenswert darüber hinaus geht die Desktop-Integration aber nicht. Auch für Ext4 sind Interna nur über Terminalwerkzeuge zu erledigen. Alle Ext4-Tools sind im Standardpaket e2fsprogs enthalten und mit

dpkg -L e2fsprogs

leicht zu ermitteln. Neben den fundamentalen Programmen mke2fs oder gleichbedeutend mkfs.ext4 (Formatieren) und e2fsck oder gleichbedeutend fsck.ext4 (Integritätscheck) gibt es eine ganze Reihe weiterer Werkzeuge: badblocks, debugfs, dumpe2fs, e2image, e2scrub, e2undo sind allesamt forensische Tools, die im Alltag keine große Rolle spielen und typische PC-Anwender überfordern dürften. e2freefrag, e4defrag, filefrag liefern Infos zur Fragmentierung oder leisten aktive Defragmentierung (e4defrag). E4defrag kann mit Schalter „-v“ auf Einzeldateien, Verzeichnisse und Partitionen angewandt werden.

Resize2fs ist das Low-Level-Tool für Größenänderungen von Partitionen. In der Regel wird man hierfür am Desktop bevorzugt zum grafischen Gparted greifen. Für die beiden verbleibenden und interessantesten Ext-Tools – tune2fs und e4crypt – folgen konkrete Einsatzbeispiele.

Laufwerksoptionen mit tune2fs steuern

Das Werkzeug tune2fs steuert viele Dateisystemeigenschaften wie die zu schreibenden Metadaten, die Absicherung durch das Journaling oder die Häufigkeit von Integritätschecks. Selbst auf der Systempartition sind nicht immer Standards erforderlich, auf externen Datenträger noch weniger. Klar ist dennoch: Folgende Eingriffe verringern die Robustheit des Dateisystems und bleiben eine Ermessensfrage.

Ext4-Journaling abschalten: Auf externen Laufwerken mit (oft nur redundanten) Benutzerdaten ist die Absicherung durch das Journalprotokoll selten notwendig. Ohne Journaling entfallen viele Schreibaktionen, was den Datendurchsatz beschleunigt. Oft wäre dort die Wahl des Journal-freien Vorgängers Ext2 von vornherein die bessere Wahl, aber auch auf Ext4 lässt sich Journaling deaktivieren (hier für „sde1“):

sudo umount /dev/sde1
sudo tune2fs -O ^has_journal /dev/sde1

„tune2fs -O“ (Buchstabe „O“) entfernt Dateisystemattribute mit „^“, während „+“ solche hinzufügen kann. Die aktuellen Eigenschaften ermitteln Sie so:

sudo tune2fs -l /dev/sde1

Die Ausgabe wird nach obiger Aktion neben „Filesystem features“ das Attribut „has_journal“ nicht mehr anzeigen.

Ext4-Checks reduzieren: Folgender tune2fs-Befehl

sudo tune2fs -i60 -c100 /dev/sda

reduziert die Datenträgerchecks: Die langwierige Prozedur wird dann nur noch alle 60 Tage („-i60“) oder nach 100 Neustarts („-c100“) erfolgen – je nachdem, welches Ereignis früher erfüllt ist.

Reservierten root-Speicher reduzieren: Ext4 reserviert auf jeder Partition Speicherplatz für das root-Konto. Falls ein System durch eine vollgeschriebene Systempartition lahmgelegt wird, kann sich noch root anmelden. Der reservierte Platz beträgt immerhin fünf Prozent der Gesamtkapazität und lässt sich gefahrlos verringern:

sudo tune2fs -m 1 /dev/sda1

Dies reduziert die Anzahl der root-Reserve auf Partition „/dev/sda1“ auf ein Prozent. Ganz ausschalten („-m 0“) sollten Sie die Reserve aber nicht.

Ext4-Metadaten reduzieren: Ext4-formatierte Partitionen speichern bei jeder Datei mehrere Zeitangaben. Erstelldatum und Änderungsdatum werden immer eingetragen (ctime und mtime: Creation und Modification). Optional ist hingegen das Erfassen des letzten Dateizugriffs (atime: Access). Diese Information ist nur dann relevant, wenn Sie mit „find -atime“ nach Zugriffszeiten von Dateiobjekten suchen. Wenn Sie das nie tun, kann die Festplattenaktivität reduziert werden. Hier hilft ausnahmsweise nicht tune2fs, sondern nur ein Eingriff in die Datei /etc/fstab:

UUID=[…]   /  ext4   noatime   0   2

Wenn in der Optionen-Spalte bereits Einträge stehen, setzen Sie „,noatime“ an deren Ende (mit Trennkomma). Der Vollständigkeit halber: Es gibt auch noch die Option „nodiratime“, die bei Verzeichnissen darauf verzichtet, die Zugriffszeit zu vermerken. Wenn Sie die Aktivität der Festplatte reduzieren möchten, ist „noatime“ die weitreichendere Maßnahme.

Verschlüsselung mit Ext4

Ext4 hat durch Google transparente Verschlüsselung erhalten, die Google im Hinblick auf Android-Geräte entwickelt hat. Die Leistung der Ext4-Verschlüsselung ist mit Cryptsetup/LUKS vergleichbar oder sogar besser, außerdem fordert Ext4-Verschlüsselung keine Neuformatierung. Trotzdem muss man diese Option unter Linux noch deutlich kritisch beurteilen – nach dem Motto: Es funktioniert im Prinzip. Die nachfolgend beschriebene Aktion beschränkt sich auf das einfache, aber realistische Szenario, dass das Verzeichnis eines USB-Datenträgers nur auf genau einem PC gelesen werden darf.

Da eine engere Desktop- oder Dateimanager-Integration fehlt, müssen im Terminal die beiden Tools tune2fs und e4crypt zusammenarbeiten. Folgendes Kommando

sudo tune2fs -O +encrypt /dev/sdc1

aktiviert zunächst die Verschlüsselung für Partition /dev/sdc1 (auf bereits vorhandene Daten hat diese Aktion keine Auswirkung). Danach benötigt die Verschlüsselung einen Ext4-Schlüssel:

e4crypt add_key

Das Passwort wird nur einmal abgefragt und hat keine Komplexitätsanforderungen. Dieser Schlüssel wird im Schlüsselbund des gerade angemeldeten Benutzers gespeichert. Der Befehl

keyctl show

gibt Einblick in den Schlüsselbund (eventuell muss dafür das kleine Paket „keyutils“ nachinstalliert werden) und zeigt den neuen Ext4-Schlüssel als „logon: ext4:…“. Die nach „ext4:“ folgende Hexadezimal-ID brauchen Sie zur Verschlüsselung des Verzeichnisses (Beispiel):

e4crypt set_policy [Hex-ID] /media/lw/Privat

Ab sofort werden alle neuen Dateien im Verzeichnis „Privat“ automatisch auf Dateisystem-Ebene verschlüsselt gespeichert und transparent wieder entschlüsselt. Das funktioniert, solange der Ext4-Schlüssel im Schlüsselbund gespeichert ist, also bis zur nächsten Anmeldung am System. Ohne Schlüssel bleibt der Datenträger zwar insgesamt lesbar, aber der Ordner „Privat“ zeigt nur Zeichensalat – auch bei den Dateinamen. Für erneuten Zugriff auf die Daten genügt nach dem Einhängen des Ext4-Datenträgers die erneute Eingabe dieses Befehls:

e4crypt add_key

Das Tool fragt das Passwort ab und lädt bei korrekter Eingabe den Ext4-Schlüssel in den Schlüsselbund. Das Verzeichnis und die enthaltenen Dateien sind dann sofort wieder lesbar. Das Systemkonto, das diese Aktion ausführt, spielt keine Rolle. Wer auf dem betreffenden Rechner das Kennwort weiß, hat Zugriff auf das verschlüsselte Verzeichnis des Ext4-Datenträgers.

Eigenschaften eines Ext4-Dateisystems: „tune2fs -l“ zeigt alle statischen und dynamischen Attribute einer Ext4-Partition. Die „Filesystem features“ sind konfigurierbar.
Verschlüsselter Ordner auf USB-Stick: Ohne Passwort kann ein fremdes System den Ordner nicht benutzen. Auch die Dateinamen sind kodiert. Andere Ordner des Datenträgers bleiben zugänglich.

Das Dateisystem ZFS

Das ursprünglich für Sun Solaris entwickelte ZFS gilt als „last word in filesystems“. Es geht über die engere Definition eines „Dateisystem“ weit hinaus, kennt keine Limits, besitzt alle Funktionen und Metadaten und integriert einen Volume Manager.

Eine gerechte Bewertung von ZFS ist nicht einfach: Metadaten, Besitzrecht, ACLs, Streams, Zeitstempel, Checksummen, Hardlinks, Softlinks, Quotas, Journaling, Caching? Alles drin – und viel mehr: Das Dateisystem hat nach heutigem Ermessen keine Größen- oder Mengenbegrenzungen. Dazu arbeitet es als Volume Manager zum Zusammenlegen von Festplattenpools, verkleinert/vergrößert den Pool online durch Hotplug oder Entnahme von Datenträgern. Der integrierte RAID-Z-Controller ermöglicht ausfallsichere Mehrfachspeicherung. Automatische und manuelle Snapshots sorgen für Systemsicherheit (neben der automatischen Fehlerkorrektur und Journaling). Datenkomprimierung, Verschlüsselung und Netzfreigaben erledigt ZFS noch nebenbei.

ZFS im Desktop-Anflug (Ubuntu)? Kaum je zuvor ist auf dem PC-Desktop etwas so krass Überdimensioniertes gelandet wie dieses Dateisystem. Das ist kein SUV oder Pick-Up, der nicht in die Garage passt: Hier landet ein Chinook-Transporthubschrauber im Schrebergarten. „Viel zu groß“ ist aber nur das eine Problem, fast noch gewichtiger ist die Tatsache, dass für dieses Flugobjekt kein Führerschein A bis D ausreicht. Wer die Piloten-Ausbildung machen will, muss ein Semester einplanen.

ZFS: Werkzeuge und Grundlagen

ZFS ist nicht im Linux-Kernel integriert, weil Linus Torvalds dies – auch, aber nicht nur – aus lizenzrechtlichen Bedenken ablehnt. Die einzige Linux-Distribution, die optionale ZFS-Unterstützung direkt mitbringt, ist Ubuntu 20.04/20.10, sofern diese Option bei der Ubuntu-Installation gewählt wurde. Überall sonst – und auch unter Ubuntu ohne ZFS-Installation – lässt sich das ZFS-Dateisystem mit diesen beiden Paketen

sudo apt install zfsutils-linux zfs-fuse

nachrüsten. Eine Integration in grafische Werkzeuge ist dadurch aber nicht gegeben, ZFS erfordert grundsätzlich Terminalarbeit. Die in den genannten Paketen enthaltenen Terminalprogramme sind mit zfs, zpool und zfs-fuse überschaubar, hinzu kommen noch eher periphere Tools zdb (Debugger) und zstreamdump (Output-Filter für „zfs send“). Die geringe Toolanzahl kann aber nicht lange darüber hinwegtäuschen, wie komplex ZFS ist: Die Manpages für die beiden Werkzeuge zfs und zpool könnten mit etwas Kommentierung dieses Magazin füllen.

ZFS fordert eine großzügige Cache-Verwaltung, deren RAM-Verbrauch von der Festplattenkapazität abhängt: Einige Hundert MB gehen verwaltungstechnisch grundsätzlich weg, ferner pro TB Plattenkapazität etwa ein GB RAM. Ein Desktop-Rechner mit einer 4-TB-Platte muss also etwa 4 GB RAM für ZFS abzweigen. Außerdem laufen für ZFS mindestens vier Systemdienste, der wichtigste heißt „zfs-zed“.

Wer sich bei einer Ubuntu-Installation für ZFS entscheidet, erlebt dies erst einmal als unkomfortable Zunahme an Komplexität: Laufwerkstools wie Gparted oder Gnome-Disks zeigen die rpool-Partitionen von ZFS zwar an, können sie aber nicht bearbeiten. Terminaltools wie mount, lsblk oder df werden durch die komplexe ZFS-Partitionierung durchweg unübersichtlicher.

Für produktive Nutzung sind „zfs“ und „zpool“ zuständig. Ersteres verantwortet die Eigenschaften des Dateisystems, zweiteres ist für die Verwaltung der Datenträger zuständig, die bei ZFS immer als „Pool“ organisiert sind, selbst wenn nur ein Datenträger vorliegt. Der Befehl

zpool list

zeigt die aktuellen ZFS-Datenträger des Pools an, Basisbefehle wie „zpool create“ oder „zpool add“ formatieren Datenträger mit ZFS oder fügen sie einem bestehendem Pool hinzu.

Einem Pool untergeordnet sind ZFS-Datasets, die keineswegs einem kompletten Datenträger entsprechen müssen. In Datasets werden Standardpfade und Snapshots als je einzelnes Dateisystem verwalten, wie folgender zfs-Befehl zeigt:

zfs list

Er bringt die Mount-Übersicht und informiert über den Belegungszustand. Eine detaillierte Anzeige der ZFS-Eigenschaften pro Dataset oder Verzeichnispfad liefert dann folgender Befehl:

zsf get all /

Die hier angezeigte, umfangreiche Liste der ZFS-Eigenschaften können Sie auch einzeln abfragen. So ist etwa eine Eigenschaft wie „compressratio“ mit

zfs get compressratio

global über den gesamten Pool zu ermitteln. Sicher gewöhnungsbedürftig sind dabei die ZFS-Pfadangaben wie „rpool/USERDATA/lw_0am7f7“ mit ID. Dass dies (in unserem Fall) mit /home/lw zu übersetzen ist, zeigt der bereits genannte Befehl „zfs list“.

Beispiel 1: ZFS-Snapshots

Wer Ubuntu mit ZFS installiert hat, sieht bei jeder Installation im Terminal Infos wie folgende (Beispiel):

Anforderung zur Speicherung des aktuellen Systemzustands
Erfolgreich als "autozsys okpszm" gespeichert

ZFS ist also unter Ubuntu soweit integriert, dass bei jeder Installation standardmäßig ein Snapshot entsteht. Dies gilt für Installationen aus den normalen Paketquellen im Terminal wie im grafischen Software-Center. zfs kann alle Snapshots auflisten:

zfs list -t snapshot [-o name,creation -s creation]

Was in eckiger Klammer steht, ist nicht zwingend, reduziert aber auf Snapshot-Namen und Erstelldatum und sortiert („-s“) nach dem Erstelldatum – neueste zuletzt. Snapshot-Namen bestehen aus dem ZFS-Pfad, gefolgt von einem „@“ und dem Namen des Snapshots. Eine Bezeichnung wie

rpool/USERDATA/lw_0am7f7@autozsys_w6sj7d

zeigt einen automatischen Snapshot („autozsys_…“) im Home-Verzeichnis /home/lw („rpool/USERDATA/lw_0am7f7“). Periodisch landen Snapshots auch im Grub-Menü. Damit kann der Systembenutzer über das Bootmenü zu einem früheren Systemzustand zurückkehren. Wird Systemstart mit Umschalt-Taste (Bios-Boot) oder Esc (Uefi-Boot) unterbrochen, dann zeigt Grub den zusätzlichen Eintrag „History for Ubuntu…“ und darunter dann die einzelnen Sicherungen (Beispiel):

Revert to 24.12.2020 @ 16:22

Mit dem Befehl

sudo zfs snapshot create […]

lassen sich Snapshots manuell erstellen – allerdings erwartet ZFS dabei die Pfadangabe gemäß seiner rpool-Verzeichnisstruktur:

sudo zfs snapshot rpool/USERDATA/lw_0am7f7@24.12.2020

Das ist eine Sicherung des Home-Verzeichnisses (von „/home/lw“), die später mit

sudo zfs rollback rpool/USERDATA/lw_0am7f7@24.12.2020

wiederhergestellt werden kann. Der Parameter „destroy“

sudo zfs destroy rpool/USERDATA/lw_0am7f7@24.12.2020

löscht nicht mehr benötigte Snapshots.

Beispiel 2: ZFS-Komprimierung

Mit seiner internen Komprimierung kann ZFS erheblich Platz sparen. Bei einer Ubuntu-Installation mit ZFS ist je nach Format der Benutzerdateien ein Platzgewinn von bis zu 50 Prozent zu erzielen. Die Komprimierung kann auch ad hoc für externe Datenträger genutzt werden. Im folgenden Beispiel bearbeiten wir einen USB-Stick (/dev/sde):

sudo zpool create -f stick32 /dev/sde

Dies bedeutet eine ZFS-Formatierung, die alle bisherigen Daten löscht. Danach liefert der Befehl

sudo zfs get all stick32

die Menge aller ZFS-Attribute und zeigt, dass die Eigenschaft „compression“ aktuell auf „off“ steht. Das ändert dieser Befehl:

sudo zfs set compression=lz4 stick32

Die erneute Abfrage der Eigenschaften zeigt nun bei „compression“ den Wert „lz4“. Das war’s schon. Der USB-Stick ist unter /stick32 im Dateisystem eingehängt und kann nun genutzt werden, nachdem der Benutzer mit

sudo chown -cR sepp:sepp /stick32

den Besitz übernommen hat.

Beispiel 3: ZFS-Verschlüsselung

Um einen verschlüsselten Bereich zu erstellen, beginnt man mit einem neuen Pool unter Angabe eines Namens und der Gerätekennung (hier: /dev/sde):

sudo zpool create mystick /dev/sde

Auf dem neuen Datenpool „mystick“ entsteht nun mit Namen „privat“ der verschlüsselte Bereich. Nach folgendem Befehl

sudo zfs create -o encryption=aes-256-gcm -o keyformat=passphrase mystick/privat

wird zweimal das Passwort abgefragt.

Da steckt was drin: ZFS-Objekte zeigen eine opulente Liste von Eigenschaften, die zum Teil statisch, zum Teil dynamisch, zum Teil vom Benutzer konfigurierbar sind.
Einfach ist anders: Hier wird ein Verzeichnis auf einem USB-Stick als verschlüsselter Bereich definiert

Das Dateisystem BTRFS

BTRFS hat als der etwas kleinere ZFS-Konkurrent das Potential für den künftigen Linux-Standard am Desktop. Es bietet fundamentale Vereinfachungen für die Datenträger-Administration ohne die überdimensionierten Maße eines ZFS.

BTRFS (B-Tree-Filesystem, „Butter FS“, „Better FS“) gibt es seit 2007, ist seit 2009 im Linux-Kernel und gilt seit 2014 als stabil. BTRFS hat viele Gemeinsamkeiten mit ZFS und gilt als dessen kleineres Linux-Pendant, das besser auf die Leistung und die Anforderungen am Linux-Desktop- abgestimmt ist und keine zusätzlichen RAM-Ressourcen fordert. Dennoch bleiben die BTRFS-Spezialitäten vorerst „nur“ optional interessant und für ein typisches Desktop-System sicher nicht zwingend. Bemerkenswert ist die interne Datenkomprimierung, während Datenverschlüsselung (im Unterschied zu ZFS) weiterhin fehlt.

Als Formatierungsoption für interne wie externe Laufwerke hat BTRFS überall in den grafischen Werkzeugen wie Installer oder Laufwerksverwaltungen Einzug gefunden. Überwiegend findet der Umgang mit BTRFS aber im Terminal mit den Programmen statt, die das in der Regel vorinstallierte Paket „btrfs-progs“ (früher „btrfs-tools“) mitbringt. Das wichtigste dieser Tools nennt sich schlicht „btrfs“ und bringt eine Menge an Unterfunktionen mit. Dieser Beitrag hat nur Platz für die interessantesten Fähigkeiten von BTRFS.

BTRFS-Snapshots

BTRFS bietet Snapshots (Systemsicherungspunkte), um – mit einem einzigen Befehl – den aktuellen Partitionszustand zu sichern. Während grafische BTRFS-Tools, die über die grundlegende Formatierung (etwa mit Gnome-Disks) hinausgehen, den meisten Distributionen fehlen, hat Open Suse die Integration ein Stück verbessert. Das Konfigurationszentrum Yast2 bringt mit der Komponente Yast2-Snapper bringt die wichtige Snapshot-Verwaltung in grafischer Darstellung. Dort genügt ein Klick auf „Erzeugen“ für einen manuellen Schnappschuss und „Löschen“ für das Entfernen des markierten Eintrags. Der Punkt „Änderungen anzeigen“ führt zu einem Detailbericht für den markierten Schnappschuss, der gezieltes Zurückschreiben einzelner Dateien ermöglicht – eine kleinteilige Arbeit, die zumindest für Systemdateien gute Kenntnisse voraussetzt. Bedauerlich ist, dass der Yast2-Snapper kein komplettes Rollback zu einem früheren Zustand auslösen kann. Hierfür bietet Opensuse sein Bootmenü mit Auswahl der Snapshots, im laufenden Betrieb außerdem das Terminaltool Snapper:

sudo snapper list 

Dies zeigt zunächst sämtliche Snapshots mit Kennzahl. Dort suchen Sie den geeigneten Snapshot anhand des Datums und geben dann diesen Befehl

sudo snapper rollback [x] 

mit der zugehörigen Kennziffer ein. Danach starten Sie das System neu. Beim Rollback geschieht grundlegend anderes als beim Wiederherstellen einzelner Dateien im Yast-Modul: Hier hängt Snapper den kompletten Snapshot an die ursprüngliche Stelle ins Dateisystem ein und ersetzt dabei die bisherigen Daten.

Insgesamt erscheint die Snapshot-Integration in Open Suse prinzipiell verdienstvoll, aber für Desktop-Nutzer unzureichend. Wer sich mit BTRFS-Snapshots genauer befassen will, kommt trotz Yast2-Snapper und Konsolen-Snapper am zugrundeliegenden Basisprogrammen btrfs nicht vorbei (Beispiel):

sudo btrfs subvolume snapshot /home /home/snapshot.2021.01.01

Die Quelle – hier „/home“ – ist kein beliebig wählbarer Pfad, sondern muss ein existierendes BTRFS-Subvolume sein, welche wiederum der Befehl

sudo btrfs subvolume list /

liefern kann.

Snapshots sind auch bei größeren Laufwerken blitzschnell erledigt, da es sich vorläufig nur um einen Zeiger auf identische Dateiobjekte handelt. Erst bei Änderungen muss BTRFS die Originalversion für den Snapshot gesondert speichern. Der Snapshot wird dauerhaft den Originalzustand anzeigen und diesen erhalten, egal was im Originalordner geschieht. Ein „Rollback“, wie es Snapper nennt, gibt es eigentlich nicht: Vielmehr wird das bisherige Original ausgehängt und der Snapshot eingehängt.

BTRFS-Komprimierung auf SSD

BTRFS bietet für komplette Datenträger transparente (Hintergrund-) Komprimierung aller gespeicherten Dateien. Auf SSDs mit wenig Kapazität kann eine Linux-Installation mit BTRFS Platz sparen und obendrein den Datendurchsdatz erhöhen. Preis ist eine höhere Prozessorlast, was aber bei aktuellen CPUs kaum auffallen sollte. Wenn Linux mit BTRFS installiert wurde (was inzwischen auch Ubuntu & Co anbieten), lässt sich die optionale Komprimierung für das root-Dateisystem in der Datei /etc/fstab einrichten. Nach

sudo nano /etc/fstab

werden Sie eine gut gefüllte Datei mit diversen Subvolumes vorfinden. Für das root-Verzeichnis „/“ wird als Dateisystem „btrfs“ und in der Optionenspalte lediglich „defaults“ anzutreffen sein. Für zusätzliche Komprimierung ergänzen Sie die Option „compress“:

UUID=[Partitions-ID]  /  btrfs  defaults,compress 0  0

Theoretisch kann Analoges auch für „subvol=/@/home“ und weitere Subvolumes erfolgen.

BTRFS-Komprimierung auf USB

Wer Bedenken vor der Formatierung und Komprimierung eines Systemdatenträgers hat, sollte BTRFS immerhin für externe Laufwerke in Erwägung ziehen. Neben dem standardmäßig vorgesehenen

sudo mkfs.btrfs /dev/sd[x]

bieten auch die Gnome- und KDE-Laufwerkstools BTRFS-Formatierung. Falls die optionale Kompression gewünscht ist, sollte sie baldmöglichst nach der Formatierung aktiviert werden, da sie erst ab diesemZeitpunkt wirkt (vorher vorhandene Daten bleiben unberücksichtigt). Dies geschieht am Mountpunkt des eingehängten Laufwerks (hier „/media/sepp/btrfs-stick“):

sudo btrfs property set /media/sepp/btrfs-stick compression zstd

Das Attribut bleibt dann permanent gesetzt, auch nach Aushängen und erneutem Einhängen. Davon und von den aktuellen Eigenschaften eines BTRFS-Dateisystems können Sie sich mit

btrfs property get /media/sepp/btrfs-stick

jederzeit überzeugen. BTRFS-Kompression kann gerade bei langsamen USB-Laufwerken und Speicherkarten den Datendurchsatz deutlich verbessern.

BTRFS: Weitere Praxis-Beispiele

Konvertierung: Das Tool btrfs-convert (im Paket btrfs-progs enthalten) kann von einem Livesystem aus das Ext4-Dateisystem eines bereits installierten Linux zu BTRFS zu konvertieren. Wir raten ab – nicht aus empirischer Erfahrung, sondern aufgrund prinzipieller Vorsicht vor Eingriffen dieser Dimension.

Datenträger zusammenlegen: Folgender Befehl

sudo mkfs.btrfs /dev/sdc /dev/sdd

legt zwei (ausgehängte) Datenträger zu einem logischen Volume zusammen. Achtung – das ist eine Formatierung und eventuelle Daten auf den Laufwerken gehen verloren. Um diesen neuen Speicherplatz einzuhängen, benötigen Sie ein leeres Verzeichnis und einen Mount-Befehl:

sudo mount /dev/sdc ~/Sticks

Es spielt keine Rolle, welche der beiden Geräte-Kennungen Sie verwenden. Sie können später noch weitere Datenträger hinzufügen:

sudo btrfs device add /dev/sdf ~/Sticks/

Das gilt analog auch für root-Dateisystem („/“), falls dort der Speicherplatz knapp wird:

sudo btrfs device add /dev/sdf /

Größenänderungen: Wie schnell BTRFS Größenänderungen auf einem Volume oder einem Verbund erledigt, zeigt dieser Befehl:

sudo btrfs filesystem resize -10g /

Das verkleinert das root-Dateisystem um 10 GB.

Snapshot-Verwaltung: Open Suse kann mit dem Yast2-Snapper ein grafisches BTRFS-Werkzeug anbieten. Ansonsten bleibt BTRFS-Verwaltung ein Terminal-Job.
BTRFS bietet native, transparente Komprimierung. Um die Funktion für externe Datenträger dauerhaft zu aktivieren, genügt das Setzen einer „Property“ für den Mountpunkt.
Größenänderung mit BTRFS: Diese Aktion kostet keine Sekunde. Für den Befehl muss man nur den Mountpunkt kennen, nicht den oder die verwendeten Datenträger.

Windows-Dateisysteme unter Linux

Für eine Linux-Installation stehen die Windows-Dateisysteme NTFS, FAT32 und exFAT nicht zur Diskussion. Ganz anders sieht es bei externen Datenträgern aus, die unter verschiedenen Betriebssystemen und Geräten genutzt werden sollen.

Selbst kompromisslose Linux-Anwender sind gut beraten, auf das verbreitete Windows Rücksicht zu nehmen. USB-Sticks oder USB-Festplatten sind unter Windows schlicht nicht verwendbar, wenn die Datenträger mit einem Linux-Dateisystem formatiert sind (Ext, XFS, BTRFS, ZFS…). Die Windows-Reaktion „Sie müssen den Datenträger formatieren…“ ist borniert bis arrogant, weil Microsoft zweifellos in der Lage wäre, zumindest ein Ext4 einzubinden. Aber diese Weigerung ist seit Jahren Status Quo und wird sich auch nicht zeitnah ändern. Daher ist es fast unausweichlich, für mobile Laufwerke (eventuell auch in weiteren Situationen) auf ein Microsoft-Dateisystem auszuweichen.

FAT32: Limitiert, aber unkompliziert

Das alte FAT32 (seit 1996) hat gegenüber moderneren Nachfolgern nur einen großen Pluspunkt – es ist wirklich unter jedem PC-System (alte und neue Linux-, Windows-, Mac-OS-Versionen) lesbar und beschreibbar. Unterhaltungselektronik wie Smart-TVs, Hifi-Receiver oder Auto-Soundsysteme werden am USB-Port in jedem Fall einen FAT32-Datenträger einlesen. Sämtliche PC-Betriebssysteme können Datenträger auch selbst mit FAT32 formatieren. Da FAT32 außer zwei Zeitstempel keine Metadaten und keine Dateirechte anbietet, eignet es sich ausschließlich als Datencontainer insbesondere für USB-Sticks. Das Größenlimit für den Datenträger von 32 GB unter Windows ist künstlich (siehe unten).

4-GB-Datei-Limit: Entscheidender ist das FAT32-Limit für eine einzelne Datei von 4 GB. IMG- und ISO-Dateien überschreiten diese Größe häufig ebenso wie hochauflösende Filmdateien. Während Windows das Größenproblem im Falle des Falles sofort meldet, kopiert Linux bis zum Erreichen der Grenze und bricht erst dann mit einer Fehlermeldung ab. Für USB-Medien, die keine riesigen Imagedateien oder Filmdateien aufnehmen müssen, reicht FAT32 aber völlig aus.

32-GB-Datenträger-Limit: Bei USB-Sticks, -Festplatten, SD-Karten größer als 32 GB unterschlägt Windows beim Formatieren die Option „FAT32“ und schlägt nur „NTFS“ und „exFAT“ vor, als wäre dies bei Datenträgern dieser Größe technisch nicht anders möglich. Das müssen Sie nicht akzeptieren, wenn ein Linux im Haus ist. FAT32 kann problemlos auch große Datenträger verwalten, indem es einfach die Blockgröße entsprechend hochskaliert. Verwenden Sie etwa Gnome-Disks oder den KDE-Partitionmanager zum Formatieren. FAT32 erscheint dort in der Regel einfach als „FAT“, zum Teil auch erläutert als „Kompatibel mit allen Systemen…“.

USB-Medien mit Livesystemen / Multiboot-Livesystemen: Im Unterschied zu installiertem Linux laufen Linux-Livesysteme sehr wohl auf auch auf FAT32. In den meisten Fällen ist hier FAT32 sogar notwendig oder empfohlen. Tools wie Unetbootin (http://unetbootin.github.io/) zum Erstellen von Livesystemen oder Tools wie Yumi(www.pendrivelinux.com/yumi-multiboot-usb-creator) zum Einrichten von Multiboot-Livesystemen setzen eine FAT32-Formatierung schlicht voraus.

exFAT: „Großer“ Datenaustausch

exFAT ist ähnlich simpel wie FAT32 und besitzt keine Metadaten für Rechte. Entscheidender Unterschied zu FAT32 ist die unlimitierte Größe für Einzeldateien. Wer ISO/IMG-Images und Filme zwischen Linux und Windows austauschen will, kann mit exFAT auf USB- und SD-Datenträger wenig falsch machen. Nachdem der Dateisystemtreiber Einzug in den Linux-Kernel gefunden hat, ist exFAT unter Linux größtenteils ohne Nachhilfe nutzbar. Auch grafische Werkzeuge wie Gnome-Disks („Partition formatieren -> Andere -> exFAT“) bieten inzwischen direkte exFAT-Unterstützung, und Dateimanager laden entsprechende Datenträger automatisch. Ausnahme: Der Partitionierer Gparted hat exFAT zwar in seiner Dateisystemliste, will aber bislang nicht mit exFAT formatieren (inaktiv).

SDHX-Karten: Der jüngere SDHX-Standard bei SD-Karten, der sehr große Kapazitäten erlaubt, empfiehlt grundsätzlich eine Formatierung mit exFAT.

Exorbitante Blockgröße: Während sich normale Blockgrößen (Cluster) bei Dateisystemen im KB-Bereich bewegen, kann die maximale Blockgröße bei exFAT theoretisch bis zu 32 MB betragen! Aus diesem Grund kann das relativ einfache Dateisystem praktisch beliebig große Datenträger adressieren. Empirisch lassen sich unter Linux aber offenbar „nur“ maximal 4-MB-Blöcke einrichten, und dies auch nur im Terminal:

sudo mkfs.exfat -s 8192 /dev/sd[x][n]

Die von vier MB völlig abweichende Zahl „8192“ ergibt sich aus der Vervielfachung der kleinsten Einheit „1“, die 512-Byte-Cluster erstellt. Wenn von vornherein klar ist, dass ein Laufwerk ausschließlich sehr große Dateien aufnehmen wird, dann ist eine derart extreme Formatierung durchaus sinnvoll und beschleunigt alle Dateivorgänge. Für kleine Dateien bedeutet das hingegen pure Platzverschwendung. Dies gilt im Prinzip für alle Dateisysteme, ist aber bei dem ungewöhnlichen exFAT eine besondere Erwähnung wert.

Nachinstallation: Wo exFAT unter Linux tatsächlich noch fehlen sollte, ist es mit

sudo apt install exfat-fuse exfat-utils

schnell nachgerüstet (im Beispiel für Debian/Ubuntu & Co).

NTFS: Auf USB kontraproduktiv

Sofern nicht dumme Geräte der Unterhaltungselektronik berücksichtigt werden müssen, scheint NTFS auf den ersten Blick die beste Wahl für Austauschdatenträger. Das trifft aber nur bedingt zu. Externe USB-Datenträger mit NTFS-Formatierung rangieren unter Linux im Prinzip als rechteloses FAT-Dateisystem: Wenn Linux-Standardbenutzer – Systemverwalter sowieso – externe Geräte ein- und aushängen, erhalten sie auf NTFS-Partitionen (wie auf FAT32 oder exFAT) vollen Lese- und Schreibzugriff. Das sollte zunächst auf einem Austauschdatenträger nicht stören, kann aber erheblich stören, wenn von Windows-Seite spezielle NTFS-Eigenschaften aktiviert wurden. Dateien, für die etwa unter Windows Komprimierung oder Verschlüsselung angefordert wurde, werden unter Linux nicht ankommen. Andererseits wird Linux eingestellte NTFS-Benutzerrechte ignorieren.

Mit anderen Worten: NTFS ist als Austauschformat solange in Ordnung, als seine eigentlichen Fähigkeiten nicht genutzt werden und es nur als unkompliziertes Containerformat dient. Dann kann man aber gleich zum simplen FAT32 oder exFAT greifen.

FAT32 / exFAT und Samba-Freigaben

Datenträger mit rechtelosen Dateisystemen per Samba freizugeben, ist ein absoluter Komfort-Tipp für faule Heim-Administratoren. Dateirechte fallen komplett weg und es zählen nur noch die Netzwerkrechte, die in der Samba-Konfigurationsdatei (/etc/samba/smb.conf) mit wenigen Zeilen definiert sind:

[exfat]
path = /media/sepp/toshiba 
write list = sepp 
browseable = yes 

Wer sich als „sepp“ ausweisen kann (Benutzer- und Samba-Konto sind natürlich Voraussetzung), kann auf dieser (exFAT-) Freigabe mit vorhandenen und neu erstellten Dateien machen, was er will.

exFAT unter Linux: Das Microsoft-Dateisystem (ohne Dateirechte) überwindet das 4-GB-Limit von FAT32 für einzelne Dateien und ist auf modernen Linux-Desktops weitgehend Standard.
Künstliches FAT32-Limit: Ab 32 GB Kapazität bietet Windows nur noch „NTFS“ oder „exFAT“. Linux kann auch große USB-Datenträger mit FAT32 formatieren.
Arrogante Reaktion auf Ext, XFS, BTRFS & Co: Datenträger mit Linux-Dateisystemen will Windows nicht lesen, sondern formatieren (vernichten).
Extrem: exFAT kann 4-MB-Blöcke (Cluster) einrichten, was dann für jede winzige Datei 4 MB Speicher kostet, aber bei durchgehend riesigen Dateien den Zugriff beschleunigt.

Systemd und Systemctl

Systemctl ist das wichtigste Werkzeug zur Kontrolle und Steuerung des Linux-Dienstes Systemd – aber nur eines von vielen. Der Funktionsumfang dieser Tools ist so beeindruckend (und anstrengend) wie der generelle Allmachtsanspruch von Systemd. Der primäre Init-Daemon Systemd herrscht über alle weiteren Systemprozesse und hält für den Benutzer eine ganze Palette von Tools bereit, wie die nachfolgende Liste zeigt:

Eine nähere Auseinandersetzung mit systemd und seinen Steuerungsprogrammen ist mittlerweile alles andere als ein Nischenthema, nachdem fast alle namhaften Linux-Distributionen systemd verwenden, unter anderen Arch, Debian, Fedora (und Red Hat Enterprise sowie Cent OS), Mageia, Mandriva, Opensuse (und Suse Enterprise), Siduction, insbesondere aber auch Ubuntu mit sämtlichen Derivaten (wie Mint, Peppermint, Chromium, Netrunner, Bodhi, Elementary, Zorin…). Dieser Init-Prozess systemd ist allerdings ein Kosmos für sich – ein logischer, aber hochkomplexer mit Allmachtsanspruch, und dabei reichlich verkopft. Von den uferlosen Kommandos und Optionen werden selbst professionelle Administratoren kaum 10 Prozent im Alltag benötigen und höchstens fünf Prozent verinnerlichen. Natürlich ist das gesamte Potential ein Fall für das Terminal, wobei Infobefehle in der Regel mit Benutzerrecht arbeiten, Änderungen jedoch „sudo“ erfordern. Grafische Frontends wenigstens für die allerwichtigsten Funktionen sind in Arbeit, aber bislang ist keines über die Beta-Phase hinausgekommen, weswegen wir dazu auch keine Empfehlung abgeben.

Systemd-Werkzeuge: Eine Übersicht

Der einfachste und fast alternativlose Weg, sich über den enormen Toolbestand von systemd zu informieren, ist der Blick in das Gesamtpaket:

dpkg-query -L systemd

Neben systemctl treffen Sie hier auf eine Armee von Hilfsprogrammen. Eine Auswahl zeigt die nebenstehende Tabelle. Die man-Pages aller systemd-Werkzeuge könnten mühelos eine komplette LinuxWelt füllen – und dabei ist Vieles noch unzureichend kommentiert. Die nachfolgenden Beispiele beschränken sich auf wenige alltagstaugliche Aufgaben.

networkctl

zeigt zunächst nur die Netzwerksschnittstellen. Wenn Sie dort erfahren, dass der Ethernetadapter „eth0″ oder “ enp2s0″ heisst, dann erfragen Sie mit

networkctl status enp2s0

alle Parameter von der IP- und MAC-Adresse bis zu MTU, Speed und Gateway-Adresse (Router) oder noch ausführlicher mit

networkctl status enp2s0 --stats

zusätzlich die gesendeten und empfangenen Bytes. Das eher funktionsarme Kommando hostnamectl zeigt ohne Parameter

hostnamectl

den Hostnamen des Rechners sowie auch einige Basisinfos zu System, Kernel und Architektur. Mit dem Befehl

hostnamectl set-hostname bolide

vergeben Sie umstandslos einen neuen Rechnernamen.

Systemd für Netzwerkabfragen: Hier wie in vielen anderen Belangen haben traditionelle Tools eigentlich ausgedient.

Journalctl:  Dieses Tool ist ein sehr präzises Werkzeug, um das Systemprotokoll zu zeigen, zu filtern und zu bearbeiten. Da eine ungefilterte Ausgabe des Journals uferlos ausfällt, eignen sich zur Analyse folgende Filteroptionen: Die Befehle

journalctl --boot
journalctl --since today

bringt nur die Meldungen seit dem letzten Systemstart beziehungsweise die des heutigen Tages. Nach journalctl –list-boots kann auch jede beliebige Boot-ID mit journalctl –boot [ID] abgefragt werden. Ebenfalls systematisch ist die Eingrenzung nach einem Systemdatum

journalctl --since "2020-09-18"

oder zusätzlich nach einem bestimmten Ereignislevel:

journalctl --priority "crit" --since
"2020-09-18"

Priority-Level wie hier („crit“) können durch ein Schlüsselwort oder durch eine Kennziffer übergeben: „emerg“ (0), „alert“ (1), „crit“ (2), „err“ (3), „warning“ (4), „notice“ (5), „info“ (6), „debug“ (7). Ein Level kumuliert immer alle Meldungen der niedrigeren Stufen, das heißt: „crit“ (2) präsentiert auch die Level 0 und 1.

Wer genau weiß, wo er ein Problem zu suchen hat, kann auch gleich nach dem betreffenden Dienst („unit“) eingrenzen. Die Protokollausgabe von

journalctl --unit apache2.service --since
"2020-08-01"

zeigt alle Meldungen des Apache-Servers ab dem angegebenen Datum.

Nicht zuletzt kann journalctl den Umfang der Systemprotokollierung steuern. Mit

journalctl --disk-usage

fragen Sie die den aktuellen Umfang ab. Befehle wie

journalctl --vacuum-size=300M
journalctl --vacuum-time=30d

können das Journal auf 300 MB reduzieren oder auf die Aufzeichnung der letzten 30 Tage kürzen. Wer dies nicht manuell erledigen will, kann auch die /etc/systemd/journald.conf ändern, um ein solches Limit dauerhaft einzustellen.

Homectl: Dieses hochkomplexe Tool ist ein großes Versprechen, weil es das Home-Verzeichnis portabel macht und etwa auf einem USB-Laufwerk einrichtet:

homectl create linux --real-name="Linux Welt"
--image-path=/dev/disk/by-id/usb-WD_My_Passport_476fff954b2b5c44-0:0

Solche Homes können dann nach Bedarf am System ein- und ausgehängt werden. Alle Probleme bei Dateisystemen und Benutzerrechten sind aber offenbar noch nicht gelöst, sodass homectl derzeit noch auf den allermeisten Distributionen fehlt.

Weitere Beispiele: Ein weiteres systemd-Werkzeug hat gewisse Popularität erreicht, da es Startprobleme, also Verzögerungen des Systemstarts, in aller Präzision offenlegt. Die simpelste Form („time“ kann auch entfallen)

systemd-analyze time

zeigt nur eine knappe Angabe zur Dauer des Systemstarts, differenziert aber bereits Bios/Firmware, Bootloader, Kernel und Benutzerkonto. Die Befehle

systemd-analyze blame
systemd-analyze plot > start.svg
systemd-analyze dump > dump.txt

bringen in unterschiedlicher Darstellung die millisekundengenaue Abfolge des Systemstarts, wobei mindestens die Option „dump“ über das Informationsbedürfnis normaler Anwender deutlich hinausgeht.

Wer sich über die geltenden Systempfade und ihre Funktion informieren will, ist mit dem einfachen Befehl

systemd-path

bestens beraten. Eine ebenfalls vergleichsweise einfache Funktion erfüllt dieses Kommando (Beispiel):

systemd-cat lsblk

Eigentlich ist systemd-cat ein interner Befehl für systemd-Dienste, um an das Systemjournal zu berichten. Der Benutzer kann dies aber auch manuell tun: Die Befehlsausgabe von lsblk würde hier an das Journal angehängt und kann mit journalctl jederzeit wieder abgefragt werden.

Startanalyse mit systemd: Dieser Befehl entwickelt sich zum verbreiteten Standard, um Startverzögerungen von Linux-Systemen zu ermitteln.

Basis-Kommandos von Systemctl

Systemctl ist aktuell das wichtigste und mächtigste Werkzeug von systemd. Die lehrbuchmäßige Syntax folgt – wie bei allen systemd-Tools – diesem Muster:

systemctl Befehl [--Option]

Einige besonders einfache, aber nützliche Systemkommandos wie

systemctl poweroff 
systemctl suspend
systemctl rescue

benötigen keine weiteren Optionen. Typischer ist folgendes konkrete Beispiel:

systemctl list-units --type=service
Gute Übersicht bei geänderten Systemdiensten: Die Spalte „Vendor Preset“ informiert über den Standard der jeweiligen Distribution

Dies liefert eine Übersicht der laufenden und beendeten Dienste. Dieser Befehl ist nicht so weit entfernt vom altgedienten service –status-all, ist aber auch nur ein Vorgeschmack der Möglichkeiten. Der Filter „–type=service“ zeigt schon, dass systemctl eine wesentlich größere Reichweite hat. Weitere „unit“-Klassen sind „socket“, „device“, mount“, „automount“, „swap“, „target“, „path“, „timer“, „snapshot“, „slice“ und „scope“. Das Kommando ohne weitere Filter

systemctl list-units

zeigt alle Systemd-Klassen. Wir müssen uns im Folgenden auf wenige Beispiele zur Dienste-, Target- und Timer-Verwaltung beschränken. Beachten Sie, dass jede einzelne Unit ihre eigene Konfigurationsdatei besitzt, die mit

systemctl edit --full [unit.name]

bearbeitet werden und folglich auch vom Systembenutzer selbst angelegt werden kann.

Target-Units: Um alle geladenen „targets“ aufzulisten, ist dieser Befehl geeignet:

systemctl list-units --type=target --state=loaded

Hier tauchen dann unter anderem „emergency“ oder „rescue“ als inaktive „targets“ auf. Das Kommando

systemctl isolate rescue.target

ist eine gravierende Aktion, da sie ohne Umschweife in die Wiederherstellungskonsole führt und „isolate“ alles beendet, was für das angeforderte „target“-Ziel nicht benötigt wird. Ein weiterer praxisnaher Einsatz von systemd-„targets“ ist der Wechsel vom Desktop- zum Serverbetrieb. Wenn ein Desktop läuft (multi-user.target), aber auf einem Server unnötig ist, dann schaltet

systemctl set-default multi-user.target

die Oberfläche ab und spart damit viel Ressourcen. Der Befehl

systemctl set-default graphical.target

kann den Desktop wieder einschalten.

Service-Units: Die wichtigsten Befehle zur Diensteverwaltung lauten wie folgt:

systemctl status [name].service
systemctl stop [name].service
systemctl start [name].service
systemctl restart [name].service

Diese Kommandos, angewandt etwa konkret auf den Dienst ssh.service, sind weitgehend selbsterklärend. „stop“ und „start,“ oder einfacher „restart“ sind häufig erforderlich, wenn der betreffende Dienst eine Konfigurationsänderung neu einlesen und berücksichtigen soll. Zum nachhaltigen Beenden eines Dienstes ist diese Abfolge einzuhalten:

systemctl stop [name].service
systemctl disable [name].service
systemctl mask [name].service

„disable“ deaktiviert einen Dienst, verhindert aber nicht, dass diesen ein anderer Systemdienst unter der Haube neu aktiviert. Der „mask“-Befehl macht auch dieses unmöglich. Gegebenenfalls kann

systemctl unmask [name].service

den Dienst wieder zugänglich machen.

Diverse Dienste zeigen als Status den Eintrag „static“. Diese lassen sich weder stoppen noch deaktivieren. In dieser LinuxWelt finden Sie im Special „Linux in Tabellen“ auch eine Tabelle mit den typischen Linux-Diensten: Die knappe Übersicht informiert, welche Dienste eventuell entbehrlich sind.

Eingriffe in die Systemdienste sind immer heikel, aber systemctl kann diese nicht nur erledigen, sondern bietet auch gute Kontrolle. Eine hervorragend lesbare Übersicht mit farbigen Markierungen („disabled“ rot, „enabled“ grün) zeigt dieser Befehl, der nicht die Dienste, sondern die darunterliegenden Konfigurationsdateien abfragt:

systemctl list-unit-files --type=service

Zusätzlich zur Farbmarkierung erscheint in der rechten Spalte die Distributionsvorgabe („Vendor Preset“). Somit erkennt man sofort, was am System nachträglich geändert wurde.

Timer-Units: Systemd ist auf dem Weg, zahlreiche alte Zöpfe abzuschneiden. Dienste, Netzwerk, Geräte, Umgebungsvariablen, Mount-Aktionen sind ebenso betroffen wie die alten Cronjobs, denn systemd kann auch zeitgesteuerte Aufgaben übernehmen („timer“). Ganz trivial ist das allerdings nicht, denn damit steckt man mitten in der systemd-Verwaltung. Der Aufbau einer Timer-Unit sieht etwa so aus:

  • [Unit]
  • Description=Backup
  • [Timer]
  • OnCalendar=10:00
  • [Install]
  • WantedBy=basic.target

Die Zeitsteuerung geschieht im Abschnitt “Timer”. Die Beispieleinträge bedeuten, dass der Job „Mein Backup“ täglich um 10 Uhr ausgeführt wird, und die Install-Sektion stellt mit „basic.target“ klar, dass der Job immer ausgeführt werden soll. Nun muss aber unter /etc/systemd/system für jede Timer-Unit (etwa fstrim.timer) eine gleichlautende Service-Unit existieren (fstrim.service). Diese Datei enthält dann als „ExecStart=…“ das Kommando oder Script, das periodisch ausgeführt werden sollen. Diese Datei könnte dann so aussehen:

  • [Unit]
  • Description=Backup
  • [Service]
  • ExecStart=/home/lw/backup.sh

Um einen so definierten Timer interaktiv zu laden, hilft wieder systemctl:

systemctl start backup.timer

Der weitere Befehl

systemctl enable backup.timer

aktiviert die neue Timer-Unit dauerhaft.

MX Linux (19.2)

August 2020: Seit Monaten herrscht auf Platz 1 der Rangliste von Distrowatch eine Distribution, der man eigentlich nur eine Nischendasein zutraut: MX Linux. Was sind die Gründe für das offensichtlich große Interesse an diesem System?

MX-Linux
MX Linux: Ein sehr hübscher XFCE-Desktop auf Debian Stable, eine Vielzahl von Desktop- und Systemtools sowie Spezialisierung für den Live-Betrieb sind die Kennzeichen dieses Systems.

Die nur auf sich selbst bezogene Klickperformance von distrowatch.com sollte niemand überschätzen. Platz 1 auf Distrowatch ist kein Indiz für die tatsächliche Verbreitung einer Linux-Distribution. Dennoch ist dies für uns Anlass genug, einen genaueren Blick auf MX Linux zu werfen. MX Linux wurde im Frühsommer auf Version 19.2 aktualisiert, erhielt aber schon vorher diese erstaunliche Beachtung. Die Heft-DVD liefert MX Linux 19.2 in der 64 Bit-Variante mit. Die 32-Variante sowie eine Spezialvariante für sehr alte Hardware erhalten Sie unter https://mxlinux.org/download-links/.

Was kennzeichnet MX Linux?

Die Basisrezeptur von MX Linux ist nicht aufregend: Die Systembasis stellt ein konservatives Debian Stable 10 („Buster“), und als Desktop arbeitet ein ebenso konservativer XFCE 4.14. Linux-Kernel und vorinstallierte Software sind nicht mehr taufrisch, aber halbwegs aktuell. Der MX-eigene Installer ist funktionsarm und eigentlich nur für die Installation als alleiniges System zu empfehlen, Systemverschlüsselung mit Cryptsetup ist aber komfortabel integriert. Im installierten MX Linux finden Sie für die Softwareverwaltung die relativ spröden Alternativen MX Paket-Installer (mit Flatpak-Integration) oder Synaptic oder den noch spröderen Antix-Terminalinstaller oder schlicht das Terminalprogramm apt. Bei systemnahen Aktionen muss der Nutzer zwischen sudo-Benutzerkonto und root-Konto unterscheiden – in vielen Fällen ist tatsächlich das root-Konto notwendig. Ebenfalls ungewöhnlich ist, dass Sie bei größeren Updates eventuell erneut nach dem Ort des Grub-Bootloaders befragt werden – in der Regel „sda“. Die Software-Ausstattung ist opulent, die Fülle der zusätzlichen, zahlreichen Systemtools aber erst einmal unübersichtlich bis verwirrend, zum Teil redundant.

System- und Desktop-Werkzeuge: Damit sind wir aber an dem Punkt, wo die Waage bei MX Linux ins Positive kippt: Die Distribution ist mit Sorgfalt und Liebe zum kleinsten Detail ausgestattet, der XFCE-Desktop zeigt sich bereits ab Installation von seiner feinsten Seite. Aber die vielen MX-eigenen System- und Einstellungstools fördern darüber hinaus die Anpassung zu einem individuellen Desktop. Die „Einstellungen“ des Xfce4-Settings-Manager gehen über den üblichen Umfang deutlich hinaus: Neben eingebauten externen Tools wie System-Config-Samba (grafische Samba-Verwaltung) kommen vor allem MX-Eigenentwicklungen hinzu. „MX-Tweak“ ist einschlägig für die optimale Bildschirmskalierung (neben dem üblichen „Anzeige“-Applet), „MX-Werkzeuge“ (mx-tools) präsentiert eine opulente Sammlung von Systemwerkzeugen. Manches ist marginal, manches wie das Löschtool MX-Cleanup oder der MX-Menü-Editor auch in besserer Ausführung zu finden, aber unterm Strich bietet die Toolsammlung wirklich alles, was man an System- und Anpassungswerkzeugen erwarten kann. Die Sammlung von Conky-Desktopinfos (auswählbar mit dem Conky Manager) oder die grafische Bearbeitung der Bash-Konfiguration tendieren zu Detailverliebtheit. Handfester sind der „Benutzer-Manager für MX“, grafische Hilfen zur Bootreparatur („MX Bootreparatur“) und zur Anpassung des Grub-Bootmanagers („MX Boot Optionen“).

Ein weiteres Werkzeugpaar erscheint in der Sammlung der MX-Tools an oberster Stelle und nennt sich „MX Schnappschuss“ und „MX Live USB Erzeugung“. Es ist nicht auszuschließen, dass diese Tools einen Teil zur Popularität von MX Linux beitragen. Der Schnappschuss schreibt ein komplettes, angepasstes System in eine ISO-Datei, das dann mit dem zweiten Tool auf USB übertragen wird. Das Ergebnis ist ein perfekt ausgestattetes Livesystem auf USB. Ähnliches ist mit Linux auch auf anderen Wegen erreichbar, aber nirgendwo einfacher als hier.

Semi Rolling: MX Linux ist ein Semi-Rolling-Release – ein Kompromiss zwischen „Regulär“ und „Rolling“. Anders als bei regulären Distributionen wie Ubuntu & Co gibt es hier zwischendurch neue Software-Versionen, allerdings nur für Pakete, die größere Entwicklungssprünge gemacht hat – dies ist der Unterschied zu einem echten „Rolling Release“. Ziel ist es, einerseits höhere Aktualität zu bieten, andererseits Pannen durch Upgrades zu minimieren. Solange dies funktioniert, müssen Sie MX Linux niemals neu installieren.

MX-Installer
Das Installationsprogramm von MX Linux: Die Einrichtung als alleiniges System bereitet kein Kopfzerbrechen.

Die Einrichtungsvarianten

MX Linux charakterisiert sich als mittelschweres System (https://mxlinux.org/). Dies ist wohl seiner Nachbarschaft zu Antix Linux geschuldet (https://antixlinux.com/), mit dem es in enger Kooperation steht. Antix definiert sich eindeutig als Recycling-Spezialist für Hardware-Oldies. MX Linux ist aber bei allem Anpassungskomfort ein ebenfalls sehr genügsames und auch auf älterer Hardware agiles System. Bei kaum 450 MB Eigenbedarf für die 32-Bit-Variante sollte theoretisch schon ein GB RAM genügen. Ältere Notebooks mit 2 bis 4 GB sind ein ideales Ziel für die Distribution.

Ordentliche Installation: Die Einrichtung als alleiniges System ist nicht kompliziert: Im Bootmenü des Livesystems wählen Sie mit F2 die Sprache „Deutsch“ und mit F3 die Zeitzone „Berlin“. Dann starten Sie den obersten Eintrag „MX-19.2“. Eventuelle Fragen nach der Grafikkarte quittieren Sie ohne Auswahl mit Eingabetaste, starten zum Desktop des Livesystems und klicken auf den Installer-Link am Desktop. Als „Art der Installation“ wählen Sie „Automatische Installation“, womit MX Linux die gesamte Festplatte „sda“ übernehmen darf. Neben den Daten für den Erstbenutzer, die Sprache und die Zeitzone will der Installer ein root-Kennwort, einen Computernamen sowie die Samba-Arbeitsgruppe und einen Domain-Namen. Das Prozedere ist umständlicher als von Ubuntu & Co gewöhnt, aber letztlich pragmatischer, als diese Einstellungen später im laufenden System zu suchen. Zu diesem Installer-Konzept passt, dass man optional auch schon Standarddienste vorab ein- oder ausschalten kann.

Live-Betrieb auf USB: MX Linux ist nach dem Vorbild von Antix auch für den Live-Betrieb spezialisiert und läuft auch auf älterem USB 2.0 flüssig. Auf die Möglichkeit, mit zwei MX-Tools ein installiertes System im Handumdrehen auf USB zu befördern, haben wir bereits hingewiesen. Wenn dies der geplante Einsatz sein soll, ist es am besten, MX Linux als virtuelle Maschine unter Virtualbox oder Vmware zu installieren und anzupassen und daraus nach Bedarf ein neues Livesystem zu bauen. Das virtuelle System kann durch Updates aktualisiert werden.

Die Spezialisierung für den Live-Betrieb geht allerdings weiter: MX zeigt als Livesystem im Bootmenü den Punkt „Persist“, der mit F5 ausgeklappt werden kann. Von den vielen angezeigten Optionen empfehlen wir „persist_root“, da alle anderen Möglichkeiten entweder langsam sind oder einen lästigen Fragenkatalog mitbringen. Die Option speichert Änderungen am System im RAM, und beim Herunterfahren müssen Sie die Übernahme dieser Daten ins Livesystem explizit bestätigen. Damit ist ein flexibles MX Linux auch im Live-Betrieb möglich. Für große Änderungen empfehlen wir aber erneutes Remastern eines installierten Systems.

MX-Persistenz
Einsatz als Livesystem: Im Live-Betrieb bietet MX Linux diese Persistenzoptionen, um Systemänderungen zu speichern. Eine Kurzhilfe dazu finden Sie mit F1 unter „Hilfe“.

Linux und die Datenträger

Um Festplatten, SSDs und USB-Datenträger zu bearbeiten und zu kontrollieren, bringt der Linux-Desktop alles mit. Der Installer sorgt für die Einrichtung der Systempartition, Gnome-Disks & Co arbeiten als Allrounder im Alltag, und Gparted ist der Partitionierer für alle Fälle.

Hardware-seitig arbeiten Festplatten, SSDs und USB-Laufwerke unter Linux wie unter allen anderen Betriebssystemen. Einmal partitioniert, formatiert und eingebunden benötigen Datenträger nur noch gelegentliche Kontrollen der aktuellen Belegung und SMART-Checks auf eventuelle Fehler. Optimales Partitionieren, Formatieren und Mounten erforderten aber schon immer einiges Basiswissen, und diese Anforderungen an den PC-Nutzer sind in der aktuellen Übergangsphase mit fundamental unterschiedlichen Partitionsmethoden noch einmal gewachsen. Dieser Grundlagenbeitrag komprimiert die wesentlichen theoretischen und praktischen Probleme

Partitionieren und Partitionsstil

Grundlegendste Aktion bei der Festplattenverwaltung ist das Anlegen der Partitionstabelle mit dem Partitionsstil, ferner der optionalen Einteilung in mehrere Teile (Partitionen) sowie der optionalen Festlegung der Partitionsgrößen. Viele PC-Nutzer bekommen von der Partitionierung (zumindest auf der primären Systemfestplatte) gar nichts mit, weil diese das Installationsprogramm automatisch erledigt. Liegt dabei nur eine interne Festplatte vor, die nicht weiter unterteilt werden soll, entfallen alle Entscheidungen zum Partitionsstil und zur Aufteilung. Die Installer aller Ubuntu-basierten Systeme entscheiden dann selbständig anhand der Datenträgerkapazität über den Partitionsstil: Auf großen Laufwerken über 2 TB Kapazität kommt modernes GPT (GUID Partition Table) zum Einsatz, auf kleineren Laufwerken der alte MBR-Stil.

Der alte MBR-Partitionsstil (Master Boot Record, auch „msdos“-Partitionstabelle) kann Partitionen bis zu maximal 2,2 TB Größe verwalten. Für die mittlerweile gebräuchlichen Größen von 4 bis 12 TB ist der GPT-Partitionsstil erforderlich, sofern solche Festplatten als Ganzes genutzt und nicht in mehrere Partitionen aufgeteilt werden. Bei Festplatten mit mehr als 2 TB sollten Sie besser immer GPT verwenden. Bei kleineren Laufwerken ist GPT zur Nutzung der kompletten Kapazität nicht erforderlich, aber eventuell trotzdem sinnvoll, wenn der PC mit Uefi-Firmware (Unified Extensible Firmware Interface) ausgestattet ist und Sie vielleicht auch Windows parallel installieren wollen.

Werkzeuge: Die grafischen Systemtools Gnome-Disks („Laufwerke“) oder die KDE-Partitionsverwaltung können den Partitionsstil einer Festplatte kontrollieren und ändern. Die Umstellung des bestehenden Partitionsstils geht allerdings immer mit komplettem Datenverlust einher. Wir beschreiben den Vorgang nicht mit den Desktop-spezifischen Werkzeugen, sondern mit dem bekannten Partitionierungswerkzeug Gparted. Gparted ist zwar nicht überall Standard, aber bei Bedarf schnell nachinstalliert (sudo apt install gparted in Debian/Ubuntu/Mint). In Gparted sehen Sie über „Ansicht -> Geräteinformationen“ in der Zeile „Partitionsstil“ den aktuellen Partitionsstil der gewählten Festplatte – meistens „msdos“ (MBR) oder „gpt“ (GPT). Über das Menü „Gerät -> Partitionstabelle erstellen“ können Sie den bisherigen Stil ändern. Nach einem Klick auf „Anwenden“ erzeugt Gparted eine neue Partitionstabelle. Über „Partition -> Neu“ erstellen Sie danach eine neue Partition.

Hinweis 1: Partitionen lassen sich, egal ob mit Gparted oder einem anderen Werkzeug, nur bearbeiten, wenn sie vorher aus dem Dateisystem ausgehängt wurden. Gparted erledigt dies nach Rechtsklick auf die Partition mit „Aushängen“. Falls das Aushängen scheitert, schließen Sie alle Programme inklusive Dateimanager, die den Vorgang durch ihren Zugriff verhindern könnten. Auch Netzwerkdienste wie Samba können die Bearbeitung blockieren. Wer Unmount-Blockaden ausschließen will, bootet am besten ein unabhängiges Livesystem mit Gparted.

Hinweis 2: Gparted sammelt Aufträge wie das Löschen, Erstellen oder Formatieren von Partitionen zunächst, ohen sie auszuführen. Erst „Bearbeiten -> Alle Vorgänge ausführen“ startet die eigentliche Aktion.

Unter Windows zeigt die „Datenträgerverwaltung“ (diskmgmt.msc) nach Rechtsklick auf „Datenträger [x]“ und „Eigenschaften“ auf der Registerkarte „Volumes“ den Partitionsstil an („MBR“ oder „GPT“).

Wenn keine grafische Oberfläche zur Verfügung steht, gibt es auch Terminaltools für die Festplattenverwaltung. Der Befehl

sudo fdisk -l

zeigt für die Laufwerke auch den aktuellen Partitionsstil an – hier neben „Festplattenbezeichnungstyp“ als „dos“ oder „gpt“. Für das Schreiben einer anderen Partitionstabelle, also zum Ändern des bisherigen Partitionsstils, verwenden Sie

sudo sgdisk -g /dev/sd[X]

nach GPT oder

sudo sgdisk -m /dev/sd[X]

zum Schreiben einer MBR-Partitionstabelle. Ersetzen Sie dabei „[X]“ jeweils durch die richtige Kennung des Laufwerks. Bei reinen Datenpartitionen (nur Benutzerdaten) kann mit diesen Befehlen sogar eine Umwandlung des Partitionsstils ohne Datenverlust gelingen. Wir raten aber davon ab, sich darauf ohne Sicherung zu verlassen.

Auch große Festplatten lassen sich im MBR-Stil durch Partitionierung komplett nutzen. Jedoch scheitert der Versuch, große Festplatten (hier mehr als 5 TB) als eine Partition anzulegen.
Ändern des Partitionsstils nach GPT: Dies schreibt die Partitionstabelle neu und bedeutet in der Regel einen kompletten Datenverlust auf dieser Festplatte

Partitionen löschen und anlegen

Das Löschen von Partitionen und Einrichten neuer Partitionen erledigen die typischen Gnome- und KDE-Tools ebenso wie Gparted. Gparted zeigt nach Rechtsklick auf die symbolische Partitionsfläche die Option „Löschen“. Dies impliziert in der Regel (und mit Gewissheit nach anschließenden Größenänderungen und Formatierung) den kompletten Datenverlust auf dieser Partition. Die Option „Neu“ zum Erstellen einer neuen Partition ist im Kontextmenü nur aktiv, wenn ein freier, nicht genutzter Bereich angeklickt wurde. Es muss also erst eine Partition gelöscht werden, um deren Platz („nicht zugeteilt“) dann neu zu nutzen. Mit dem anschließend angezeigten Schieberegler bestimmen Sie dann, ob die neue Partition den kompletten Platz erhalten soll oder eine Aufteilung in mehrere Partitionen erfolgen soll. Wenn Sie nur einen Teil der Kapazität verwenden, verbleibt danach „nicht zugeteilter“ Platz, den Sie danach mit „Neu“ auf analoge Weise partitionieren.

Partitionsstil (MBR/GPT) und Multiboot

Der Partitionsstil (GPT) ist nicht nur wichtig für große Datenträger jenseits der 2,2-TB-Grenze, sondern spielt auch eine entscheidende Rolle, wenn mehrere Systeme parallel installiert werden sollen – oft Linux neben Windows. Das Thema ist komplex, weil hier auch das Rechner-Bios mitspielt – Uefi (Unified Extensible Firmware Interface) oder Bios (Basic Input Output System). Theoretisch gibt es jede Kombination: Typisch ist Bios/MBR sowie Uefi/GPT, jedoch ist auch Bios/GPT und Uefi/MBR möglich. Das heisst, dass auch ein altes Bios Systeme von GPT-Partitionen oder ein modernes Uefi vom alten MBR booten kann. Ein Multiboot mit Windows funktioniert aber nur auf Bios/MBR oder Uefi/GPT.

Der theoretisch anspruchsvolle Knoten ist aber in der Praxis leicht zu lösen: Sie orientieren sich bei einer Parallelinstallationen einfach daran, was schon vorliegt und installieren dann im selben Modus. Ob das schon vorhandene System den Bios- oder Uefi-Modus verwendet, erfahren Sie unter Linux im Terminal durch Aufruf dieses Tools:

efibootmgr

Ist das Tool nicht vorhanden oder lautet dessen Ausgabe „EFI variables are not supported on this system“, dann läuft das System im Bios-Modus. Unter Windows informiert das Systemtool Msinfo32. Hinter „BIOS-Modus“ steht bei Systemen im Bios-Modus „Vorgängerversion“, andernfalls „UEFI“. Letzteres ist bei allen neueren PCs mit vorinstalliertem OEM-Windows die Regel.

A. Liegt ein altes Bios und ein im MBR-Stil installiertes Erstsystem vor, ist die Lage eindeutig und es kann jedes 32- oder 64-Bit-System (Linux oder Windows) parallel installiert werden.

B. Liegt altes Bios, aber GPT-Partitionierung vor, kann nur ein 64-Bit-Linux installiert werden.

C. Liegt neues Uefi mit altem MBR-Stil vor (das geht vorläufig noch via Compatibility Support Module), kann jedes 32- oder 64-Bit-System (Linux oder Windows) parallel installiert werden. Dabei muss man den Rechner über das Bootmenü des Uefi-Bios starten (frühzeitiges Drücken der Taste F8, F12 oder Esc). Dort erscheinen dann die Laufwerke zwei Mal – einmal mit, einmal ohne den Vorsatz „UEFI“. Für MBR-Parallelinstallation wählen Sie Eintrag des betreffenden Installationslaufwerks ohne „UEFI“.

D. Liegt Uefi mit GPT-Stil vor, kann ein 64-Bit-System (Linux oder Windows) parallel installiert werden. Dabei muss man den Rechner über das Bootmenü des Uefi-Bios starten (frühzeitiges Drücken der Taste F8, F12 oder Esc). Für GPT-Parallelinstallation wählen Sie Eintrag des betreffenden Installationslaufwerks mit der Angabe „UEFI“.

Tipp: Trotz dieser relativ einfachen Fallunterscheidung kann man etwas falsch machen, was sich dann aber während der Installation des zweiten Systems schnell zeigt: Wenn kein Erstsystem erkannt wird und das neue System die gesamte Festplatte in Anspruch nehmen will, müssen Sie die Installation abbrechen.

System im Bios- oder Uefi-Modus? Unter Linux beantwortet der Befehl efibootmgr diese Frage. Unter Windows hilft das Standardprogramm Msinfo32.
Friedliche Koexistenz: Ubuntu & Co installieren sich im Uefi-Modus neben dem Windows Boot-Manager und integrieren den Windows-Bootloader in das Grub-Menü.

Partitionsgrößen nachträglich ändern

Die Einteilung (oder Nicht-Einteilung) eines Datenträgers kann sich nachträglich als ungünstig herausstellen. In diesem Fall besteht die Möglichkeit, eine bestehende Partition ohne Datenverlust zu verkleinern und auf dem frei werdenden Speicherplatz eine neue Partition anzulegen. Wirklich notwendig ist dieses Vorgehen aber nur in dem Fall, dass Sie ein weiteres Betriebssystem installieren wollen.

Werkzeuge: Erfreulicherweise sind die Installationsprogramme aller Ubuntu-Desktopsysteme auf die Situation vorbereitet, dass die Partition eines bestehenden Betriebssystems verkleinert werden muss. Mit der Option „Ubuntu neben [XXX] installieren“ schlägt der Installer eine neue Aufteilung der Partitionen vor, indem er die Partition des bestehenden Systems verkleinert und Platz für das neue System schafft. Die gewünschten Partitionsgrößen lassen sich einfach mit der Maus über die Aufteilungsmarkierung einstellen.

Im Falle einer gewünschten Größenänderung ohne Installation oder ohne einen Installer, der solche Größenänderungen beherrscht, hilft wieder Gparted. Beachten Sie, dass Gparted nur ausgehängte Partitionen bearbeiten kann und folglich die Systempartition eines laufenden Systems tabu bleibt. Zugriff auf alle Festplatten hat Gparted nur, wenn es auf einem unabhängigen Livesystem läuft. In Gparted wählen Sie zunächst rechts oben Sie den gewünschten Datenträger. Klicken Sie dann die Partition an, die Sie bearbeiten wollen, und wählen Sie im Kontextmenü „Größe ändern/Verschieben“. Wählen Sie mit dem Regler die gewünschte Partitionsgröße oder tragen Sie die Größe hinter „Neue Größe (MiB):“ manuell ein. Danach klicken Sie auf „Größe ändern“. Gparted erledigt diesen wie alle Aufträge erst nach „Bearbeiten -> Alle Vorgänge ausführen“.

Unter Windows gibt es die Datenträgerverwaltung (diskmgmt.msc), die nach Rechtsklick auf einer Partition die Option „Volume verkleinern“ anbietet. Die Größe der neuen Partition definieren Sie dann mit dem Wert neben „Zu verkleinernder Speicherplatz“. Dies ist eine weitere Möglichkeit, um eine Parallelinstallation eines Linux vorzubereiten, das kein ausreichendes Partitionierwerkzeug mitbringt.

Gparted verkleinert Partitionen ohne Datenverlust: Das können inzwischen auch andere Partitionsmanager, aber keiner so zuverlässig wie der Altmeister.

Formatieren: Die Dateisysteme

Partitionieren und Formatieren erscheinen in grafischen Tools in einem Dialog wie eine Tateinheit. Tatsächlich bedeutet Partitionieren das Aufteilen von Festplattenbereichen, während Formatieren bereits weitaus Betriebssystem-näher das Dateisystem für die jeweilige Partition bestimmt. Dateisysteme wie FAT32 beschränken sich auf eine relativ simple Verweisbibliothek zum Auffinden der Daten, Dateisysteme wie Ext4 oder NTFS erweitern diese Basisfunktion um Rechteattribute und Wiederherstellungsprotokolle (Journaling), Dateisysteme wie BTRFS erlauben sogar Snapshots des Partitionszustands und die Rückkehr zu einem früheren Zustand.

Trotz zahlreicher weiterer Dateisysteme wie F2FS, JFS, ZFS, ReiserFS, XFS ist die Wahl auf einem Desktopsystem nicht schwer: Für die Systempartition, aber auch für alle sonstigen Datenträger, die nur am Linux-System genutzt werden, ist Ext4 die solideste Wahl. Das gilt auch für Laufwerke, die Netzfreigaben leisten sollen.

Dateisysteme sind allerdings nicht beliebig kompatibel. So kann (oder will) Windows mit Ext4-formatieren Datenträgern nichts anfangen. Wenn Datenträger wie also interne Festplatten (bei Multiboot) oder mobile USB-Datenträger für den Datenaustausch zwischen Linux und Windows genutzt werden, sind andere Dateisysteme zu erwägen:

* Für kleinere interne oder externe Laufwerke (USB-Sticks), die für unkomplizierten Datenaustausch dienen sollen, eignet sich im einfachsten Fall eine Formatierung mit dem FAT32, das alle Betriebssystem ohne Hilfsmittel beherrschen und auch selbst formatieren können. Auf FAT32 ist allerdings die maximale Dateigröße auf vier GB limitiert. Wenn diese Grenze stört, kommt eventuell das Microsoft-Dateisystem exFAT in Betracht. Linux beherrscht exFAT demnächst standardmäßig, vorläufig ist noch die Nachinstallation des kleinen exFAT-Treibers ist mit

sudo apt install exfat-fuse exfat-utils

erforderlich. Danach können Sie exFAT-Datenträger sofort mit Linux-Dateimanagern nutzen und mit Werkzeugen wie Gnome-Disks („Laufwerke“) auch mit exFAT formatieren („Partition formatieren -> Andere -> exFAT“). Gparted hat exFAT zwar in seiner Dateisystemliste, will aber bislang nicht mit exFAT formatieren (inaktiv).

* Sind nur Linux- und Windows-Rechner im Spiel, ist das Microsoft-Dateisystem NTFS erste Wahl. Linux wie Windows haben dort Lese- und Schreibzugriff, Linux wie Windows können mit NTFS formatieren. Mac OS X kann NTFS standardmäßig nur lesen.

Werkzeuge: Gparted erledigt die Formatierung einer Partition nach Rechtsklick und „Formatieren als“, wonach die Liste der unterstützten Dateisysteme angeboten wird. Standardprogramme wie Gnome-Disks beherrschen diese Pflichtaufgabe natürlich ebenso („Partition / Laufwerk formatieren“), bieten dabei zwar weniger Dateisysteme, leisten aber Anfängerunterstützung, indem sie die Kompatibilität der Dateisysteme skizzieren – etwa „Zur Nutzung mit Windows (NTFS)“.

Wenn Sie die Kommandozeile benutzen müssen, verwenden Sie den Befehl mkfs („make filesystem“):

sudo mkfs.ext4 -L [Bezeichnung] /dev/sd[XY]

Nach „mkfs.“ folgt die Angabe des Dateisystems „ext4“, hinter „-L“ („Label“) geben Sie optional eine Bezeichnung an, anhand derer sich die Partition später im Dateimanager leichter identifizieren lässt. Den Platzhalter „[XY]“ ersetzen Sie durch die Laufwerksbezeichnung und Partitionsnummer, etwa „/dev/sdb1“ oder „/dev/sdc2“. Für andere Dateisysteme gibt es entsprechende Tools, beispielsweise mkfs.ntfs oder mkfs.vfat (FAT32).

Formatieren mit Gnome-Disks: Das Tool „Laufwerke“ beschränkt sich auf die populärsten Dateisysteme, hilft aber bei der Auswahl. Gparted ist mächtiger, setzt aber Kompetenz voraus.
Formatieren im Terminal: Für jedes Dateisystem gibt es ein eigenes mkfs-Tool. Rufen Sie das Tool ohne Parameter auf, um eine Übersicht der Optionen zu erhalten.

Mounten: Statisch und dynamisch

Mounten ist Pflicht: Jede Partition muss an definierter Stelle (Mountpunkt) in das Dateisystem eingebunden werden. Die einzige Partition, die in jedem Fall statisch beim Systemstart eingebunden wird, ist die Systempartition. Dies wird schon bei Installation festgelegt, wenn Sie den Installationsort bestimmen und als Mountpunkt („Einbindungspunkt“) das Wurzelverzeichnis „/“ angeben. Resultat dieser Aktion ist ein Eintrag in der Datei /etc/fstab, die für alle statischen Mountaufträge zuständig ist (Beispiel):

UUID=[xxxxxxx] / ext4 errors=remount-ro 0 1

Manuelles Bearbeiten der /etc/fstab für weitere statische Mount-Aktionen kann sinnvoll oder notwendig sein: Auf Servern, die Laufwerke automatisch bereitstellen sollen, ist es unbedingt notwendig, diese Laufwerke in die fstab einzutragen. Auf Desktop-Rechnern übernimmt der Dateimanager durch dynamisches Mounten (siehe unten) viele Mount-Aufgaben. Dennoch kann es komfortabel sein, interne Laufwerke mit Benutzerdaten via /etc/fstab in einen klicknahen Ordner zu mounten. Unbedingt notwendig ist ein fstab-Eintrag auf Desktop-PCs, wenn Sie ein zusätzliches Laufwerk exakt an einer bestimmten Stelle des Dateisystems einhängen wollen.

Die für die /etc/fstab notwendigen Informationen sind die eindeutige UUID des Laufwerks (eine hexadezimale Ziffern- und Buchstabenfolge), der Mountpunkt und dessen Dateisystem (ext4, ntfs…). Alle diese Angaben liefert der Befehl

lsblk -f

Ein Eintrag für die fstab sieht dann im Prinzip so aus

UUID=[…] [Mountordner] [Dateisystem] [Optionen] 0 0

und im konkreten Beispiel etwa so:

UUID=BE43818F4A8138A3 /srv/data ext4 defaults 0 0

Die Partition/Festplatte mit dieser UUID wird dann automatisch im Ordner „/srv/data“ bereitgestellt. Der angegebene Mountordner muss existieren und sollte leer sein.

Die Komma-getrennten „Optionen“ enthalten im einfachsten Fall nur den Wert „defaults“, können aber auch komplex ausfallen (Fehlertoleranz, Dateirechte). Die Mount-Optionen sind schon deshalb eine Wissenschaft für sich, weil manche Dateisysteme ganz spezielle Eigenschaften besitzen, die mit den Optionen abgerufen werden können. Mit „defaults“, das eine Zusammenfassung von mehreren typischen Optionen ist, kommen Sie aber in den meisten Fällen ans Ziel.

Bevor Sie einen Rechner mit geänderter Datei /etc/fstab neu starten, lohnt sich immer ein manueller Test:

sudo mount -a

Dies lädt alle Geräte, die in der Datei /etc/fstab eingetragen sind.

Dynamisches Mounten: Auf dem Linux-Desktop erledigt der grafische Dateimanager den Großteil des Mount-Geschäfts. Wenn Sie ein USB-Laufwerk anschließen oder ein neues Laufwerk gerade neu formatiert haben, taucht dieses sofort in der Navigationsspalte des Dateimanagers auf. Nach einem Mausklick darauf erledigt der Dateimanager das Mounten in das Dateisystem, und zwar unter „/media/[Benutzername]/[Volume-Label]“. Bei Ubuntu verhält sich der Dateimanager abhängig von Benutzerrechten, Dateisystem und Laufwerkstyp unterschiedlich:

* Benutzer mit administrativen Rechten (Systemverwalter) dürfen interne und externe Laufwerke über den Dateimanager ein- und aushängen.

* Auch Systemverwalter erhalten bei Linux-Dateisystemen wie Ext4, BTRFS und XFS nur Lesezugriff, Schreibzugriff gibt es auf FAT32- und NTFS-Partitionen..

* Standardbenutzer dürfen über den Dateimanager nur externe Geräte (USB-Sticks und Festplatten) ein- und aushängen. Auf FAT32- und NTFS-Partitionen gibt es Lese- und Schreibzugriff.

* Standardbenutzer werden bei einem Klick auf interne, nicht eingebundene Laufwerke zur Eingabe des Systemverwalter-Passworts aufgefordert. Bei FAT32 und NTFS räumt Ubuntu Lese- und Schreibzugriff ein, auf Linux-Dateisystemen gibt es nur Leserechte.

Zusammengefasst gibt es beim dynamischen Mounten von USB-Laufwerken mit FAT32 und NTFS die wenigsten Rechteprobleme. Wenn USB-Laufwerke ein Linux-Dateisystem besitzen, müssen Sie die Rechte wie bei internen Laufwerken setzen, um Schreibrecht zu erreichen.

Mountpunkt ab Installation: Das Wurzelverzeichnis („/“) für die Systempartition wird schon bei der Installation festgelegt.
Statisches Mounten mit /etc/fstab: Alle Partitionen, die hier eingetragen sind, lädt Linux beim Systemstart automatisch in den angegebenen Mountpunkt.

Zugriffsrechte im Dateisystem setzen

Bei neu in das Dateisystem eingebundenen Ext4-Partitionen (ebenso XFS oder BTRFS) hat nur „root“ Schreibzugriff, andere Benutzer erhalten nur Lesezugriff. Wenn Sie der einzige Benutzer des Systems sind, können Sie es sich einfach machen. Mit

sudo chmod -cR 777 /mnt/Data

setzen Sie im betreffenden Mountpunkt (hier „/mnt/Data“) maximale Zugriffsrechte.

Bei Mehrbenutzersystemen ist die Rechtevergabe komplizierter. Hier steuern Sie den Zugriff über die Gruppenzugehörigkeit und Access Control Lists (ACL) mit dem Tool setfacl. Führen Sie im Terminalfenster folgende Befehle aus:

sudo chgrp plugdev /mnt/Data

sudo chmod g+rwx /mnt/Data

sudo chmod g+s /mnt/Data

sudo setfacl -R -dm u::rwx,g:plugdev:rwx,o::rx /mnt/Data

Diese Befehlszeilen erstellen ein Verzeichnis „/mnt/Data“ für den Datenaustausch. Es gehört der Gruppe „plugdev“, die Vollzugriff erhält. „chmod g+s“ bewirkt, dass das Gruppenattribut erhalten bleibt, wenn ein Benutzer neue Dateien oder Ordner anlegt. Mit setfacl setzen Sie die Standard-Zugriffsrechte, die auf alle enthaltenen und zukünftigen Elemente vererbt werden. Im Ergebnis erhalten alle Mitglieder der Gruppe „plugdev“ Lese- und Schreibzugriff. Zur Gruppe „plugdev“ gehören unter Ubuntu/Mint standardmäßig alle Benutzer.

Kapazitäten einfach erweitern

Das Verzeichnis /home mit den Benutzerdateien erfordert in aller Regel den meisten Plattenplatz. Sollte der Platz knapp werden, können Sie die Daten auf eine zweite Festplatte mit mehr Kapazität verlagern. Wichtig ist, dass gerade keine Dateien geöffnet sind, welche die Aktion blockieren.

Das Beispiel geht davon aus, dass eine zusätzliche Festplatte unter „/mnt/data“ eingebunden ist. Schließen Sie alle Programme und wechseln Sie mit Strg-Alt-F1 in die erste virtuelle Konsole. Dort kopieren Sie alle Verzeichnisse unter /home auf das zusätzliche Laufwerk und benennen das bisherige Home-Verzeichnis um:

sudo rsync -av /home/ /mnt/data/home

mv /home /home.bak

Beachten Sie beim rsync-Befehl den abschließenden Slash hinter „/home/“. Mit folgenden Befehlen erstellen Sie einen neuen Ordner „/home“ und hängen das Verzeichnis des neuen Laufwerks an dieser Stelle ein:

sudo mkdir /home

sudo mount -o bind /mnt/data/home /home

Funktioniert alles problemlos, dann sorgen Sie dafür, dass Linux den Ordner beim Systemstart automatisch vom primären Mount-Ordner nach /home abbildet. Dazu genügt eine zusätzliche Zeile der Datei /etc/fstab:

/mnt/data/home /home none bind 0 0

Mit Strg-Alt-F7 kehren Sie nun zur grafischen Oberfläche zurück und melden sich an. Ihr Home-Verzeichnis finden Sie so vor, wie Sie es verlassen haben – aber mit mehr Platz.

Tipp: Als alleiniger Systembenutzer lassen sich Plattenplatznöte unter /home/[user] noch einfacher beheben. Im Beispiel nehmen wir an, dass der Ordner ~/Videos zu viel Platz benötigt. Auch hier schließen Sie alle Programme und mounten im Terminal nach

mv ~/Videos ~/Videos.old

mkdir ~/Videos

den neuen Datenträger:

sudo mount /dev/sd[xy] ~/Videos

Danach verschieben Sie alle Inhalte aus „Videos.old“ nach „Videos“, was auch im Dateimanager geschehen kann. Eventuelle Rechteprobleme beheben Sie so:

sudo chmod -cR 777 ~/Videos

Hat dies alles geklappt, tragen Sie den Datenträger mit seiner UUID und Mountpunkt „/home/[user]/Videos“ in die Datei /etc/fstab ein.

Mount-Trick in der Datei /etc/fstab: Das unter /mnt/data eingehängte Laufwerk wird über eine zweite Zeile mit der Option „bind“ einfach ins Home-Verzeichnis verschoben.

Kontrolle des Datenträgerzustands (SMART)

Festplatten und SSDs protokollieren Statusinformationen (SMART-Werte), die Hinweise auf Fehler und Defekte geben. Die Werkzeuge Gnome-Disks und KDE-Partitionmanager zeigen die SMART-Werte interner Festplatten an. Das KDE-Tool äußert sich unter „Gerät -> Status“ relativ knapp, jedoch sollte eine positive „Gesamtbewertung: Healthy“ für einen Gesamteindruck ausreichen. Das Gnome-Tool ist unter „SMART-Werte und Selbsttests“ recht gesprächig, sollte aber vor allem hinter „Allgemeine Einschätzung“ die Aussage zeigen: „Das Laufwerk ist in Ordnung“. Bei SSDs steht hinter „wear-leveling-count“ in der Spalte „Normalisiert“ ein wichtiger Wert: Neue SSDs starten bei „100“ und der Wert reduziert sich mit der Zeit. Nähert er sich der „0“, müssen Sie das Laufwerk ersetzen.

Per USB angeschlossene Festplatten berücksichtigt das KDE-Tool ebenfalls, Gnome-Disks allerdings nicht. Hier benötigen Sie das zusätzliche Paket „smartmontools“ und folgenden Terminalbefehl:

sudo smartctl -H /dev/sd[x]

Wenn der Health-Test mit „PASSED“ beantwortet wird, ist die Tauglichkeit des Laufwerks schon erwiesen. Weitere Details gibt es nach

sudo smartctl -A /dev/sd[x]

und noch ausführlicher mit dem Parameter „-a“. Ein wichtiger Wert ist “ Reallocated_Sectors_Ct“, der die Zahl defekter Sektoren anzeigt und im Optimalfall eine „0“ bieten sollte. Gleiches gilt für „Spin_Retry_Count“, weil die hier gezählten, gescheiterten Anlaufversuche auf mechanische Mängel deuten. Seek- und Read-Errors sind hingegen kaum relevant.

Gnome-Disks und die KDE-Partitionsverwaltung lesen die SMART-Werte von Datenträgern aus. Die angezeigte SSD ist neuwertig und darf weitermachen:

Kontrolle der Festplattenbelegung

Auf Gnome-Desktops finden Sie das Tool Baobab („Festplattenbelegung“) im Hauptmenü. Es zeigt die Gesamtkapazität und den Füllstand von Datenträgern. Nach Klick auf dem Pfeil ganz rechts startet Baobab eine Ordneranalyse, die es nach kurzer Wartezeit als Kreis- oder Kacheldiagramm visualisiert. Das sieht hübsch aus, doch der Erkenntniswert hält sich in Grenzen. Viele Nutzer werden sich von

df -h | grep /dev/sd

im Terminal schneller und besser informiert fühlen. Vor allem die Prozentzahl („Verw%“) bietet gute Orientierung. Wer eine Größenanalyse der Verzeichnisse benötigt, ist mit einem weiteren Terminalwerkzeug

du -h

übersichtlich beraten. Wer es genauer wissen muss, kann auch das Tool Ncdu nachinstallieren. Das Terminalprogramm sortiert die Verzeichnisse nach der enthaltenen Datenmenge und kann auch aktiv löschen. Um das komplette Dateisystem zu durchforsten, muss man Ncdu auf der obersten Ebene starten („ncdu /“).

Verzeichnisgrößen mit Ncdu ermitteln: Auf SSH-verwalteten Servern ist Ncdu unverzichtbar und selbst auf dem Desktop eine Empfehlung.

Festplatten zusammenlegen

Der Logical Volume Manager (LVM) erlaubt das Anlegen einer „Volume Group“, in welche mehrere physische Laufwerke und Partitionen zu einem logischen Laufwerk zusammengefasst werden. Der angelegte Verbund ist dynamisch erweiterbar, enthaltene Datenträger können also wieder entnommen oder durch andere ersetzt werden. Das ist sehr flexibel, erhöht aber die Komplexität, zumal der Ausfall eines Datenträgers den ganzen Verbund gefährdet. LVM hat seinen Platz eindeutig auf Serversystemen mit flexiblen Kapazitätsansprüchen und ist nur erfahrenen Admins zu empfehlen.

In Ubuntu & Co kann LVM bereits bei der Installation gewählt werden. Damit wird die Systempartition zum ersten Volume der LVM-Gruppe. Notwendig ist dies nicht, da sich LVM auch nachträglich einrichten lässt – unabhängig von der Systempartition und ausschließlich für Datensammlungen. Mit dem standardmäßig installierten Terminaltool lvm ist die Einrichtung von LVM-Pools allerdings eine mühsame Angelegenheit. Ein grafisches Tool gibt es aktuell nur für KDE – den „KDE-Manager für Laufwerkspartitionen“ (KVPM), der durch das gleichnamige Paket installiert werden kann:

sudo apt install kvpm

Die Installation von kvpm ist auch unter Gnome-affinen Oberflächen (Gnome, Cinnamon, XFCE) möglich.

Mit KVPM ist der Ablauf dann recht bequem. Nachdem alle Laufwerke für den künftigen Datenpool angeschlossen, starten Sie den Manager mit root-Recht:

sudo kvpm

Klicken Sie in der Übersicht nacheinander mit rechter Maustaste auf alle Laufwerke und Partitionen, die zum neuen Pool gehören sollen, und wählen Sie „Filesystem operations -> Unmount filesystem“. Danach verwenden Sie das Menü „Volume Groups -> Create Volume Group“, markieren die Datenträger mit Kreuzchen und vergeben einen Gruppennamen. Nach „OK“ finden Sie im Register „Group: [Name]“ den zusammengelegten Speicher, den Sie nun – am einfachsten nach Rechtsklick auf den grünen Balken – mit „Create logical volume“ als ein logisches Volume definieren. Nutzen Sie mit dem Schieberegler den maximalen Platz und vergeben Sie einen Volumenamen. Der Speicherbalken ändert nun seine Farbe und nach Rechtsklick darauf können Sie den Speicherplatz in das Dateisystem mounten. Dabei ist noch ein beliebiges Dateisystem zu wählen und der gewünschte Mountpunkt.

KDE-Manager für Laufwerkspartitionen (KVPM): Hier werden drei Laufwerke unter dem Namen „The_Big“ zusammengefasst. Das Gesamtvolume muss dann noch formatiert werden.

Datenträger im Bereitschaftsmodus

Festplatten lassen sich in den Ruhemodus schicken. Die Gnome-affinen Ubuntus inklusive Mint können mit Gnome-Disks („Laufwerke“) einstellen, wann sich eine Festplatte abschalten soll. Wählen Sie dort die gewünschte Festplatte aus, und gehen Sie im Menü auf „Laufwerkseinstellungen“. Auf der Registerkarte „Bereitschaft“ setzen Sie den Schalter auf „An“ und stellen die Zeit ein, nach der die Festplatte sich abschalten soll. Die Zeitspanne reicht von „Niemals“ bis „3 Stunden“. Das funktioniert neuerdings auch mit externen USB-Laufwerken.

Wenn Gnome-Disks fehlt, kann auch hdparm im Terminal den Bereitschaftsmodus konfigurieren. Ermitteln Sie zuerst mit

blkid

die Laufwerke, Bezeichnungen und UUID-Kennungen. Ist die gewünschte Festplatte beispielsweise „/dev/sdb“, dann aktivieren Sie mit diesem Befehl den Ruhezustand:

sudo hdparm -y /dev/sdb

Wenn das funktioniert, können Sie eine automatische Abschaltung festlegen:

sudo hdparm -S 180 /dev/sdb

Der Wert hinter „-S“ steht für 180 mal 5 Sekunden, also 900 Sekunden oder 15 Minuten. Verwenden Sie „-S 0“, wenn sich eine bestimmte Festplatte niemals abschalten soll (siehe auch: man hdparm). Diese Maßnahme wirkt allerdings nur bis zum nächsten Neustart. Für eine dauerhafte Änderung bearbeiten Sie die hdparm-Konfigurationsdatei:

sudo nano /etc/hdparm.conf

Fügen Sie im Editor folgende Zeile am Ende der Datei an:

/dev/disk/by-uuid/[UUID] { spindown_time = 180 }

Die UUID-Kennungen ermittelt das Kommando blkid.

Hinweis: Der Bereitsschaftsmodus ist nur bei Daten- oder Backupplatten sinnvoll. Auf der Festplatte mit der Systempartition finden ständig Laufwerkszugriffe statt – die Festplatte würde also nach dem Abschalten sofort wieder anlaufen. Die Folge wäre mehr Verschleiß statt weniger.

Datenfestplatten in den Ruhemodus schicken: Gnome-Disks beherrscht diese Aufgabe, notfalls ist dies aber auch über hdparm im Terminal zu steuern.

Linux-Verzeichnisstruktur

 /  Wurzelverzeichnis, bei vielen Dateimanagern als „Rechner“ bezeichnet  
 /boot  systemkritischer Ordner mit den zum Booten notwendigen Dateien: Kernel, Bootmanager und Ramdisk  „initramrd“ mit Treiberausstattung  
 /boot/grub  systemkritischer Ordner mit den Konfigurationsdaten für den Grub-Bootmanager; optionale Eingriffe in die Datei  grub.cfg nur für erfahrene Benutzer  
 /bin  systemkritischer Ordner mit den zentralen ausführbaren Programmen, die für den Systembetrieb notwendig sind   (etwa bash, chmod, login, lsblk, mount …);  s. a. /sbin und /usr/bin
 /cdrom  alter Mountordner für den Inhalt optischer Laufwerke, eigentlich obsolet (ähnlich das inzwischen seltene /floppy)  
 /dev  Systemverzeichnis für Gerätedateien: Alle erkannten Geräte sind hier konsequent als Datei abgebildet  
 /etc  zentrales Verzeichnis für alle systemweiten Konfigurationsdateien, zum Teil als Einzeldateien im Hauptverzeichnis /etc wie etwa sudoers (sudo-Rechte), fstab (Laufwerke), mime-types (Dateitypen), shadow (Konten und Kenn wörter), zum größeren Teil in Extra-Verzeichnissen – prominente Beispiele: 
  /etc/apache2 für die Konfiguration des Apache-Webservers 
  /etc/apt/ mit der Liste der angemeldeten Paketquellen (sources.list und /etc/apt/sources.list.d) 
  /etc/samba mit der Konfiguration des Samba-Servers und der Windows-Freigaben (smb.conf) 
  /etc/ssh mit der Konfiguration von Open SSH als Client (ssh_config) und Server (sshd_config)  
  /etc/X11 für Konfigurationen der grafischen Oberfläche  
 /home  Sammelordner für alle sämtliche Benutzerkonten (mit Ausnahme von root)  
 /home/[user]/  Home-Verzeichnis eines Benutzers mit typischen Unterordnern für Benutzerdaten („Dokumente“, „Bilder“ etc.)
  /home/[user] ist neben den temporären Mountordnern /media/[user] und /run/user/[Konto-ID] das einzige Ver zeichnis mit allen Rechten für den Benutzer inklusive Besitzrecht 
 /home/[user]/.cache  benutzerbezogener Zwischenspeicher hauptsächlich für Schriften, Bildminiaturen und Systemicons  
 /home/[user]/.config  wichtiger versteckter Sammelordner für benutzerspezifische Softwareeinstellungen (Desktop-einstellungen, Sprache, Autostart, Webbrowser, Mail, Mime-Dateitypen, Software aller Art) 
 /home/[user]/.local  weiterer Sammelordner für Desktop-Benutzereinstellungen, die Priorität über allgemeine Einstellungen erhalten,  zum Beispiel eigene oder geänderte Verknüpfungen (.desktop-Dateien) unter ../.local/share/applications
 /lost+found  enthält nach Dateisystemprüfungen mit fsck gerettete Dateifragmente (in der Regel nur für Forensiker verwertbar)  
 /media  Mountordner für Wechseldatenträger wie USB- oder DVD-Laufwerke, wird beim Automount grafischer Oberflächen nach Anschluss von Medien in der Regel als Mountpunkt genutzt (macht /cdrom und /floppy obsolet). Die Inhalte werden dabei unter /media/[user]/[Laufwerk] mit allen Rechten für den aktuellen Benutzer geladen.
 /mnt  optionaler Ordner für temporäres und statisches Mounten externer Datenträger wie USB- oder DVD-Laufwerke   (wird vom Automount auf heutigen Systemen nicht mehr genutzt, siehe /media)
 /lib  und /lib64   systemkritische Ordner mit unentbehrlichen Systembibliotheken (32 und 64 Bit). Weitere lib-Ordner mit System bibliotheken (etwa /usr/lib, /var/lib) sind für Anwendungssoftware notwendig, aber nicht systemkritisch
 /opt  optionaler Sammelordner für nachträglich installierte Programme, die nicht zum Standardrepertoire einer Linux-Distribution gehören    
 /proc  und /sys Sammelordner für dynamisch abgefragte System- und Hardwaredaten aller Art, insbesondere zu CPU, RAM,  Kernel, Datenträger und Prozesse;  /proc ist Informationsquelle für viele Systemtools, etwa für CPU- oder RAM-Abfragen (Beispiel-Quelldateien: cpuinfo, meminfo, modules, mounts, partitions, uptime)  
 /tmp  Sammelordner für temporär benötigte Dateien bei der Softwareausführung und bei installationen – das einzige  Verzeichnis, auf das alle Systemkonten uneingeschränkten Schreibzugriff haben   
 /root  Home-Verzeichnis des Pseudo-Kontos root;  falls root aktiviert und genutzt wird, entstehen dieselben Unterver zeichnisse für Benutzerdaten und Konfigationsdaten wie bei /home/[user]
 /run   dynamische Informationsablage für alle Programme (tmpfs-Ordner während der Systemlaufzeit)  
 /run/user/[user-id]/gvfs/  Mountordner für automatisch eingehängte Netzressourcen unter Gnome-artigen Desktops (Gnome, Budgie, Cinnamon, XFCE)  
 /usr  kein „User“- oder „Benutzer“-Ordner, sondern der umfangreiche Sammelordner für die nicht-systemnahe Anwen dungssoftware („User System Resources“), also die am Desktop meistgenutzen Programme  
 /usr/bin  enthält die meiste Anwendungssoftware für die grafische Oberfläche (vgl. /bin und /sbin)  
 /usr/lib  bevorratet die zugehörigen Systembibliotheken für nicht-systemnahe Anwendungssoftware  
 /usr/local  ergänzender Softwareordner: ausführbare Programme unter /usr/local/bin haben Vorrang gegenüber dem Pfad /usr/bin  
 /usr/share/applications  Sammelordner für Programmstarter, die in Menüs oder am Desktop angezeigt werden  
 /sbin  systemkritischer Ordner mit zentralen ausführbaren Programmen für die Systemverwaltung, die nur mit root- Recht laufen (etwa fdisk, fsck, hdparm, mkfs, parted …); s. a. /bin und /usr/bin
 /srv  gemäß FSH-Standard (Filesystem Hierarchy) der Standard-Mountordner für Datenträger auf Serversystemen,  wobei manche Serversysteme nach wie vor /mnt oder /media verwenden
 /var/log  Sammelordner für Systemprotokolle  
 /var/spool  Verzeichnis für abzuarbeitende Warteschlangen, in erster Linie Druckaufträge  
 /var/www/html  Standardordner für Apache- oder Nginx-Webdienste  
VIRTUELLE ORDNER
 computer:///  Übersicht über alle physischen Datenträger sowie der aktuell eingehängten Netzwerkfreigaben  
 applications:///  Übersicht der installierten (Gnome-)Programme  
 burn:///  Dateien, die für das Brennen auf CD/DVD vorgemerkt sind  
 fonts://  Übersicht über die installierten Schriften  
 preferences:///  Systemeinstellungen – gleichbedeutend mit dem Aufruf gnome-control-center  
 trash:///  Papierkorb – gleichbedeutend mit Klick auf „Papierkorb“ im Dateimanager  

Die Linux-Desktops

Die Linux-Vielfalt hat zwei Ebenen: Neben der Auswahl des System-Unterbaus steht auch noch die Entscheidung für eine bestimmte Oberfläche. Derselbe Unterbau kann viele Desktop-Gesichter haben, derselbe Desktop verschiedenen Systemen dienen.

Eine saubere Grenzziehung zwischen Distributions- und Desktop-Vielfalt ist schwierig bis unmöglich. Ubuntu hat sich je nach Standarddesktop unterschiedliche „Distributionsnamen“ wie Kubuntu oder Xubuntu gegeben, obwohl dabei nur ein anderer Desktop (KDE und XFCE) auf demselben Ubuntu arbeitet. Wenn sich eine Linux-Mint-Variante als „Linux Mint XFCE Edition“ bezeichnet, darf man die Frage stellen, wieviel „Mint“ noch drinsteckt, da doch ein Ubuntu bei Mint den Systemunterbau legt und Linux Mint sich primär durch seinen Stammdesktop Cinnamon definiert. Wie Mint definieren sich auch andere Distributionen wie Elementary OS, Solus oder Bodhi Linux hauptsächlich durch ihren Desktop. Die Entscheidung für einen Desktop gibt aber nicht nur die Systembedienung vor: Sie bestimmt maßgeblich die Hardwareansprüche an RAM, CPU, GPU sowie Reaktions- und Startgeschwindigkeiten. Ein nackter Ubuntu Server ohne Desktop konsumiert etwa 50 MB RAM, während ein Ubuntu mit KDE-Oberfläche (Kubuntu) schon ab Start das 15-fache fordert (750 MB). Die richtige Einschätzung, was ein Desktop kann und für welche Hardware er taugt, ist daher für die Wahl des richtigen Systems unverzichtbar.

Desktops und Distributionen

Ein Linux-System kann bekanntlich mehrere Desktops aufnehmen. Folglich sollte es möglich sein, Desktops wie einen Mediaplayer oder eine Office-Suite als unabhängige Software zu beschreiben. Tatsächlich ist aber die Verzahnung zwischen Systembasis und Desktop dann doch komplexer als bei einer beliebigen Anwendungs-Software:
1. Die Parallelinstallation von Desktopumgebungen ist ein erheblicher Systemeingriff, und längst nicht alle Desktops vertragen sich überall problemlos nebeneinander.
2. Eine Desktop-Umgebung ist mehr als der Desktop: Sie bringt ein mehr oder weniger umfangreiches Softwarepaket mit, mindestens mit Dateimanager und Editor, oft mit Audio-und Video-Player sowie PDF- und Text-Viewer.
3. Der mit der Distribution ausgelieferte Desktop ist in der Regel sorgfältig vorkonfiguriert und unterscheidet sich von einem nachinstallierten Desktop. Diese Vorkonfiguration erspart oft erheblichen Anpassungsaufwand.
Einsteiger, Anfänger, Pragmatiker fahren daher am besten, wenn sie eine Linux-Distribution mit ihrer angestammten und mitgelieferten Standardoberfläche wählen.
Die nachfolgende Tabelle nennt 16 populäre bis exotische Linux-Desktops in alphabetischer Abfolge. Die nachfolgenden Kurzbeschreibungen orientieren sich hingegen an der Verbreitung und beginnen mit der Prominenz.

Stammdesktop unter Hardware-Anspruch Flexibilität Merkmale
Budgie Ubuntu Budgie / Solus noch moderat mittel klar und übersichtlich, gewöhnungsbedürftige Seitenleiste
Cinnamon Linux Mint moderat hoch einfache, klassische Basisbedienung und sehr flexibel
Fvwm (nur optional, z. B. in Debian) minimal mittel minimalistisch
Gnome Ubuntu Gnome / Fedora hoch gering elegant, modern, einfach, aber gewöhnungsbedürftig
KDE Kubuntu / Open Suse hoch exzellent komplexes, aber gereiftes Konzept
LXDE Lubuntu / Knoppix gering mittel einfach, klassisch, funktional, altmodische Optik
LXQT (LXDE-Nachfolger) (nur optional, z. B. in Manjaro) gering mittel einfach, klassisch, funktional
Mate Ubuntu Mate moderat hoch einfache, klassische Basisbedienung und flexibel
Moksha (E17) Bodhi Linux sehr gering hoch exotisch bis konfus, aber klein und schnell
Openbox Bunsenlabs minimal mittel minimalistisch, Anpassung anspruchsvoll
Pantheon Elementary OS mittel gering sehr einfach, elegant, aber puristisch
Pixel Raspbian (Raspberry Pi) gering mittel relativ einfach und klassisch
Trinity Q4-OS sehr gering hoch komplexer KDE-3-Fork, altmodische Optik
Unity Ubuntu noch moderat gering sehr einfach, intuitiv
Wmii (nur optional, z. B. in Debian) minimal gering minimalistisch und exotisch – ohne Mausunterstützung
XFCE Xubuntu gering bis moderat hoch klassisch, ausgereift, flexibel, etwas altmodisch

 

Für anspruchsvolle Linux-Anwender: Das komplexe KDE bietet maximale Anpassungsfähigkeit und hat mit KDE Plasma 5 ein geradliniges Gewand bekommen.

KDE: Anpassungsfähig bis detailverliebt

Eine der dienstältesten (seit 1996) und populärsten Desktop-Umgebungen ist KDE, das sich mit Version 4 erfolgreich neu erfand. KDE ist eine opulente Oberfläche für aktuellere Rechner mit Mehrkern-CPU, Open-GL-fähigen Grafikchip und vier GB RAM. Der Desktop ist ideal für fortgeschrittene Nutzer, die detaillierte Anpassungsoptionen zu schätzen wissen.
Der Plasma-Desktop stellt die Arbeitsoberfläche bereit mit Mini-Programmen (Plasma-Widgets) und dem Window-Manager Kwin, der für Fensterdarstellung und Effekte sorgt. Standardmäßig befinden sich die KDE-Bedienelemente am unteren Bildschirmrand. Ganz links gibt es in der Standard-Konfiguration das K-Menü mit Kategorien und Suchfeld. Neben dem K-Menü liegen die Taskleiste und daneben die Kontroll-Leiste mit Mini-Programmen (Lautstärke, Network-Manager, Zwischenablage). Eine aufgeräumte Übersicht aller Optionen bieten die „Systemeinstellungen“ im KDE-Menü. Daneben enthält die KDE-Umgebung herausragende Software wie den Dateimanager Dolphin, den Bildbetrachter Gwenview oder die Bildverwaltung Digikam. Empfohlene KDE-Distributionen sind Kubuntu, Ubuntu KDE Neon und Open Suse Leap.

Gnome 3: Der moderne Desktop

Gemessen an der Zahl der Gnome-affinen Nachfolger (Unity, Mate, Cinnamon, Pantheon, implizit auch XFCE, LXDE, LXQT) ist Gnome der produktivste Linux-Desktop. Mit dem fast 20 Jahre alten Ur-Gnome hat heutiges Gnome 3 freilich nicht mehr viel gemein. Version 3 war ein radikaler Neuanfang, der bewährte Elemente über Bord warf. Das neue Gnome-Bedienkonzept ist modern, schick, funktional, aber reduziert. An den Grundfunktionen lässt Gnome kaum Eingriffe zu. Flexibilität erhält Gnome hauptsächlich durch externe Erweiterungen (https://extensions.gnome.org). Gnome ist ein Desktop für aktuellere Hardware mit Mehrkern-CPU, 3D-Grafik und vier GB RAM.
Obwohl Gnome auf Elemente wie das Startmenü verzichtet, findet sich jeder Einsteiger schnell zurecht. Als Umschalter und Programmstarter dient die Übersichtsseite „Aktivitäten“, die über die Windows-Taste oder über die linke obere Ecke erreichbar ist. Dort gibt es Schnellstart-Icons und das wichtige Suchfeld. Die „Einstellungen“ liefern ein aufgeräumtes Menü für allgemeine Optionen wie Sprache, Hintergrundbild und Hardwarekonfiguration. Weitere Optionen sind in der Extra-Anwendung Gnome-Tweak-Tool untergebracht. Empfohlene Gnome-Distributionen sind Ubuntu Gnome, Fedora, Manjaro Gnome.

Elegant und modern: Gnome 3 zeigt auf Windows-Taste oder aktive Ecke links oben diese Übersicht mit Fenster- und Arbeitsflächenansicht sowie dem Suchfeld.

Ubuntus Unity: Vereinfachtes Gnome 3

Unity, seit 2011 und bis vor kurzem die Standardoberfläche von Ubuntu, ist ein reduziertes Gnome 3. Das einfache Bedienkonzept versteht jeder Nutzer auf Anhieb, allerdings bezahlt der Unity-Anwender den intuitiven Bedienkomfort mit dem Preis geringer Anpassungsmöglichkeiten. Trotz einfach wirkender Oberfläche bleibt Unity ein Gnome 3 mit nur geringfügig geringeren Hardware-Ansprüchen (siehe dort).
Die Bedienung erfolgt über zwei Standardleisten, die Starterleiste links und das Hauptpanel oben. Die Starterleiste ist eine Kombination aus Taskleiste und Favoritenleiste: Sie zeigt die aktuell laufenden Programme und zusätzlich die Programmfavoriten. Das oberste Symbol mit dem Ubuntu-Logo öffnet das Dash – die Suchzentrale für Programme und Dateien. Das Hauptpanel am oberen Rand bietet das Sitzungsmenü sowie Indikatoren wie Zeitanzeige und Netzwerk-Manager. Im Gnome-Control-Center („Systemeinstellungen“) gibt es fundamentale Funktionen der Hardware- und Desktop-Anpassung. Zusätzliche Möglichkeiten bietet das Unity Tweak Tool, das nachinstalliert werden muss. Die einzige Distribution mit Unity als Standarddesktop war bis Version 17.04 die Ubuntu-Hauptedition.

Cinnamon: Der Mint-Desktop

Cinnamon ist seit 2011 als konservative Alternative zum modernen Gnome 3/Unity entwickelt worden. Über die Jahre reifte eine sehr attraktive Oberfläche, die viele Elemente der Windows-Welt aufgreift und auf optimale Anpassungsfähigkeit Wert legt. Die ältere Gnome-2-Basis macht sich noch in einigen altmodischen Details bemerkbar (Leistenbearbeitung), insgesamt ist Cinnamon aber so ansehnlich wie flexibel und vergleichsweise sparsam. Der Desktop läuft auch auf nicht mehr taufrischen Geräten und ist mit 2 GB RAM alltagstauglich.
Die Systemleiste enthält ein klassisches und anpassungsfreudiges Startmenü und typische Elemente wie Fensterliste, Netzwerk-Manager und Arbeitsflächenwechsler. Großzügig sind auch die Optionen, um die Optik an eigene Wünsche anzupassen. Moderne Fensterthemen und Hintergründe für die Arbeitsfläche sind mit wenigen Mausklicks geändert. Generell ist das Angebot der zentralen „Systemeinstellungen“ breiter als das der reduzierenden Gnome/Unity-Desktops. Cinnamon ist Standard unter Linux Mint, der Einbau in andere Distributionen ist möglich, aber nicht ohne Risiko.

Mate: Klassisch und flexibel

Mit Mate entstand ebenfalls 2011 in Ablehnung des modernen Gnome 3 ein weiterer Fork von Gnome 2. Mate ist seither eine weitere Alternative für Anwender, die einen traditionellen Desktop bevorzugen. Die Oberfläche erhielt trotz althergebrachter Bedienkonzepte ein modernisiertes Äußeres und reicht an die Anpassungsfähigkeit von Cinnamon heran. Dabei gehört Mate zu den sparsamen Desktops und kommt notfalls ohne 3D-Grafikchip und schon mit 1 GB RAM aus.
Die wesentlichen Elemente der Arbeitsfläche sind die Leisten, die sich mit diversen Applets füllen und per Rechtsklick im Detail konfigurieren lassen. Die Systemeinstellungen heißen hier „Kontrollzentrum“, das alle Optionen zu Aussehen, Verhalten, Hardware-Einstellungen, Autostart-Programmen in einer aufgeräumten Übersicht zusammenfasst. Bekannteste Distribution mit Mate ist Ubuntu Mate, jedoch gibt es inzwischen von fast allen namhaften Distributionen eine Mate-Edition (Linux Mint, Debian, Fedora u. a.).

Klassisch und anpassungsfreudig: Mit dem Mate-Desktop lebt die Oberfläche von Gnome 2 in einer modernisierten Variante weiter.

XFCE: Linientreuer Klassiker

XFCE („X-Face“) gehört seit 1996 mit KDE und Gnome zu den Urgesteinen der Linux-Desktops, hat sich aber im Gegensatz zu diesen stets geradlinig entwickelt und nie revolutioniert. XFCE ist etwas angestaubt, aber perfekt für Nutzer, die klassische Elemente schätzen und selbst Hand anlegen mögen. Die funktionalen wie optischen Möglichkeiten sind umfassend, die Bedienung gelegentlich altmodisch, aber überall ausgereift und logisch. Nicht zuletzt hat XFCE bescheidene Ansprüche an die Hardware – 1 GB RAM ist üppig, ein 3D-Grafikchip nicht erforderlich.
Mit dem Dateimanager Thunar hat XFCE einen der wenigen seiner Art an Bord, die ein Drag & Drop von Dateien mit rechter Maustaste mit Kontextmenü beantworten. Im Konfigurationszentrum („Einstellungen“) sind alle Basics wie Monitor-Einstellung, Benutzerverwaltung, Themes, Fensteroptik oder Treibersuche. Hauptmenü („Whisker“) und Symbolleisten von XFCE sind eine lohnende Spielwiese: Es gibt diverse vorgegebene Elemente wie Arbeitsflächenumschalter, Sitzungsmenü („Aktionsknöpfe“) oder eine Mini-Kommandozeile. Auch bei Aussehen, Größe, Farbe, Transparenz oder Ausblendverhalten lassen XFCE-Panels keine Wünsche offen. Praktisch alle Distributionen bieten eine Variante dieses Klassikers. Ein sorgfältig konfiguriertes XFCE liefert etwa Xubuntu.

Xubuntu mit angepasstem XFCE-Desktop

LXDE/LXQT: Schlank und komplett

LXDE zeigt seit über 10 Jahren, dass ein kompletter Desktop keine Gigahertz-CPU braucht und dass 512 MB eine Menge Speicher sein können. Die funktionale Oberfläche benötigt inklusive System nur gut 150 MB. LXDE kombiniert für das Ziel einer möglichst sparsamen Lösung heterogene Elemente wie den Window-Manager Openbox und eigene Komponenten wie Lxpanels (Leisten) oder Lxappearance (Optik-Konfiguration). Die per Voreinstellung oft unnötig spröde Optik ist durch individuelle Anpassung deutlich optimierbar. LXQT ist der Nachfolger von LXDE, der die Integration von Software mit jüngeren QT-Bibliotheken leistet. Bei LXDE folgen solche Programme nicht der systemweit eingestellten Fensteroptik. Einfachster Weg zu einem sorgfältig vorkonfigurierten LXDE ist die Distribution Lubuntu.

Moksha (E17): Der schnelle Exot

Enlightenment („E“, aktuelle Version ist E19) vereint minimale Hardwareansprüche mit ansprechender Ästhetik und exorbitanter Konfigurierbarkeit. Verwirrende bis konfuse Optionen erschweren allerdings den Zugang. Moksha, der Standard-Desktop unter Bodhi Linux, hat als Fork von E17 etwas aufgeräumt, bleibt aber ein Desktop-Abenteuer. Die besonders schnelle und sparsame Oberfläche läuft auf älterer bis alter Hardware ohne 3D-Grafikchip und 512 MB bis 1 GB RAM.

Bodhi Linux mit angepasstem Moksah-Desktop

Trinity: Sparsames Retro-KDE

Trinity führt die längst eingestellte KDE-Version 3.5 als Fork weiter. Das Ergebnis ist eine schlanke Oberfläche, die allerdings im altbackenen Retro-Design daherkommt. Die Ansprüche des Desktops liegen etwa zwischen LXDE und XFCE. Hauptargument für Trinity ist die Tatsache, dass der KDE-Fork auch auf angestaubter Hardware die detaillierten Anpassungsoptionen eines KDE mitbringt. Unter den prominenten Distributionen ist Trinity rar. Der einfachste Weg ist der Einsatz der Distribution Q4-OS, wo Trinity als Standard arbeitet.

Der Trinity Desktop zeigt ein altes KDE 3.5, das als Abspaltung (Fork) mit kleinen Verbesserungen weiterlebt und von Kubuntu-Entwicklern nebenher gepflegt wird.

Schönlinge und Puristen

Pantheon: Dieser Desktop ist Standard der Distribution Elementary OS. Der aufgeräumte und ästhetische Desktop mit Mac-OS-Optik zeigt nur Starterdock und Systemleiste und bietet nur fundamentale Einstellungsoptionen. Zielgruppe sind Software-orientierte Desktop-Nutzer, die ohne Ehrgeiz individueller Anpassung eine hübsche Oberfläche suchen.

Budgie: Technisch ambitionierter als Pantheon liefert diese Oberfläche neben der üblichen Systemleiste eine multifunktionale Seitenleiste. Entwickelt wird Budgie für die Distribution Solus, hat aber inzwischen als Ubuntu Budgie Einzug in die offiziellen Ubuntu-Varianten gefunden. Budgie hat Potential zum echten Cinnamon-Konkurrenten durch seine klare, kontrastive Benutzerführung.

Ubuntu Budgie: Der sehr ansehnliche und klare Desktop hat noch ein paar Reifemängel.

Openbox: Eigentlich ist Openbox nur ein alt-ehrwürdiger Window-Manager, ist aber über diese Rolle hinausgewachsen. Pures Openbox liefert am Desktop nicht mehr als ein simples Startmenü per Mausklick, mit Ergänzungen und Konfigurationstools wird daraus aber eine Arbeitsumgebung, die kaum mehr als 100 MB Speicher beansprucht. Die manuelle Einrichtung von purem Openbox ist mühsam. Ein sorgfältig vorkonfiguriertes Openbox liefert die Distribution Bunsenlabs „Deuterium“ auf Basis von Debian 8.

Fvwm-Crystal: Einer der ältesten Fenstermanager für Linux ist der „F Virtual Window-Manager“ (Fvwm). Dem originalen Fvwm von 1993 sieht man sein Alter deutlich an. Viel getan hat sich aber bei der Variante Fvwm-Crystal mit Taskleiste, Menü und virtuellen Arbeitsflächen. Trotz minimaler Ansprüche (unter 100 MB RAM) sieht Fvwm-Crystal mit Transparenz-Effekten schick aus. Eine fertige Distribution mit diesem Fenstermanager gibt es nicht, jedoch ist das Fossil noch als Paket unter Debian und Ubuntu erhältlich (fvwm-crystal).

Wmii: Wmii (Window-Manager Improved) geht grenzwertig noch als Fenster-Manager durch: Alle Aktionen zum Öffnen und Anordnen von Fenstern erfolgen per Tastatur. Der Hotkey Windows-Taste plus Eingabetaste öffnet ein neues Terminal, Windows-P einen Ausführen-Dialog. Fenster arrangiert Wmii nebeneinander oder in Spalten. Dieser minimalistische Ansatz ist sinnvoll, wo ein Linux-Rechner stets nur einige wenige Programmfenster anzeigen soll. Wmii ist unter vielen Distributionen unter gleichnamigem Paketnamen zu erreichen.

PIXEL: Dieser Desktop ist eine junge Entwicklung der Raspberry Pi Foundation. Er dient als verbesserter Ersatz für das bisher genutzte LXDE auf dem Raspberry-System Raspbian. Die Änderungen sind vorwiegend kosmetischer Natur.

Terminal- und Bash-Optimierung

Grafische Terminals und die darin laufende Kommando-Shell bieten reichhaltige Optionen, um sie optisch und funktional zu optimieren und zu individualisieren. Das ist zum Teil einfach, zum Teil knifflig. Die notwendigen Tipps finden Sie hier.

Dieser Artikel zeigt alle wichtigen Optionen, um das grafische Terminal, aber auch die virtuellen Konsolen und die SSH-Konsole so komfortabel wie möglich einzurichten. Nur Punkt 1 bezieht sich ausschließlich auf den Desktop und das grafische Terminalfenster. Alle anderen Punkte 2 bis 6 zur Bash-Optimierung gelten auch für SSH und für die Konsolen (Strg-Alt-F1 und weitere). Bei den grafischen Terminal-Emulatoren nehmen wir das Gnome-Terminal als Referenz, wie es in Ubuntu-Varianten und Linux Mint zum Einsatz kommt. Andere Terminal-Emulatoren wie etwa die „konsole“ unter KDE bieten ganz ähnliche Einstellungen, aber nicht immer an gleicher Stelle. Bei der Shell selbst, also dem eigentlichen Kommandointerpreter, gehen wir von der Bash-Shell aus, die praktisch überall Standard ist.

1. Das grafische Terminal

Terminals in Gestalt des Gnome-Terminal, Mate-Terminal, Xfxe4-Terminal oder Konsole (KDE) sind grafische Programme mit zahlreichen Einstellungen. Sie sind unabhängig von der Shell, die im Terminal läuft. Die Optionen und Optimierungen, die Sie dort vornehmen, haben daher mit der Bash-Shell zunächst nichts zu tun. Lediglich bei Farbeinstellungen für das grafische Terminal und solchen für die Bash-Shell gibt es Kombinationen, welche die Lesbarkeit und Übersicht fördern – oder eben nicht. Insbesondere engagierte Nutzer, die sich das Terminal optisch bestmöglich einrichten möchten, sollten sich beim Aussehen des grafischen Terminals farblich festlegen, bevor sie Ausgabefarben und Prompt der Bash-Shell optimieren.

Einstellungen und Profile: Das Gnome-Terminal zeigt im Menü „Bearbeiten“ die zwei Untermenüs „Einstellungen“ und „Profileinstellungen“. Beides sind benutzerspezifische Optionen: Was unter „Einstellungen“ festgelegt wird, gilt für jedes Terminal im aktuellen Konto. Die „Profileinstellungen“ erlauben darüber hinaus verschiedene Layouts, die man entweder im Gnome-Terminal selbst mit „Terminal -> Profil wechseln“ umschalten oder auch über Programmstarter schon beim Aufruf anwählen kann:

gnome-terminal --profile big_black

Ob Sie tatsächlich verschiedene Profile brauchen, ist Ihre Entscheidung. Das als „Unbenannt“ oder als „Vorgabe“ betitelte Standardprofil sollten Sie aber unter „Bearbeiten -> Profileinstellungen“ in jedem Fall bearbeiten. Die Registerkarte „Allgemein“ bestimmt die Größe des Terminalfensters über die Spaltenzahl (Breite) und Zeilenzahl (Länge) sowie die verwendete Schriftart. Beachten Sie, dass Sie das Terminal-Fenster unabhängig von der Schrift mit Strg-+ und Strg– skalieren können, in einigen Terminals auch mit Strg und mittlerer Maustaste. Die Registerkarte „Farben“ definiert die Farb- und Transparenzeinstellungen (in einigen Terminals auch als Extra-Registerkarte „Hintergrundtyp“). Wer Experimente mit eventuell kontrastarmen Ergebnissen vermeiden will, kann das Systemschema oder vorgegebene Schemata verwenden.

Unter „Bildlauf“ sollte der „Zeilenpuffer“ deutlich vierstellig eingestellt sein, damit Sie auch bei umfangreichen Dateilisten (find, ls, rsync) bis zum Beginn zurückblättern können.

Der allgemeinere Punkt „Bearbeiten -> Einstellungen“ spielt für die Terminal-Optik keine Rolle. Hier können Sie aber unter „Tastenkürzel“ die Hotkeys ermitteln oder neu bestimmen, die in Ihren Terminals gelten. Der Tipp, hier auch die Hotkeys für Kopieren (Strg-Shift-C) und Einfügen (Strg-Shift-V) auf gebräuchliches Strg-C und Strg-V umzustellen, ist zweischneidig, weil Strg-C in der Bash-Shell traditionell für den Abbruch des aktuellen Befehls reserviert ist.

Startparameter: Größe und Position des Terminals können Sie auch per Startparameter festlegen. Global und mit zusätzlicher Angabe der Fensterposition arbeitet der Parameter „–geometry“ (fast überall Standard: Gnome, KDE, XFCE, Mate):

gnome-terminal --geometry=120x24+1+1

Dies würde ein Terminal mit 120 Zeichen Breite und 24 Zeilen Länge in der linken oberen Ecke starten (1 Pixel von links, 1 Pixel von oben). Diesen Aufruf definieren Sie am besten in der globalen Verknüpfung „/usr/share/applications/gnome-terminal.deskop“ in der Zeile „Exec=“ mit root-Recht.

Neben dem schon genannten „–profile“-Schalter gibt es weitere Optionen via Startparameter, welche die grafischen Profileinstellungen nicht vorsehen:

gnome-terminal --zoom=1.4 --working-directory=/media/ha

Dies erhöht den Zoomfaktor um 40 Prozent und startet gleich im gewünschten Verzeichnis. Letzteres ist natürlich auch über die Bash-Shell leicht zu erzielen.

Terminal-Profile: Wer im Terminal verschiedene Profile anlegt, kann mit drei Mausklicks zu einer komplett anderen Darstellung wechseln.

2. Bash-Zeileneditor und History

Kaum ein Terminalthema klingt langweiliger als die Regeln des „line editing“ – also Texteingabe, Textbearbeitung, Autocompletion und Befehlssuche am Bash-Prompt. Es entscheidet aber fundamental darüber, wie viel oder wenig Sie tippen müssen – und „Tippen“ bedeutet hier ja meistens nicht das Schreiben von natürlicher Sprache, sondern von oft komplexen Befehlen oder gar von Escape- und Regex-Sequenzen.

Autocompletion: Lange Dateinamen müssen nicht getippt werden: Wenn Sie die ersten zwei, drei Buchstaben eingeben und dann die Tab-Taste drücken, ergänzt das Terminal den vollständigen Namen automatisch, desgleichen Ordnerpfade, sofern die eingegebenen Buchstaben stimmen (Groß- und Kleinschreibung beachten!).

History: Das Terminal vergisst nichts – jedenfalls nicht so schnell. Die Befehle werden im Speicher und dauerhaft in der ~/.bash_history gespeichert. Damit die Befehle über Sitzungen und Neustarts hinaus gesammelt werden, sorgt diese Anweisung:

shopt -s histappend

Diese werden Sie in jeder Standardstartdatei ~/.bashrc antreffen. Bei welcher Zeilenmenge Schluss sein soll, also die ältesten Einträge gelöscht werden, bestimmen folgende Variablen:

HISTSIZE=5000
HISTFILESIZE=5000

Auch diese stehen in jeder ~/.bashrc, wenn auch eventuell mit geringeren Zeilenangaben. „HISTSIZE“ ist die maximale Zeilenmenge im Speicher, „HISTFILESIZE“ die maximale Zeilenmenge in der Datei ~/.bash_history. Je höher die Zahlen, desto umfangreicher wird das Gedächtnis der Bash-Shell. Mit der Variablen

HISTCONTROL=ignoredups

können Sie verhindern, dass die History von Dubletten wimmelt: Bereits vorhandene, identische Kommandos werden dann nicht aufgenommen. Eine weitere Option, die History effizienter zu machen, ist der Ausschluss von Allerweltsbefehlen:

HISTIGNORE="ls:cd*:free"

Soviel zur Optimierung der History. Für die eigentliche, praktische Verwendung gibt es mehrere Möglichkeiten. Fast jedem Anwender bekannt ist das Zurückblättern zu den letzten Kommandos mit der Taste Cursor-oben, die den gewünschten Befehl wieder auf den Prompt holt. Eine systematische Suche bietet der Hotkey Strg-R: Nach Eintippen etwa von „tar“ erscheint der letztgenutzte tar-Befehl in kompletter Länge. Ist dieser passend, kann er mit Eingabetaste sofort ausgeführt oder mit Alt-Eingabetaste (eventuell auch Strg-Eingabetaste) zum Editieren auf den Prompt geholt werden. Ist der angezeigte History-Treffer nicht der passende, geht es mit Strg-R zum vorletzten und so fort.

Eine einfache Alternative oder auch Ergänzung zur Rückwärtssuche mit Strg-R ist eine Filtersuche mit der Taste Bild-oben. Nach Eingabe etwa von „tar“ befördert diese Taste den letzten, kompletten tar-Befehl direkt auf den Prompt, ein weiteres Bild-oben den vorletzten und so fort. Diese Suche funktioniert aber nur, wenn Sie Taste entsprechend belegen – und zwar in der Datei /etc/inputrc. Das Editieren erfordert root-Recht. Sie werden dort die beiden Zeilen

\"e[5~\": history-search-backward
\"e[6~\": history-search-forward

antreffen und müssen dort nur das führende Kommentarzeichen „#“ entfernen.

Zum Editieren vorhandener Zeilen, seien es selbst getippte oder aus der History gefischte, helfen Lösch- und Rücktaste, Pos1, Ende, Strg-Cursor-rechts/links (wortweise springen), Strg-K und Strg-U (Löschen nach und vor der Cursorposition, siehe dazu auch Punkt 4).

History-Filter: Mit dieser Einstellung in der Datei /etc/inputrc filtert die Bash nach Bild-oben/Bild-unten die Einträge, die mit dem bereits eingegebenen Teilbefehl übereinstimmen.

Hübsche Prompts sind hartes Handwerk. Ein funktionaler Prompt liefert aber automatisch Informationen, für die Sie sonst externe Systemwerkzeuge starten müssten.

3. Farben am Prompt und in Dateilisten

Der Prompt, also die Anzeige bei jeder Befehlseingabe, kann beliebige statische und dynamische Informationen anbieten, die Sie zur Orientierung erwarten. Die Prompt-Anzeige definieren Sie interaktiv zum Testen mit dem Befehl „PS1=‘…‘“. und dauerhaft in der Datei ~/.bashrc. Einige dynamische Variablen wie das aktuelle Verzeichnis, Datum oder Uhrzeit bietet der Prompt durch vordefinierte Escape-Zeichenfolgen selbst an, etwa „\w“ für das aktuelle Verzeichnis, „\u“ für das angemeldete Konto oder „\h“ für den Rechnernamen. Einfache Prompts sehen dann so aus:

PS1="\w => "
PS1="\u@\h:\w => "

Eine gute Infoquelle für alle Prompt-Optionen ist die Seite https://wiki.archlinux.de/title/Bash-Prompt_anpassen. Über die eingebauten Codes hinaus können Sie jede allgemeine oder selbst definierte Variable einfach mit „$Variable“ in die PS1-Definition setzen:

PS1="\w [$LOGNAME] => "

Mehr noch: Der Prompt kann sogar beliebige Befehle aufnehmen. Wir demonstrieren das mit einem Beispiel, das freilich als Prompt dauerhaft nicht praktikabel ist:

PS1="\nSPEICHERAUSLASTUNG: \n\$(free -m)\[\033[0m\]\n\n => "

Um Infos gegeneinander abzugrenzen, sind ferner Farbdefinitionen vorgesehen, die stets mit der Sequenz „\[\033“ starten. Ein komplexer Prompt wie

PS1="\n\[\033[47;30m\]\d, \A \[\033[41;37m\] \u on \H \[\033[47;30m\] MB free=$freemem \[\033[41;37m\] $CPU \[\033[40;37m\] [$timediff] \[\033[42;30m\] \w \[\033[0m\]\n"

ist praktisch unlesbar. Immerhin geht es Schritt für Schritt von einer Escape-Sequenz zur nächsten – „\n“ bedeutet einen Zeilenumbruch, „\[\033“ schaltet dann die Farben um, „\d“ setzt das Datum ein, „\A“ die Uhrzeit. Erläuternder Text oder Zeichen wie Komma oder Blank sind an jeder Stelle möglich, ferner auch Variablen mit „$“.Wichtig ist, Farbdefinitionen am Ende wieder zurückzusetzen

(*\[\033[0m\]“).

Die unsäglichen Farbsequenzen einerseits, die Variablen-Tauglichkeit des Prompts andererseits veranlassen Bash-Freaks, alle nötigen Codes in Variablen abzulegen (in der ~/.bashrc)

GREEN="\[\033[01;32m\]"

und dann als handlichere Variablen ($GREEN) in den Prompt einzubauen. Auch dies ist aber ein mühsamer Notbehelf, dem wir folgende Online-Hilfe vorziehen:

Easy Bash PS1 Generator: Ein nützlicher Helfer für farbenfrohe Prompts ist die Seite http://ezprompt.net/. Hier gehen Sie von ersten Position zur letzten durch, was der Prompt zeigen soll, und bestimmen für das jeweils markierte Element Vorder- und Hintergrundfarbe („FG“ und „BG“). Die einzelnen Elemente lassen sich auch nachträglich umsortieren. Im untersten Feld erscheint der zugehörige Code für die PS1-Variable, den Sie einfach kopieren, im Terminal einfügen und mit Eingabetaste testen. Wenn das Ergebnis passt, übernehmen Sie die Codezeile in Ihre Datei ~/.bashrc. Die Webseite deckt längst nicht alle Möglichkeiten des Bash-Prompts ab, liefert aber zuverlässig die heiklen Farbcodes.

Dynamische Infos durch Prompt_Command: Wenn Variablen Echtzeit-aktuell im Prompt landen sollen (etwa die CPU-Auslastung), dann muss diese Variable unmittelbar vor der Prompt-Darstellung ermittelt werden. Dafür bietet die Bash-Shell einen speziellen Service: Mit

PROMPT_COMMAND=[function-name]

definieren Sie eine Function der Datei .bashrc, die bei jedem Befehl in der Kommandozeile abgerufen wird. Da dies sehr oft geschieht, sollten Sie den Rechenaufwand in Grenzen halten. Ein Beispiel für einen selbstgebauten Prompt mit Echtzeitinfos aus einem Prompt_Command sehen Sie in der Abbildung auf dieser Seite.

Farbige Dateien und Ordner: Das Terminal stellt Dateitypen und Ordner standardmäßig in unterschiedlichen Farben dar. Wenn Sie bestimmte Farben ändern möchten, erstellen Sie mit folgendem Befehl eine persönliche Konfigurationsdatei im Home-Verzeichnis:

dircolors -p > ~/.dircolors

Die versteckte Datei .dircolors können Sie dann mit einem beliebigen Editor bearbeiten. So werden zum Beispiel Ordnernamen gelb gefärbt:

DIR 01;33

Die Einstellungen dieser eigenen Farbtabelle dominieren über die Standardeinstellungen. Die Farbcodes können Sie der bereits genannten Seite https://wiki.archlinux.de/title/Bash-Prompt_anpassen entnehmen. Achten Sie auf die Tatsache, dass solche Farbdefinitionen durch Umstellen der allgemeinen Terminalfarben (siehe Punkt 1) unter Umständen unlesbar bis unbrauchbar werden. Wer hier Zeit investiert, sollte an der allgemeinen Terminaloptik nichts mehr verändern.

Diese Seite erspart das Recherchieren der Farbcodes: Auf http://ezprompt.net/ stellen Sie sich die Basis des Bash-Prompts per Mausklicks zusammen.

4. Bash-Aliases und Bash-Hotkeys

Ohne in das Bash-Scripting einzusteigen, das dieser Beitrag weitestgehend ausklammert, können einfachste Alias-Kurzbefehle und (weniger einfache) Bind-Hotkeys die Effektivität der Bash-Shell enorm steigern.

Bash-Hotkeys: Mit Tastendefinitionen sollte man sparsam umgehen, damit der Durchblick nicht verlorengeht, jedoch sind einige Nachbesserungen sinnvoll und produktiv. So ist etwa beim Editieren am Prompt zwar das Löschen vor und nach der Cursorposition mit den Hotkeys Strg-U und Strg-K vorgesehen, aber nicht das Löschen der kompletten Zeile mit einem Hotkey. Folgende Bind-Kommandos

bind '“\C-l“:kill-whole-line'
bind '“\el“:kill-whole-line'

legen den internen Befehl „kill-whole-line“ auf die Hotkeys Strg-L und Alt-L. Die Strg-Taste ist mit „\C“ einzugeben, Alt mit „\e“. Dass bei Strg die Folgetaste mit Bindestrich abzugrenzen ist, bei der Alt-Taste hingegen nicht, ist kompliziert, aber nicht zu ändern.

Folgender Befehl

bind '"\e[15~":"xdg-open . \n"'

belegt die Funktionstaste F5 so, dass sie den Standarddateimanager mit dem aktuellen Verzeichnis auslöst. Die Funktionstasten sind mit „\e[nn~“ anzugeben, wobei die Ziffer „nn“ in der Regel den Wert plus 10 der tatsächlichen Taste benötigt. Im Zweifel kann der Befehl „read“ und anschließendes Drücken der Funktionstaste über die Ziffer „nn“ informieren.

Bind-Befehle können Sie interaktiv ausprobieren; sie gelten dann bis zum Schließen des Terminals. Für permanente Gültigkeit benötigen sie einen Eintrag in die Datei ~/.bashrc.

Aliases: Kurzbefehle können die schnelle Ordnernavigation vereinfachen oder komplexe Befehle abkürzen. Der Platz für Aliases ist wieder die Datei ~/.bashrc, und die Befehle werden in einfachsten Fällen so aussehen:

alias ini='$EDITOR ~/bashrc'
alias mc='mc /srv/dev-disk-by-label-Data /srv'
alias ll='ls -alF --group-directories-first'

Aliases entschärfen die interaktive Nutzung mächtiger Terminaltools erheblich. Ein Beispiel ist etwa folgendes Alias für den Find-Befehl:

alias fn='read -p "Dateimaske (z.B. *.pdf): " TMP; find . -type f -name "$TMP"'

Nach Aufruf des Kürzels fn werden Sie mittels „read“ nach der Dateimaske gefragt, die dann etwa „*.odt“ oder auch „2018*.jpg“ lauten kann (ohne Anführungszeichen). Diese Eingabe wird mit der Variable $TMP an find weitergereicht. Das Alias geht davon aus, dass man zuerst in das gewünschte Verzeichnis gewechselt hat, denn dort startet find seine Suche (Punkt nach „find .“).

Ähnlich übergibt hier

alias ft='read -p "Alter in Tagen (z.B. 7): " TMP; find . -type f -mtime "-$TMP"'

die Variable $TMP eine Zahl an find, das dann über den Schalter „-mtime“ alle Dateien ermittelt, die in den letzten Tagen erstellt wurden.

Hotkeys für die Bash-Shell: Mit bind können Sie Tasten und Tastenkombinationen neu definieren und Programme auslösen. „bind -P“ informiert über aktuelle Belegungen.

Weniger tippen und nicht über die Syntax nachdenken: Aliases machen komplexe Bash-Kommandos – wie hier find – deutlich komfortabler.

5. Ordnernavigation im Terminal

Verzeichniswechsel mit cd gehören zu den meistgenutzten Kommandos. Auch hier gibt es eine Reihe kleiner Optimierungen.
Die häufigsten Zielordner sind am besten über ein knappes Alias zu erreichen – etwa um nach

alias d = 'cd ~/Schreibtisch'

mit der Eingabe „d“ zum Desktop zu gelangen.
Eine effiziente Lösung für schnelles Springen in wichtige Verzeichnisse ist die Variable CDPATH. In ihr lassen sich mehrere Ordnerpfade speichern. Danach kann man überall mit „cd [Verzeichnis]“ in ein Unterverzeichnis eines der gespeicherten Verzeichnisse springen. Um also etwa den Pfad „/var/www/html“ in die Variable CDPATH aufzunehmen, geben Sie

export CDPATH='.:/var/www/html/'

ein. Danach wechseln Sie von beliebiger Stelle mit „cd htdocs“ und „cd logs“ in Unterordner von „/var/www/html/“. Die CDPATH-Variable lässt sich durch eine beliebige Anzahl weiterer Verzeichnisse erweitern – jeweils durch Doppelpunkt getrennt:

export CDPATH='.:~:/var/www/html/:/media/985c9fb3-14a6-449e-bec5-4666a283fbf4/'

Hier besteht der „CDPATH“ aus dem aktuellen Verzeichnis („.“), dem Home-Verzeichnis („~“), dem Webserver-Verzeichnis und einem Mountordner. Am Anfang sollte mit „.:“ immer das aktuelle Verzeichnis stehen, damit dieses die höchste Priorität behält. Für einen dauerhaften „CDPATH“ müssen Sie die Export-Anweisung in die Datei .bashrc eintragen.

Die meisten Nutzer verwenden cd für den Verzeichniswechsel, obwohl die Alternativen pushd und popd mehr Komfort bieten, vor allem dann, wenn es häufig von einem Ordner zum anderen und wieder zurückgehen soll. Daher sorgen folgende simplen Alias-Definitionen:

alias +='pushd'
alias _='popd'

dafür, dass sich die Bash-Shell nach „+“ das letzte Verzeichnis merkt. Mit „_“ kehren Sie danach umstandslos zurück zum letzten Verzeichnis. Das normale Minuszeichen („-„) ist als Alias-Kürzel nicht möglich.

Die Bash besitzt eine optionale Autokorrektur, um Vertipper bei Verzeichnisnamen auszubessern. Diese Autokorrektur ist standardmäßig abgeschaltet, erst diese drei Befehle schalten sie ein:

shopt -s direxpand
shopt -s dirspell
shopt -s cdspell

Danach wird die Shell den Eingabefehler

cd /ect/samba/

nach /etc/samba/ korrigieren und korrekt landen. Soll die Autokorrektur permanent aktiv sein, dann müssen die Befehle in die ~/.bashrc eingetragen werden.

Effiziente Navigationshilfe: Einträge wichtiger Verzeichnisse in die Variable CDPATH erlauben den direkten Ordnerwechsel quer über Verzeichnisstruktur und Laufwerke.

6. Die wichtigsten Terminaltools

Die Aufwertung der Shell durch externe Tools ist für SSH-administrierte Server unentbehrlich, für die virtuellen Konsolen im Falle des Falles sinnvoll und selbst am Desktop erwünscht. Der letztgenannte Aspekt gilt vor allem für Nutzer, die für Datei- und Verwaltungsaufgaben generell das Terminal bevorzugen.

Taskmanager Htop: Htop (mit gleichnamigem Paketnamen) zeigt beliebig detaillierte Infos zu allen laufenden Prozessen, CPU- und Speicherauslastung und Uptime. Es beherrscht sämtliche Kill-Methoden für randalierende Tasks. Über „F2 Setup“ lässt sich das Tool hinsichtlich Anzeigeinfos und Optik sorgfältig einrichten.

Dateimanager MC: Der Midnight Commander (Paketname „mc“) kann es mit jedem grafischen Pendant aufnehmen und dabei mit 256-Farben-Skins auch noch attraktiv aussehen („Optionen -> Appearance“). Voraussetzung dafür ist der Befehl „TERM=xterm-256color“ in der Datei ~/.bashrc.

Multiterminal Screen: Terminal-Multiplexer wie Screen (mit gleichnamigem Paketnamen) verwalten mehrere Terminal-Sitzungen in einem Fenster. Solche Tools sind auf der grafischen Oberfläche unnötig, aber alternativlos auf Servern, die per SSH verwaltet werden. Wenn Sie Screen starten, scheint gar nichts zu passieren. Um die Vorzüge zu erkennen, beginnen Sie am besten von vornherein mit einer Konfigurationsdatei ~/.screenrc im Home-Verzeichnis. Diese könnte etwa so aussehen wie in der nebenstehenden Abbildung. Hier werden beim Aufruf screen drei Terminals gestartet. Die „Caption“-Anzeige sorgt dafür, dass Sie in der Fußzeile über die geladenen Terminals informiert bleiben. Die Escape-Sequenzen für „Caption“ sind mühsam, aber unter www.gnu.org/software/screen/manual gut dokumentiert.

Fundamentaler Hotkey ist Strg-a, gefolgt von einer Kommandotaste: Strg-a und nachfolgendes n oder p wechselt zur nächsten oder vorherigen Konsole. Strg-a und c startet ein weiteres Terminal, Strg-d schließt das aktuelle. Ein wichtiger Hotkey ist außerdem Strg-a und Esc, weil Sie nur dann im Screen-Fenster mit Taste oder Maus in Listen scrollen können.

Datenträgerbelegung mit Ncdu: Ncdu (mit gleichnamigem Paketnamen) sortiert Verzeichnisse nach der enthaltenen Datenmenge und bietet eine sehr viel bequemere Festplattenanalyse als das Standardwerkzeug du. Denn Ncdu beherrscht wie ein Dateimanager die Navigation zwischen den Verzeichnissen und kann aktiv löschen. Die einzig wichtige Bedienregel, die sich nicht sofort erschließt, ist die Auswahl des Startordners. Ist Ncdu nämlich einmal gestartet, wird es in keine höhere Verzeichnisebene wechseln. Wenn Sie daher das komplette Dateisystem durchforsten wollen, sollten Sie ncdu mit

ncdu /

starten. Ncdu sortiert nach Ordnergrößen, kann aber mit Taste „n“ auch nach Namen sortieren, mit „s“ wieder nach Größe („size“).

Screen und seine Konfigurationsdatei: Das Tool screen macht die typische Terminalvermehrung bei Administratoren zur übersichtlichen Angelegenheit.

7. Befehle suchen

Bash-History mit Schlüsselwörter: Ein hübscher Trick, um interessante, aber seltener genutzte Befehle bei Bedarf schnell wiederzufinden, besteht in der Kommentierung der Kommandos durch Schlüsselwörter. Ein Beispiel:

lsblk -o name,fstype,uuid,size,owner,type,mountpoint,label,model # disk partition detail

Der interaktiv so eingegebene Befehl funktioniert wie gewohnt; alles ab dem Kommentarzeichen „#“ wird einfach ignoriert. Der Befehl landet aber inklusive Kommentar in der Datei ~/.bash_history. Folglich können Sie später in der History-Suche mit Strg-R ein Schlüsselwort wie „detail“ oder „partition“ eingeben, und die Suche wird Ihnen die Befehle mit diesem Kommentar anbieten. Die Wahl der Stichwörter ist dabei die anspruchsvollste Aufgabe: Sie sollten so assoziativ ausfallen, dass Sie bei späterer Suche die Sache schnell eingrenzen können – etwa durch Kategorien wie „task, folder, partition, disk, size, user, right, info, hardware“. Natürlich sind auch deutsche Kommentierungen möglich. Wer diese Möglichkeit nicht nur künftig, sondern rückwirkend nutzen möchte, kann seine .bash_history nachträglich mit solchen Kommentaren erweitern.

Exkurs: Falls Ihre Bash-Shell interaktive Eingaben mit Kommentarzeichen nicht akzeptiert, ist eine Standardeinstellung verstellt. Sie lautet „interactive_comments“ und kann bei Bedarf mit

shopt -s interactive_comments

in der Datei ~/.bashrc explizit aktiviert werden.

Apropos-Programmsuche mit Stichwort: Eine gewaltige Hürde bei der Verwendung der Shell ist die schlichte Frage, welches Kommando sich für welche Aufgabe eignet. Infoportale im Internet sind da oft enttäuschend: Alphabetische Listen sind denkbar unpraktisch, vollständige Bash-Referenzen definitiv nicht das, was man für eine schnelle Kommando-Recherche benötigt, und vorsortierte Präsentationen der „wichtigsten“ Befehle verzichten von vornherein auf Vollständigkeit.

Für eine grobe thematische Suche eignet sich der Befehl apropos, der die Datenbank der Man-Pages nach Stichworten durchsucht (identischer Befehl „man -k [Stichwort]“). So liefert apropos zumindest einen ersten Überblick:

apropos samba

Hier erhalten Sie alle Befehle, die im Zusammenhang mit Samba-Netzwerkfreigaben stehen. Mit dem Schalter „–and“

apropos --and file rename

ist ein UND-Suche nach mehreren Stichwörtern möglich.

Whatis: Was kann ein bestimmter Befehl? Whatis ist das Gegenstück zu Apropos: Es liefert für einen angegebenen Befehl genau dieselbe Kurzbeschreibung aus den Man-Pages wie Apropos. Während Sie also mit Apropos geeignete Programme für eine bestimmte Aufgabe suchen, fragen Sie mit Whatis ab, was ein bestimmtes Programm kann:

whatis diff

Wer einen systematischen Überblick über alle auf seinem System installierten Kommandozeilenprogramme erreichen will, kann diese mit

compgen -c

auflisten und diese Liste gleich mit whatis kombinieren:

for p in $(compgen -c|sort);do whatis $p >> liste.txt;done

Das Ergebnis ist eine Textdatei liste.txt mit alphabetischer Abfolge sämtlicher Systembefehle und jeweiliger Kurzcharakterisierung durch whatis.

8. Alternative Terminals

Wie Punkt 1 zeigte, geben die Standard-Terminals der Linux-Distributionen kaum Anlass, nach Alternativen zu suchen. Die gibt es natürlich: So ist Terminator (mit gleichnamigem Paketnamen) eine Fortentwicklung von Gnome-Terminal mit etlichen Zusatzfunktionen, die etwa den Textzoom mit Strg-Mausmitteltaste erlauben (wie die Konsole unter KDE) oder automatisches Ausblenden bei Fokusverlust. Weitere Funktionen fallen gegenüber dem Gnome-Terminal eher marginal aus.

Das Terminal Terminology (mit gleichnamigem Paketnamen) stammt aus dem Enlightenment-Desktop und ist so eigenwillig wie jener. Terminology entspricht weitgehend dem Gnome-Terminal, hält aber Spezialitäten bereit, die sich nach Rechtsklick automatisch einblenden. Die hier angebotenen Split-Funktionen sowie Kopieren und Einfügen per Mausklick erhöhen den Terminal-Komfort. Unter „Einstellungen“ gibt es weitere Raffinessen wie Hintergrundbilder. Trotz dieser Vorzüge ist Terminology insgesamt gewöhnungsbedürftig und hat auch Nachteile: Schriften-, Farbdarstellung und Zoomfunktion fallen gegenüber den Standard-Terminals ab.

Tilda und Guake: Diese Dropdown-Terminals haben kein interaktiv skalierbares Fenster und keine Titelleiste, sondern blenden sich in fester, aber exakt einstellbarer Größe nach Hotkey F1 (Tilda) oder F12 (Guake) ein und aus. Das Ausblenden kann auch automatisch bei Fokusverlust eingestellt werden, also durch beliebigem Klick außerhalb des Terminalbereichs. Die Einstellungen bieten Transparenz, Einblendanimation, Farbanpassung, Shell-Tabs, Suchleiste und vieles mehr. Im Fenster läuft die Bash – alle Bash-Einstellungen werden also übernommen. Für Terminal-Vielnutzer sind diese stets im Hintergrund wartenden Bash-Dauerläufer eine klare Empfehlung. Die Unterschiede zwischen Tilda und Guake sind marginal und letztlich Geschmackssache. Tilda und Guake sind über die gleichnamigen Paketnamen überall verfügbar.

Fish ist kein alternatives Terminal, sondern eine eigene Shell. Sie ist über den Paketnamen „fish“ überall verfügbar, die aktuellste Version über ein PPA (ppa:fish-shell/nightly-master). Fish bringt Farbe ins Spiel, macht selbständig ergänzende Angebote zu partiellen Eingaben und informiert bei Syntaxfehlern vorbildlich über Korrekturen. Ein Alleinstellungsmerkmal ist die Konfiguration im Browser nach diesem Befehl:

fish_config

Unter „colors“ und „prompt“ wählen Sie aus vorgegebenen Farbschemata und Prompts, und mit „Set Theme“ oder „Set Prompt“ übernehmen Sie das Ergebnis. Wichtig sind die „abbreviations“, da Sie damit Alias-Kurzbefehle anlegen können. Für Scripts verwendet Fish „functions“ mit eigener Syntax. Zielgruppe für die Fish-Shell sind Einsteiger, denen Fish den Terminal-Umgang zunächst in der Tat vereinfacht. Das Problem ist nur, dass sich Bedienung und Script-Konzept von den Standard-Terminals stark unterscheidet: Wer der Fish-Shell wieder den Rücken kehrt, fängt mit Gnome-Terminal & Co. sowie Bash praktisch wieder von vorne an.

Fensterlos und automatisch im Hintergrund: Das Dauerterminal Tilda kann sich in den Hintergrund verabschieden, wenn ein Desktop-Element außerhalb geklickt wird (Fokusverlust).

Zurück zur Linux-Übersichtsseite…

True OS mit Datenschutz-Extra

True OS basiert auf Free BSD. Dieser Unix-Abkömmling hat viele Ähnlichkeiten mit Linux, aber auch signifikante Unterschiede. Zu den Besonderheiten von True OS zählen das Dateisystem ZFS und die portable Home-Verschlüsselung mit „PersonaCrypt“.

Auf http://distrowatch.com klopft in der letzten Zeit häufiger die Distribution True OS an die Top Ten. Ihre bisherige Top-Platzierung ist Platz 11, während sie bis vor ein, zwei Jahren noch unter „ferner liefen“ zu suchen war. Was ist dran an diesem System? Eine Frage, die ich an dieser Stelle gerne beantworte, zumal True OS ein schnelles Ausprobieren in einem Livesystem nicht vorsieht. Echtes Installieren ist unvermeidlich, um das System zu testen.

Download und Installation

Erste Informationen über True OS finden Sie auf der Projektseite: https://www.trueos.org/. Wer sich vorab detaillierter über die Hardware-Voraussetzungen und den Praxisalltag unter True OS informieren will, sollte einen Blick auf das Online-Handbuch https://www.trueos.org/handbook/trueos.html, das auch direkt über die Projektseite erreichbar ist. Aufgrund des Dateisystems ZFS sind für das an sich schlanke System etwa 4 GB RAM empfohlen, absolutes Minimum ist 1 GB.

Auf der Downloadseite https://www.trueos.org/downloads/ finden Sie Angebote aus dem Stable- und Unstable-Zweig (Stable empfohlen). Der Download des „Latest TrueOS Stable“ beträgt etwa 2,5 GB. Das ISO-Image schreiben Sie dann mit einem Tool Ihrer Wahl am besten auf eine DVD (Brasero unter Linux, Imgburn unter Windows). Eigentlich sollte auch ein USB-Stick als Installationsgerät funktionieren, jedoch war dies in unserem Fall weniger zuverlässig als das optische Medium.

Installer mit mäßiger Partitionierungshilfe: Die Einrichtung ist nichts für Anfänger. So fehlt etwa jeder Hinweis, dass eine MBR-Installation unter „Customize“ explizit eingestellt werden muss.

Wenn Sie den Zielrechner damit starten, erhalten Sie kein Livesystem, sondern einen reinen Installer. Neben der typischen Abfrage der Systemsprache geht es um die Entscheidung, ob eine grafische Oberfläche installiert und ein proprietärer Treiber für die Grafikkarte genutzt werden soll. Dann geht es zur Partitionierung: Wenn True OS die erste Festplatte „ada0“ nicht oder nicht in vollem Umfang übernehmen darf, ist der Klick auf „Customize Disk Settings“ erforderlich. Die Schaltfläche „Customize Disk Settings“ ist unbedingt auch dann notwendig, wenn True OS das alte MBR-Partitionierungsschema verwenden soll. Standardmäßig geht es von einer UEFI/GPT-Installation aus. Der hiermit gestartete „TrueOS Disk Wizard“ ist für Erfahrene akzeptabel, für Anfänger eher riskant. Wer Multiboot oder die umfassenden Pool- und RAID-Optionen von ZFS einrichten will, sollte unbedingt Erfahrung mitbringen und parallel das angesprochene Online-Handbuch benutzen.

Ersteinrichtung von True OS

Nach erfolgreicher Installation und dem ersten Start fordert das System ein Passwort für den Root-Zugang und danach ein erstes Benutzerkonto.

Die PersonaCrypt-Verschlüsselung: Schon bei Einrichtung des Erstkontos fällt die zweite Registerkarte „PersonaCrypt“ ins Auge, die auch später im „Usermanager“ für alle Benutzerkonten auftaucht. Es handelt sich um die optionale Verschlüsselung des jeweiligen Home-Verzeichnisses. Wie bei Linux-Systemen kann das Home-Verzeichnis geschützt werden, indem bei „Device“ die Option „On Disk Encryption (PEFS)“ gewählt wird. True OS kann aber an dieser Stelle mehr: Bei angeschlossenem USB-Datenträger wird dieser als „Device“ angezeigt und kann dann als Ziel für die verschlüsselten Dateien definiert werden. Das unter „PersonaCrypt“ eingegebene Passwort ist unabhängig vom Systempasswort, kann aber der Einfachheit halber auch identisch gewählt werden.

Im späteren Betrieb reagiert True OS auf PersonaCrypt-Konten wie folgt: Konten mit lokaler „On-Disk-Verschlüsselung“ werden am Anmeldebildschirm immer angezeigt, selbstverständlich auch alle Konten ohne jede Verschlüsselung. PersonaCrypt-Konten mit externen USB-Medien erscheinen jedoch nicht, sofern der Datenträger nicht angeschlossen ist. Mit anderen Worten: Die Anmeldung eines solchen Kontos ist nur möglich, wenn der Nutzer seinen Datenträger dabei hat und anschließt. Für die Anmeldung von PersonaCrypt-Konten sind immer zwei Kennwörter nötig – das Systempasswort und zusätzlich das Verschlüsselungspasswort.

Der Lumina-Desktop: Standardmäßig startet True OS seinen Stammdesktop Lumina. Diese Oberfläche ist keine Schönheit, orientiert sich aber mit Startmenü, Systemleiste und Rechtsklickmenü am Desktop weitgehend an geläufigen Standards. Über den Desktop-Rechtsklick und „Einstellungen -> Desktop Actions“ kann der Desktop als Ordner und Dateiablage genutzt werden. Wer es ganz minimalistisch haben will, kann am Anmeldebildschirm auch auf Fluxbox umstellen.

Das Software-Center: Die Software-Ausstattung ist standardmäßig ausreichend, aber eher spartanisch. Ihre Ausstattung ergänzen Sie recht komfortabel mit dem grafischen Paketmanager „AppCafe“. Ähnlich wie bei Ubuntu gibt es verschiedene Paketquellen, zwischen denen Sie über das Listenfeld in der Mitte wechseln. Stöbern Sie in den Kategorien oder suchen Sie gezielt nach Programmen. Viele der bekannten Linux-Klassiker wie Libre Office, VLC, Filezilla, MC oder Gimp sind auch in Versionen für True OS (Free BSD) zu bekommen. Auch alternative Desktops wie Mate oder XFCE sind verfügbar. Das „AppCafe“ bietet nicht den Umfang von Debian/Ubuntu-Distributionen, aber alles Wesentliche ist hier erhältlich.

Fazit: Viele Kompromisse

Das Hauptmotiv für True OS ist wohl nicht das mächtige Dateisystem ZFS mit vielen Server-relevanten Optionen für Festplattenpools und System-Snapshots. Vielmehr dürfte bestimmte Nutzer das ungewöhnliche „PersonaCrypt“ faszinieren: Die eigenen Daten sind unzugänglich, das maßgebliche Konto am Login-Bildschirm nicht einmal ersichtlich, solange der Nutzer nicht das passende USB-Gerät aus seiner Schublade holt und anschließt. Ob man solche Zwei-Geräte-Sicherheit als konsequente Datenschutzmaßnahme interpretieren oder doch überwiegend in der Ecke schmuddeliger Versteckspiele verorten will, überlassen wir dem Urteil des Lesers.

Deutlich ist, dass der Anwender für das eine oder andere interessante True-OS-Feature einige Kompromisse in Kauf nehmen muss: True OS kann weder beim Installer-Komfort noch bei der Hardware-Erkennung einem Debian/Ubuntu das Wasser reichen. Mit dem voreingestellten Lumina-Desktop gibt es dann eine allenfalls brauchbare Bedienoberfläche – selbst ein einfaches LXDE (auf Lubuntu oder Debian) kann da mindestens mithalten. Nebenbei ist das System kein Schnell-Booter und fordert, gemessen am grafischen Komfort, relativ viel Arbeitsspeicher (wegen ZFS).

Hier gibt es ein unverschlüsseltes Konto „hanna“ und ein verschlüsseltes Konto „klaus“, dessen Verschlüsselungsgerät vorliegt („Ready“). Die Anmeldung fordert zwei Kennwörter.

Zurück zur Linux-Übersichtsseite…

Puppy-Systeme – klein und schnell

Sie sind optimale Zweitsysteme für die Hosentasche – zum Arbeiten, Surfen oder Reparieren. Die Puppy-Systeme, die Barry Kauler vor 15 Jahren entwickelt hat, sind ausgereift und flexibel, aber nicht ganz simpel.

Wer die Puppy-Familie mit Tahrpup, Slacko, Quirky, Fatdog, Macpup, Lxpup, Simplicity ignoriert, verschenkt das Potential großartiger Livesysteme: Die Puppies bringen auf typischerweise nur 200 bis 300 MB großen ISO-Abbildern kaum glaubliche Software-Sammlungen unter, haben einen RAM-Eigenbedarf von nur 60 bis 150 MB, booten fix (mit Ausnahmen) und bieten ein Konzept, um die an sich unveränderlichen Livesysteme über persistenten Speicher individuell anzupassen. Die Einrichtung birgt allerdings einige Hürden und wird begleitet von einer Dialogflut mit Frickler-Tonalität. Diese Hürden muss man erst mal nehmen. Dieser Beitrag erklärt das Puppy-Konzept, die Einrichtung der Systeme sowie Ausrichtung und Unterschiede einiger populärer Puppy-Varianten.

Einsatzgebiete: Warum Puppy?

Kleine Linux-Live-Distributionen, die sich für schwachbrüstige Hardware oder für den mobilen Einsatz als Zweitsystem eignen, gibt es zuhauf. Puppy-Varianten sind aber nicht nur besonders klein und sparsam (bei reicher Software-Ausstattung), sondern kombinieren die Sicherheit eines nicht kompromittierbaren Livesystems mit der Anpassungsfähigkeit eines installierten Linux. Das erreichen sie dadurch, dass die schreibgeschützten Squash-FS-Archive (Dateien mit der Endung -sfs) für das Kernsystem ergänzt werden durch persistenten Speicher, der System- und Software-Einstellungen sowie nachinstallierte Software bereithält. Dieser persönliche Speicher kann als einzige große Datei „pup_save.4fs“ (oder je nach Puppy-Variante ähnlich, etwa „thar_save.4fs“) oder als Ordner (etwa „tharsave“) vorliegen. Dieser Speicher wird beim Booten automatisch geladen, es sei denn, es gibt mehrere persönliche Speicher (auch das ist möglich), die eine vorherige Abfrage des Benutzer erfordern.

Livesystem mit Persistenz und individuellen Einstellungen? Auch das ist natürlich kein Alleinstellungsmerkmal von Puppy: Typische Livesysteme wie Tails oder Porteus beherrschen das ebenfalls, und sämtlichen Ubuntu-basierten Systemen kann das Tool Unetbootin zur Persistenz verhelfen, sofern man sie als Livesysteme nutzen will. Aber keine andere Linux-Linie neben Puppy hat sich so fokussiert, live, schnell, klein und optimal anpassungsfähig zu sein. Es ist letztlich ganz egal, ob der Einsatzzweck ein mobiler Werkzeugkasten, eine Arbeitsumgebung, ein Surfsystem oder sicheres Home-Banking sein soll.

Im Kern ist Puppy eine Methode, vorhandene Distributionen auf ein möglichst kleines Livesystem zu reduzieren. Während viele Projekte Linux-Systeme als Grundlage nehmen, die mit weiteren Ergänzungen ausgebaut werden, geht Puppy den umgekehrten Weg und entfernt zunächst viele Komponenten. Dazu dient das Baukastensystem „Woof-CE“ (https://github.com/puppylinux-woof-CE/woof-CE), das die Reduktion einer Distribution mit Scripts vereinfacht. Die Resultate sind Livesysteme mit eigener Bootumgebung und komfortablen Tools aus dem Puppy-Baukasten. Puppies laden sich während des Starts komplett in den Arbeitsspeicher. Im Unterschied zu typischen Linux-Verhältnissen wird der Anwender automatisch angemeldet und hat root-Rechte. Puppy ist somit kein Mehrbenutzersystem, jedoch ist möglich, Benutzerprofile mit unterschiedlichen Einstellungen zu verwenden.

Faszinierend sparsam: Auf diesem Netbook mit bescheidenem 1 GB Arbeitsspeicher meldet Puppy Tahr nur knapp 60 MB Eigenbedarf.

Die Einrichtungsmöglichkeiten

Offizielle Webseite der Puppy-Systeme ist http://puppylinux.org. Dort gibt es grundsätzliche Informationen und als Download-Link zumeist den Server http://distro.ibiblio.org/puppylinux/, der alle offiziellen Puppy-Varianten versammelt, ferner auch zahlreiche „Pets“ – Software-Pakete für Puppy-Systeme. Eine schnellere Quelle für einige prominente Puppies ist http://puppylinux.com/download.html. Download-Quellen für weniger prominente Varianten müssen Sie gegebenenfalls recherchieren. So liegt Lxpup etwa auf Sourceforge (https://sourceforge.net/projects/lxpup) oder Macpup auf http://macpup.org.

Puppy-Systeme laufen an sich hervorragend von CD und können dabei auch Benutzeranpassungen in einem Persistenz-Speicher nutzen, der dann allerdings auf einer internen Festplatte oder einem zusätzlichen USB-Stick gespeichert werden muss. Ein von CD bootendes Puppy durchläuft dabei einfach sämtliche angeschlossene Datenträger und sucht nach Persistenz-Ordnern oder Dateien in deren Hauptverzeichnis. Ungeachtet der technischen Möglichkeit und der Schnelligkeit auf CD ist Puppy aber auf CD nicht ideal, denn für Anpassungen brauchen Sie immer noch ein zweites Medium. Und als reines Livesystem auf CD ohne Persistenz ist Puppy auch nicht ideal, da Sie dann bei jedem Start der unkomfortable „Quick-Setup“-Dialog begrüßt, wo Sie zumindest die deutsche Tastaturbelegung einstellen müssen.

Ideal für Puppies sind USB-Sticks, weil Sie damit das Livesystem plus Speicher für Anpassungen an Ort und Stelle auf einem Datenträger haben. Die Größe des Sticks spielt praktisch keine Rolle: Für die meisten Puppies sind schon 1 oder 2 GB üppig und bieten ausreichend Platz für Nachinstallationen und Anpassungen. Andererseits ist es keine Platzverschwendung, eine heute übliche Stick-Größe mit entsprechender Leistung zu wählen, da der Stick zusätzlich auch als normaler Datenträger genutzt werden kann.

Die Installation aller Puppy-Varianten ist identisch. Die nachfolgende Anleitung zeigt die Einrichtung am Beispiel eines Puppy Tahr („Tahrpup“) auf USB-Stick. Dabei nehmen wir den Umweg über das Puppy Livesystem auf einer CD, weil der Puppy-Installer dies als den Normalfall annimmt und unter dieser Voraussetzung am einfachsten zu durchlaufen ist.

Vom ISO-Abbild zum Puppy auf USB

Schreiben Sie das gewählte ISO-Image zunächst auf eine CD. Alle Puppies passen locker auf CD, eine DVD wäre Verschwendung. Die heruntergeladene ISO-Datei brennen Sie unter Linux mit einem Tool wie Brasero und der Option „Abbild brennen“, unter Windows mit der Freeware Imgburn und der Option „Imagedatei auf Disc schreiben“. Danach booten Sie einen Rechner mit optischem Laufwerk über die CD.

  1. Das Puppy-System wird am Desktop den Dialog „Quick Setup“ anzeigen. Eigentlich brauchen Sie für das temporäre Livesystem keine Einstellungen, aber es kann für die nachfolgende Einrichtung hilfreich sein, die Tastatur auf „de (Germany)“ zu setzen. Wer die Installationsdialoge in Deutsch sehen will, kann auch die Ländereinstellung auf Deutsch setzen und über den Puppy-Paketmanager (unter „Setup“ im Hauptmenü) sogar das langpack_de installieren. Wirklich notwendig ist das nicht, weil dies an dieser Stelle nur temporär bliebe und die englischsprachigen Dialoge im Installer meist klarer sind als die deutschen.
  2. Stecken Sie den USB-Stick ein, der das Puppy aufnehmen soll, und starten Sie über die Menü-Kategorie „Setup“ den „Puppy Universal Installer“ (in einigen Varianten auch nur „Puppy Installer“). Der oberste Eintrag „USB Flash Drive“ ist der richtige. Wenn nur ein Stick angeschlossen ist, wird der Installer diesen anbieten und mit Angabe der Gerätebezeichnung (etwa /dev/sdb1 oder /dev/sdc1) um Bestätigung bitten.

Puppy (Universal) Installer: Dieses Tool des Livesystems ist notwendig für die Einrichtung auf USB-Stick.

  1. An dieser Stelle besteht noch die Möglichkeit, den USB-Stick mit Gparted zu bearbeiten. Notwendig ist die Neupartitionierung nicht, weil auch die Systempartition zusätzlich als ganz normaler Datenspeicher dienen kann. Der Abstecher zu Gparted ist jedoch manchmal nötig, wenn dem USB-Stick das Boot-Flag fehlt. Der Puppy-Installer meldet das, korrigiert es aber nicht selbst. Die Korrektur erledigt dann Gparted nach Rechtsklick auf die Partition und „Markierungen bearbeiten -> Boot“.
  2. Nun folgt die Abfrage, aus welcher Quelle der Puppy Installer die maßgeblichen Systemdateien kopieren soll. In diesem Szenario mit dem Livesystem auf CD können Sie die Option „CD“ wählen.
  3. Der nächste Dialog bietet eine Auswahl von Bootsektoren. Gemäß der Empfehlung scheint mbr.bin die zuverlässigste Wahl. Vor allem aber ist wichtig, überhaupt einen Bootsektor zu wählen, denn die Voreinstellung fährt ohne Bootsektor fort. Damit wäre der Stick nicht bootfähig.
  4. Der Rest des Installer geht bei einigen Puppies grafisch weiter, oft aber im Terminal. Zunächst müssen Sie dem Vorgang noch einmal generell zustimmen, danach erscheint noch eine Option für den künftigen Systemstart, die Sie nach der Empfehlung mit „yes“ oder „ja“ beantworten.

Die nachfolgende Kopieraktion (initrd.gz, sfs-Dateien) ist angesichts der Kompaktheit schnell erledigt. Damit hat das Livesystem auf CD seinen Dienst getan. Starten Sie nun den Rechner mit dem USB-Stick.

Bootsektor nicht übersehen! Als Voreinstellung, falls Sie hier einfach weiterklicken, schreibt der Puppy Installer keinen Bootsektor auf den USB-Stick.

Einrichtung des Puppy-Systems

Auch das Puppy auf USB begrüßt Sie wieder mit dem Dialog „Quick Setup“. Hier lohnt es sich nun, alles sorgfältig einzustellen, erste Anpassungen am Desktop vorzunehmen und im Puppy-Paketmanager das langpack_de oder andere Software nachzuinstallieren. Das Systemtool, solche Änderungen außerhalb des Livesystems zu sichern, also den persönlichen Speicherbereich anzulegen, suchen Sie vergebens. Es startet aber automatisch, sobald Sie das neue Puppy zum allerersten Mal herunterfahren („Exit“ im Hauptmenü). Dann erscheint „Erstmals: Sitzung speichern“ („First shutdown…“). Optik und Wortwahl dieses wichtigen Vorgangs unterscheidet sich bei den Puppy-Varianten erheblich, jedoch ist das Prinzip identisch:

Antworten Sie in jedem Fall mit „Speichern“ (oder „Ja“, „Yes“). Die Auswahl einer Partition entfällt beim USB-Stick, weil das Tool hier sinnvollerweise den USB-Stick als Ziel nimmt. Verwenden Sie als Speichertyp die empfohlene Option „Folder“ („Ordner“), denn dies ist flexibler als eine Speicherdatei mit fixer Größe. Weitere Entscheidungen betreffen die optionale Verschlüsselung des Speichers und einen individuellen Namenszusatz. Danach legt das System den Speicherbereich an, kopiert die bereits angefallenen Daten und fährt herunter.

Die künftige Puppy-Nutzung gestaltet sich äußerst komfortabel: Störende Bremsen wie „Quick-Setup“ und „First shutdown“ entfallen, Software-Nachinstallationen sind durch „Quickpet“ und den „Puppy Package Manager“ schnell und einfach. Für Desktop-Anpassungen ist die Menü-Rubrik „Desktop“ einschlägig, die unter anderem den JWM Configuration Manager anbietet. Joe’s Window Manager ist die typische Puppy-Oberfläche, jedoch gibt es auch Varianten mit LXDE.

Der persönliche Speicherbereich, der alle Änderungen aufnimmt, ist auf Dateiebene unter /mnt/data/ leicht zugänglich und erlaubt damit auch einfache Experimente: Es genügt den kompletten Save-Ordner oder die Save-Datei auf gleicher Ebene und neuem Namen zu kopieren – etwa „tharsave“ als „tharsave-sepp“. Dadurch entsteht praktisch ein neues Benutzerprofil, das Sie mit eigenen Einstellungen ausstatten können. Das Puppy-System wird dann künftig beim Start eine Auswahl der Form

  • 0 none
  • 1 sdd1 /tahrsave
  • 2 sdd1 /tahrsave-sepp

anbieten, was nebenbei auch den Start des puren Livesystems (mit „none“) ermöglicht.

Alle lokalen Laufwerk zeigt Puppy standardmäßig als Desktop-Links an. Netzwerkfreigaben erreichen Sie über das Pnethood-Tool unter „Netzwerk“. Falls eine manuelle Einrichtung des Netzwerks notwendig ist, versammelt das Tool „Internet Connection Wizard“ (unter „Setup“) alle LAN-, WLAN-, Internet-, Proxy- und Firewall-Einstellungen.

Persönlichen Speicher anlegen: Die Meldung oben erscheint automatisch beim ersten Shutdown. Danach gibt es einige Entscheidungen zu treffen. Die Prozedur ist aber nur einmal zu durchlaufen.

Einfache Installationen: Puppy hat sein eigenes Paketformat (PET), macht dem Nutzer die Sache aber mit dem Package Manager und außerdem einer „Quickpet“-Vorauswahl sehr bequem.

Einige Puppy-Varianten im Steckbrief

Der ursprüngliche Entwickler Barry Kauler ist im Ruhestand und arbeitet nur noch sporadisch an Puppy. Seit den Anfangszeiten ab 2003 entstanden unzählige Varianten auf Basis des Buildsystems Woof-CE. Die offizielle Puppy-Familie unterteilt sich in zwei Hauptlinien. Die erste Puppy-Linie nennt sich „Slacko“, das die besonders kompakte Slackware als Systembasis nutzt. Die zweite Hauptlinie namens „Tahrpup“ basiert auf Ubuntu 14.04 LTS „Trusty Tahr“. Daneben gibt es inoffizielle Puppy-Systeme sowie die große Unterfamilie der „Puplets“. Dies sind mit speziellen Software-Paketen ausgestattete Puppy-Varianten, die meist im Puppy-Forum vorgestellt werden (siehe „Puplet for special features“ unter http://puppylinux.org/main/).

Im Allgemeinen fahren Sie am besten mit Puppy Slacko (Slackware) oder Puppy Thar (Ubuntu 14.04). Das auf Ubuntu 16.04 basierende und längst überfällige Xenialpup ist noch Beta. Das teilweise aus Ubuntu 16.04 gebaute Quirky vom Puppy-Gründer Barry Kauler (http://barryk.org/quirky/) ist experimentell und nicht für den Produktiveinsatz empfohlen. Das inspirierende Puppy-Konzept treibt aber allerlei Blüten, die je nach Einsatzzwecke ebenfalls interessant sein könnten:

Lxpup nutzt statt des JWM-Fenstermanagers einen soliden LXDE-Desktop, der für manche Anwender vertrauter ausfällt (https://sourceforge.net/projects/lxpup). Die vorinstallierten Programme fallen mit der Firefox-Abspaltung Palemoon, Mailclient Sylpheed oder Gparted ebenso Puppy-typisch aus wie die große Zahl kleiner System-Tools. Hauptmotiv für Lxpup ist eindeutig der LXDE-Desktop.

Simplicity ist ein Abkömmling Lxpup und geht einen Schritt weiter Richtung Desktop-System. Mit einem fast 600-MB-ISO-Abbild (http://simplicitylinux.org/) übertrifft Simplicity übliche Puppies um das Dreifache, liefert dafür aber ein komplettes Desktop-System unter einer LXDE-Oberfläche (Firefox, Skype, VLC, Libre Office). Aufgrund dieser Software sind die Hardware-Anforderungen etwas höher als bei einem reinen Puppy. Nach unserer Ansicht widerspricht Simplicity dem Konzeptkern der Puppy-Livesysteme, hat aber eine gewisse Popularität.

Macpup ist ein Puppy mit dem ganz hübschen, aber exotischen Enlightenment-Desktop (http://macpup.org) – nur für Enlightenment-Fans! Wer ein pragmatisches Zweitsystem sucht, handelt sich damit nur weitere Komplikationen ein. Immerhin handelt es sich um ein typisches Puppy mit einem nur 220 MB großen Abbild, das sogar für einen ausgewachsenen Firefox Platz findet.

Fatdog ist ein witziger Name für ein kleines Puppy-System, dessen ISO-Abbild etwa 360 MB beträgt (http://distro.ibiblio.org/fatdog/iso/). In der Runde der sonstigen Puppy-Winzlinge darf Fatdog aber in der Tat als dicker Hund gelten. Dies geht in erster Linie auf die erweiterte Software zurück, da bereits ein komplettes Libre Office, ferner Gimp und der VLC an Bord sind. Als Desktop dient LXDE mit Openbox.

Lxpup mit LXDE-Desktop: Outfit und Dialoge der Puppy-Varianten unterscheiden sich oft deutlich, die Arbeitsweise ist aber immer identisch – hier das Anlegen des Savefiles beim ersten Shutdown.

Zurück zur Linux-Übersichtsseite…

Das Heimnetz: Hardware, Tipps und Tools

Der kompakte Beitrag zum lokalen Netzwerk bespricht die typische Hardware für das private Heimnetz und Home Office und die wichtigsten Konfigurationseinstellungen und Netzwerkkommandos für Desktop und Server.

Netzwerke sind Hardware-seitig unglaublich flexibel und ausbaufähig. Linux wiederum ist für das Netzwerken geschaffen und macht als Netzwerk-Client wie als Server eine glänzende Figur. Dieser Beitrag liefert Basiswissen und vertiefende Tipps für ein optimiertes Heimnetz. Dabei geht es ausschließlich um das lokale LAN- und WLAN-Netz mit typischen Geräten, Kommunikationsprotokollen, Freigaben und Serververwaltung. Das öffentliche Netz, das Internet, bleibt komplett außen vor – siehe dazu diesen Artikel: Tipps und Tools fürs Internet

1. Der grafische Network-Manager

Sowohl für Ethernet als auch für WLAN erfolgt die grafische Netzwerkverwaltung unter fast allen Desktop-Distributionen über das Applet des Network-Managers in der Systemleiste. Auf Gnome-affinen Distributionen können Sie die dafür zuständigen Komponenten notfalls auch über

sudo apt-get install network-manager network-manager-gnome

nachinstallieren. In Ubuntu erscheint das Icon in der Systemleiste am oberen Bildschirmrand. Nach einem Klick darauf sehen Sie ein Menü mit einer Liste der verfügbaren Funknetzwerke. Klicken Sie das gewünschte an, geben Sie hinter „Passwort“ den WPA-Schlüssel ein, und klicken Sie auf „Verbinden“. Ist eine Ethernet-Verbindung aktiv, erscheint dieses unter „Kabelnetzwerk“. Im Menü gibt es außerdem die Einträge „Netzwerk aktivieren“ und bei WLAN „Funknetzwerk aktivieren“. Vor beiden muss ein Häkchen gesetzt sein, damit die Verbindung funktioniert.

Bei Fehlfunktionen sollten Sie über „Verbindungen bearbeiten“ die Einstellungen prüfen und gegebenenfalls ändern. Wählen Sie etwa „Kabelnetzwerkverbindung 1“, klicken Sie auf „Bearbeiten“ und gehen Sie auf die Registerkarte „IPv4-Einstellungen“. Hinter „Methode“ sollte hier „Automatisch (DHCP)“ eingetragen sein. Es ist nur in Ausnahmefällen ratsam (Server, Access Points, Netzdrucker), feste IP-Adressen manuell zu konfigurieren, damit das Gerät immer unter der gleichen IP-Adresse erreichbar ist (siehe -> Punkt 9).

Tipp: Der Network-Manager unterstützt keine deutschen Umlaute beim WLAN-Passwort. Vermeiden Sie daher WLAN-Kennwörter mit „ä“, „ö“, „ü“, „ß“ in der Router- oder Access-Point-Konfiguration.

Aktuelle Linux-Systeme nutzen den Network-Manager für den Verbindungsaufbau. Das Tool steuert über „Verbindungsinformationen“ sogar subtile Details wie die MTU-Paketgrößen.

2. Klassische Netzwerk-Konfiguration

Distributionen ohne Network Manager verwenden die klassische Linux-Konfiguration über die Datei /etc/network/interfaces. Deren Einträge haben in jedem Fall Vorrang vor denen des Network-Managers. Fehlerhafte Angaben an dieser Stelle können daher auch den Network-Manager lahmlegen. Standardmäßig enthält die Datei interfaces auf Desktop-Systemen nur die zwei Zeilen

auto lo
iface lo inet loopback

für den Loopback-Adapter (siehe dazu -> Punkt 3).

Für einen Server ohne grafischen Network Manager wären die folgenden Zeilen eine gültige Konfiguration für den Ethernet-Adapter, der hier die feste IP „100“ beziehen soll:

auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8

Der Adressraum „192.168.0.x“ muss natürlich angepasst werden, bei Fritzbox-Routern ist „192.168.178.x“ typisch. Spielt die IP keine Rolle (dynamisch über DHCP), dann genügen zwei Zeilen:

auto eth0
iface eth0 inet dhcp

Die Einstellungen werden erst nach einem Neustart wirksam.

3. Netzwerkadapter mit ifconfig im Griff

Das Terminaltool ifconfig ist unentbehrlich für die Anzeige der Netzadapter und beherrscht auch fundamentale Eingriffe. Bei purer Eingabe ifconfig erhalten Sie die IP-Adresse des Geräts, die physikalische MAC-Adresse des Netzadapters, ferner die Download- (RX) und Upload-Datenmenge (TX) seit dem letzten Systemstart. Der Ethernet-Adapter erscheint als „eth0“ (oder „enp6s0“), der WLAN-Adapter als „wlan0“. Die angezeigte „lo“-Schnittstelle mit der IP-Adresse 127.0.0.1 existiert nicht physisch: Bei dieser „lokalen Schleife“ (Loopback) handelt es sich um eine zum lokalen System zurückführende Schnittstelle, womit lokale Prozesse via TCP/IP miteinander kommunizieren.

Wenn ifconfig nur den virtuellen Loopback Adapter „lo“ anzeigt, hat Linux den Ethernet-Adapter Hardware-technisch nicht erkannt. Bei Ethernet-Adaptern ist das so gut wie ausgeschlossen. Was Sie bei WLAN-Adaptern in diesem Fall unternehmen können, lesen Sie im Hardware-Kasten („WLAN-Adapter unter Linux“).

Mit „down“ und „up“

sudo ifconfig eth0 down

schalten Sie einen Adapter, in diesem Fall mit „eth0“ den Ethernet-Anschluss, aus oder wieder ein.

Der nachfolgende Befehl

sudo ifconfig eth0 192.168.0.222

fordert eine neue lokale IP-Adresse vom Router. Dies führt zwar zu einer inkonsistenten Netzkonfiguration, sollte aber nach wie vor den Zugriff auf die Router-Oberfläche ermöglichen. Dort können Sie dann diese Wunsch-IP als feste IP festlegen.

Download- (RX) und Upload-Menge (TX): Ifconfig zeigt unter anderem auch den Datendurchsatz am betreffenden Adapter seit dem Systemstart.

4. WLAN-Konfiguration mit iwconfig und iwlist

Die manuelle Konfiguration des WLAN-Adapters ist nur nötig, wenn Sie einen Headless-Server ohne Monitor, Maus, Tastatur per SSH konfigurieren. Folgende Kombination von Netzwerkkommandos, die allesamt zum Linux-Standard gehören, kann das erledigen:

sudo iwlist scanning
sudo iwconfig wlan0 essid [Netzname] key s:[Passwort]
sudo dhclient wlan0

iwlist zeigt zunächst die verfügbaren Funknetze (Netznamen als „ESSID“), und iwconfig verbindet zum gewünschten Netz: Nach „essid“ folgt der Netzname, nach „key“ das WLAN-Passwort. Da nicht der hexadezimale Schlüssel, sondern das Passwort übergeben wird, muss das mit „s:“ signalisiert werden. Zu guter Letzt bezieht der Rechner mit dhclient eine IP-Adresse vom Router.

Speziell bei Ubuntu-basierten Systemen ist diese Vorgehensweise aber oft erfolglos. Hier empfiehlt sich auch bei späteren Headless-Servern zunächst die Grundkonfiguration des Funknetzes mit dem grafischen Network Manager.

5. LAN-Rechner mit ping prüfen

Ping gehört überall zur Linux-Standardausstattung. Das einfache Tool prüft, ob der aktuelle PC Verbindung zum Router („ping 192.168.0.1“) hat oder ob ein anderer PC im lokalen Netz („ping 192.168.0.10“) erreichbar ist. Neben der schlichten Recherche, ob sich der befragte Host überhaupt meldet, gibt es auch qualitative Aussagen: Im Heimnetz sollten keine verlorenen Datenpakete auftreten („packet loss“) und die Antwortzeiten unter zehn Millisekunden liegen, während Pings ins Web selten unter 20 Millisekunden antworten.
Ping ohne Counter („-c“) läuft endlos, lässt sich aber mit der Tastenkombination Strg-C abbrechen. Ist der Router mit ping nicht erreichbar, hilft oft das Aus- und Einschalten des Netzwerkadapters, um eine neue IP-Adresse zu beziehen.

6. Nmap-Pings an alle Geräte im lokalen Netz

Ping (siehe -> Punkt 5) kann Hostnamen auflösen („ping fritz.box“), übersetzt aber keine IP-Adressen zu Hostnamen. Außerdem kann es – ohne Scriptunterstützung – nur auf eine Adresse losgeschickt werden. Für eine Komplettübersicht im lokalen Netz hilft nmap. Nmap ist in der Regel nicht vorinstalliert, aber mit seinem Paketnamen „nmap“ in allen Repositories erhältlich. Folgende nmap-Kommandos

nmap -sP 192.168.0.1-50
nmap -sP 192.168.0.*

schicken Ping-Anfragen an die ersten 50 und alle 255 Adressen des Adressraum. Der schnelle Ping-Scan zeigt dann alle laufenden Netzgeräte mit Host-Namen und IP-Adresse.
Ohne Ping-Parameter („-sP“) macht nmap sorgfältige und zeitaufwändige Portscans: Sie erhalten zu jedem Rechner Host-Namen, IP-Adresse, MAC-Adresse und die Liste aller offenen Ports. Ist der Vorgang für den gesamten lokalen Adressraum zu langwierig, lässt sich auch ein einzelner PC befragen (nmap 192.168.0.10 oder auch mit Hostnamen nmap raspberry).

Überblick mit nmap: Der Portscanner taugt auch für einfache Ping-Abfragen im gesamten lokalen Adressraum und löst dabei die Host-Namen auf.

7. Netzwerksicherheit mit Nmap-Portscans

Risiken für Ihr Heimnetz entstehen durch offene Ports, die den Zutritt über das Internet in Ihr lokales Netz erlauben. Handelt es sich um Portfreigaben im Router, die Sie selbst eingerichtet haben, dann ist das in Ordnung, wenn nicht, bedeuten offene Ports Alarmstufe rot. Kontrolle über eventuell vergessene Portfreigaben erhalten Sie im Router, so etwa in der Fritzbox unter „Internet -> Freigaben -> Portfreigaben“. Einen objektiven Test, der auch innere Feinde in Form von laufender Schadsoftware entlarvt, können Sie mit nmap realisieren.

Zunächst müssen Sie Ihre öffentliche IP-Adresse ermitteln. Die kennt zum Beispiel Ihr Router („Übersicht“ in der Fritzbox), sie kann aber auch mit einem Tool wie inxi ermittelt werden („WAN IP“ nach Eingabe inxi -i). Die öffentliche WAN-IP, beispielweise 178.23.136.15, prüfen Sie dann mit diesem Kommando:

sudo nmap -Pn 178.23.136.15

Dabei untersucht nmap die Standardports von 1 bis 1000. Sämtliche Ports erfassen Sie mit diesem Befehl:

sudo nmap -Pn -p0-65535 178.23.136.15

Dieser Scan durchläuft alle Ports von 1 bis 65535 und dauert sehr lange. Als Ergebnis sollten Sie, sofern Ihr Netz für das Internet komplett geschlossen sein soll, die Antwort erhalten „All scanned ports are filtered“. Wo immer das nicht der Fall ist und die Ursache unklar, weil dafür keine Portfreigabe im Router vorliegt, gehen Sie mit der angezeigten Portnummer der Sache auf den Grund:

sudo nmap -sV -Pn -p[Nummer] 178.23.136.15

Mit Schalter „-sV“ zeigt nmap an, welches Programm oder welcher Dienst diesen Port benutzt. Ist dieser Prozess unerwünscht, beenden Sie den Verursacher mit einem Taskmanager umgehend (in der „Systemüberwachung“ oder mit top/htop im Terminal) und dauerhaft durch Deinstallieren und Löschen der Programmdateien.

„All ports filtered“: Dieses nmap-Ergebnis stellt sicher, dass Ihr lokales Netz über das Internet nicht erreichbar ist. Offene Ports würde nmap als „OPEN“ melden.

8. MAC-Adressen mit arp ermitteln

Jeder Netzadapter hat eine eindeutige MAC-Adresse der Form C2:22:09:F2:5F:E8 (sechs zwei-stellige Hexadezimalzahlen). Die brauchen Sie zum Beispiel dann, wenn Sie im Router feste IP-Adressen oder Zugangskontrollen einrichten wollen (siehe -> Punkt 9). Der Router selbst kennt und zeigt natürlich sämtliche MAC-Adressen. Am lokalen Rechner zeigt ifconfig (siehe -> Punkt 3) immerhin dessen MAC-Adresse(n) als „Hardware Adresse“ an. Der Befehl arp (Address Resolution Protocol) kann noch mehr:

arp –a

Dies wirft die MAC-Adressen aller in letzter Zeit verbundenen Netzgeräte aus. Da der Arp-Cache seine Daten periodisch verwirft, ist vielleicht momentan genau das gesuchte Gerät nicht in der Liste. Wenn Sie aber vorher einen Ping an das Gerät schicken und dann arp -a befragen, erhalten Sie zuverlässig die MAC-Adresse des entfernten Geräts.

9. Feste IPs im Router einrichten

Server, aber auch Geräte wie Access Points, WLAN-Repeater oder Netzwerkdrucker verdienen eine feste lokale IP-Adresse, damit Sie Konfigurationsoberflächen oder Daten zuverlässig erreichen (etwa via Browser-Lesezeichen oder in Scripts). Die Vergabe fester IP-Adressen erledigt am besten zentral der Router, der die IPs als DHCP-Server vergibt. Der betreffende Punkt kann „DHCP-Reservierung“ oder ähnlich lauten. In der Fritzbox finden Sie diese Möglichkeit unter „Heimnetz –> Netzwerk“. Dort erscheint für die eingetragenen Netzwerkgeräte die Option „Diesem Netzwerkgerät immer die gleiche IP-Adresse zuweisen.“

Dabei kann aber nur die gerade aktuelle IP als künftig konstante IP eingestellt werden. Wenn Sie eine ganz bestimmte andere IP wollen, lassen Sie sich unter „Heimnetz -> Heimnetzübersicht“ die Details des gewünschten Netzgeräts anzeigen und notieren sich die MAC-Adresse („Geräteinformation“). Danach verwenden Sie „Heimnetz -> Heimnetzübersicht -> Netzwerkverbindungen -> Gerät hinzufügen“. Dort können Sie unter Angabe der „MAC-Adresse“ die Wunsch-IP vergeben. Der Router wird melden, dass ihm das Gerät unter einer anderen IP bekannt ist, und Sie müssen mit „OK“ bestätigen, dass Sie die Einstellung überschreiben wollen. Danach sollten Sie das Gerät (oder dessen Netz-Adapter) neu starten.

Feste IP für bestimmte Netzgeräte: Diese Aufgabe löst mancher Lowcost-Router logischer als die Fritzbox – hier ein Dlink-Router unter „DHCP-Reservierung“.

10. Server: Fritz-NAS als zentraler Speicher

Wer „nur“ einen zuverlässigen Datenserver braucht und eine Fritzbox als Router besitzt, braucht nicht notwendig einen Server oder Platinenrechner. Mit der Fritzbox reduziert sich der Einrichtungsaufwand auf ein Minimum: Wenn Sie unter „Heimnetz -> Speicher (NAS)“ die NAS-Funktion über „Speicher (NAS) aktiv“ einschalten, ist sofort der interne Speicher im Netz verfügbar. 512 MB bis 1,5 GB bieten neuere Fritzboxen an internem Speicher an. Das reicht natürlich nicht für einen Datenserver. Sobald Sie aber an einen der beiden USB-Ports einen USB-Datenträger anschließen, wird dieser unter „Heimnetz -> Speicher (NAS)“ angezeigt und kann dort durch die Klickbox aktiviert werden.

Das Fritz-NAS arbeitet wie eine Samba-Freigabe unter Linux: Der Standard-Hostname „fritz.nas“ (Standard-IP ist xxx.xxx.xxx.254) erscheint unter „Netzwerk“ im Dateimanager von Linux- und Windows-PCs, und die Daten lassen sich nutzen, sofern sich der Netzteilnehmer ausweisen kann. Die Einrichtung mindestens eines Benutzerkontos erledigen Sie unter „System -> Fritz!Box-Benutzer“. An dieser Stelle sind differenzierte Schreib- und Leserechte und Ordnerfreigaben möglich wie unter Linux üblich. Standardmäßig gibt die Fritzbox „Alle…verfügbaren Speicher“ mit Lese- und Schreibrecht frei.

Fritz-Datenserver auf der Konfigurationsoberfläche und im Dateimanager: Die Einrichtung eines USB-Datenträgers im Fritz-NAS ist einfacher als jede Server-Lösung.

11. Server-Freigaben mit Samba im Terminal

Wer es sich bequem machen will, wird auch auf einem ferngewarteten Platinenserver ein Serversystem mit einer klickfreundlichen Weboberfläche einsetzen. Erste Wahl für Raspberry & Co ist aktuell die NAS-Distribution Open Media Vault (openmediavault.org). Wirklich notwendig ist ein solcher Überbau für einen einfachen Datenserver im Heimnetz allerdings nicht. Wenige Kommandos im Terminal des Servers oder per SSH auf einem anderen Netzrechner (siehe -> Punkt 13 und 17) genügen, um Netzwerkfreigaben via Samba einzurichten. Voraussetzung ist zunächst ein installiertes Samba-Server-Paket (bei Server-Distributionen meist schon vorinstalliert):

sudo apt update
sudo apt upgrade
sudo apt install samba-common samba

Jeder Benutzer, der auf Freigaben zugreifen darf, muss ein Systemkonto mit Passwort besitzen:

sudo adduser sepp

Das Benutzer-Passwort wird nach Eingabe dieses Befehls automatisch abgefragt.
Ferner muss der Benutzer zusätzlich ein Samba-Kennwort erhalten, denn Samba hat seine unabhängige Kennwortverwaltung:

sudo smbpasswd -a sepp

Danach genügt folgender Befehl, um ein Verzeichnis dauerhaft über das Netzwerk freizugeben:

sudo net usershare add sepp /home/sepp "" sepp:f

Hier wird das Verzeichnis /home/sepp als Freigabe mit dem Namen „sepp“ für den gleichnamigen User im Netzwerk freigegeben.

12. Samba-Konfiguration in der Datei smb.conf

Samba verwendet als einzige Konfigurationsdatei /etc/samba/smb.conf. Darin sind die Basis-Einstellungen für den Samba-Server und auch die Freigaben festgelegt. Das Editieren der smb.conf ist umfassender und oft auch bequemer als net-Befehle auf der Kommandozeile:

sudo nano /etc/samba/smb.conf

Arbeitsgruppe: Mit „workgroup=WORKGROUP“ unter „[global]“ legen Sie die Arbeitsgruppe fest. Windows verwendet die Gruppe ebenfalls standardmäßig, sodass Sie die Einstellung belassen können. Wenn Sie in Ihrem Netzwerk eine anders benannte Gruppe verwenden, ändern Sie den Wert entsprechend. Für den Zugriff auf die Freigaben ist die Arbeitsgruppe nicht wesentlich, jedoch zeigen Linux-Datei-Manager nicht einfach alle Rechner mit Freigaben in einer Liste an, sondern organisieren sie in Arbeitsgruppen unterhalb von „Windows-Netzwerk“. Sie sparen sich unnötige Mausklicks, wenn Sie alle Rechner in derselben Gruppe unterbringen.

Home-Verzeichnisse freigeben: Weiter unten in der smb.conf gibt es einen auskommentierten Abschnitt, der mit „;[homes]“ beginnt. Entfernen Sie die Kommentarzeichen (Semikolon), um die Home-Verzeichnisse aller Benutzer standardmäßig freizugeben. Soll auch der Schreibzugriff erlaubt sein, ändern Sie „read only = yes“ auf „read only = no“. Wenn ein authentifizierter Benutzer auf den Server zugreift, sieht er nur sein eigenes Home-Verzeichnis als Freigabe.

Allgemeine Freigaben: Eine neue Freigabe für ein beliebiges Verzeichnis lässt sich über drei Zeilen realisieren, die Sie am Ende der Datei smb.conf einfügen:

[data]
path = /media/data
writeable = no

In diesem Beispiel wird das Verzeichnis „/media/data“ unter der Bezeichnung „data“ freigegeben. Der Ordner muss existieren und die Benutzer müssen auf der Ebene des Dateisystems zumindest Leserechte besitzen.

Achtung: Änderungen in der smb.conf werden erst wirksam, wenn Sie den Samba-Dienst mit

sudo service smbd restart

neu starten:

Samba konfigurieren: Alle nötigen Einstellungen für den Samba-Server und die Netzwerk-Freigaben nehmen Sie in der Datei /etc/samba/smb.conf vor.

13. SSH-Serverwartung mit Linux und Mac OS X

Kein Server ohne Secure Shell (SSH)! Selbst wenn Sie einen (Raspberry-) Server mit Webserver und freundlicher Konfigurationsoberfläche betreiben, bleibt die SSH-Wartung auf der Kommandozeile das umfassendste, schnellste und direkteste Werkzeug. Einzige Voraussetzung auf dem Server ist ein installierter Open-SSH-Server (auf typischen Server-Distributionen wie Cent OS, Ubuntu Server oder Open Media Vault standardmäßig installiert und aktiv). Wo er noch fehlt, ist das mit

sudo apt-get install openssh-server

leicht zu korrigieren.
Die Client-Komponente für den Fernzugriff bringt jedes Linux- und Mac-System mit. Dort genügt dann der Befehl

ssh [benutzer]@[IP-Adresse]

für die Anmeldung auf dem entfernten Server, also etwa:

ssh root@192.168.0.10

Beim allerersten Zugriff auf einen Server ist dem Client-System der Rechner noch nicht bekannt, und Sie müssen die Verbindung mit „yes“ bestätigen. Künftig entfällt diese Abfrage, weil der Fingerabdruck des Servers auf dem Client unter .ssh/known_hosts gespeichert wird. Nach Erlaubnis der Verbindung mit „yes“ erfolgt die Abfrage des User-Kennwort. Auf dem Remote-Terminal können Sie alle Befehle verwenden wie in einem lokalen Terminal. Sie bearbeiten Konfigurationsdateien, installieren Programme mit apt-get oder versorgen das System mit Updates. Der Befehl exit oder die Tastenkombination Strg-D beenden die SSH-Verbindung.

14. SSH-Datenaustausch mit dem Midnight Commander

Der Midnight Commander (MC) erlaubt unter Linux und Mac OS den direkten Datenaustausch zwischen Server und Client (anstatt über scp-Kommandos oder auf dem Umweg von Samba-Freigaben). Es beherrscht nämlich selbst SSH über die Option „Shell-Verbindung“ in den Menüs „Links/Rechts“. Wie bei ssh auf der Kommandozeile geben Sie hier den Servernamen oder die IP-Adresse an, optional bereits mit dem gewünschten User (etwa: root@192.168.0.10). Nach Eingabe des Kennworts zeigt der Midnight Commander in einer Fensterhälfte das Dateisystem des Servers, in der anderen das des zugreifenden Client – Sie können als root sofort Dateien im gesamten Dateisystem austauschen.

Der MC erwartet die Kommunikation über den SSH-Standardport 22. Für abweichende Ports gibt es eine spezielle Lösung: Legen Sie auf dem zugreifenden Linux-Client-System (nicht auf dem Server!) unter ~/.ssh die Datei „config“ neu an. Dort definieren Sie einen oder auch mehrere Server in folgender Weise:

Host raspi
Hostname 192.168.0.20
Port 12345
User root

Ab sofort genügt es, im MC beim Eingabefeld der „Shell-Verbindung“ als Host den Namen „raspi“ einzugeben. Alle übrigen Infos über IP, Port, User liest der MC aus der config-Datei.

Der Midnight Commander beherrscht SSH und bringt das Dateisystem des Servers direkt zum SSH-Client. Links sehen Sie den bereits verbundenen Server, rechts den Client-PC.

15. Linux-Dateimanager und Netzressourcen

Linux-Dateimanager wie Nautilus (Ubuntu) oder Nemo (Mint) können mit allen Netzressourcen inklusive Samba, FTP, Webdav und SSH umgehen. Wenn Sie in der Navigationsspalte auf  „Netzwerk“ gehen, werden die Netzrechner angezeigt, Windows- und Samba-Freigaben unter „Windows-Netzwerk“. Über die Adresszeile (editierbar nach Strg-L) können Sie direkte Serveradressen eingeben. Bei Windows- und Samba-Freigaben verwenden Sie „smb://[Server]/[Freigabename]“, wobei statt „[Rechner]“ immer auch die IP-Adresse des Servers funktioniert. Bei der Fernwartung von Servern mit SSH bieten Dateimanager oft komfortablere Bearbeitungsmöglichkeiten als das SSH-Terminal. Eine typische Adresse im Dateimanager könnte so lauten:

ssh://root@192.168.0.8[:Port]

Die Angabe der Portnummer ist nur notwendig, wenn der Port vom Standard „22“ abweicht. Nach der Anmeldung kopieren und bearbeiten Sie Daten bequem und sicher direkt im Dateimanager über das Protokoll SFTP.

Mit dem grafischen Dateimanager auf dem SSH-Server: Desktop-Dateimanager wie hier Nemo unter Linux Mint beherrschen das SSH-Protokoll ebenso wie Samba oder FTP.

16. Grafische Programme über SSH (X11-Forwarding)

Sofern es auf dem Server grafische Programme gibt, lassen sich diese auch über SSH starten und auf dem Client-PC anzeigen. Unter Linux als zugreifender Client ist der Aufwand am geringsten: Hier verwenden Sie beim SSH-Aufruf einfach den Schalter „-X“ (Großschreibung!):

ssh –X root@192.168.0.10

In der SSH-Konsole starten Sie dann etwa mit thunar oder gedit das gewünschte, grafische Programm.
Der SSH-Client von Mac OS X unterstützt nur die pure Kommandozeile. Für grafisches X11-Forwarding ist die zusätzliche Komponente XQuartz erforderlich (http://xquartz.macosforge.org/landing/).

17. SSH-Clients unter Windows (Putty / Xming)

Wenn Sie einen Linux-Server mit einem Windows-PC warten wollen, sind Sie auf Putty oder seinen fast identischen Klon Kitty angewiesen (auf Heft-DVD, Downloads und Infos unter www.putty.org und www.9bis.net). Kitty unterscheidet sich dadurch, dass es die automatische Übergabe des Passworts erlaubt („Connection -> Data“) und damit eine automatische Anmeldung, ferner dass es die Server-Daten in Klartextdateien unter \Kitty\Sessions ablegt (statt in der Windows Registry).

Putty/Kitty bieten die komfortable Verwaltung mehrerer Server. Die Basiskonfiguration ist einfach: Geben Sie unter „Host Name“ den Rechnernamen oder die IP-Adresse des Servers an. Mit „Connection type: SSH“ und dem vorgegebenen Standardport 22 können Sie sich mit „Open“ sofort verbinden. Für häufigeren Zugriff lohnt es sich, unter „Saved Sessions“ eine aussagekräftige Bezeichnung zu verwenden, „Appearance“, „Color“ und „Data“ (Benutzer) einzustellen und dies mit „Save“ dauerhaft zu speichern. Unter „Window -> Translation -> Remote character set“ sollten Sie den Eintrag „UTF-8“ wählen, damit Sonderzeichen und Linien in der SSH-Konsole korrekt angezeigt werden. Putty/Kitty dienen ausschließlich als SSH-Vermittlungsclient und Serververwaltung, die eigentliche Arbeit geschieht wie unter Linux im Terminal.

Grafische Programme über X11-Forwarding: Auch unter Windows bringen Sie grafische Programme des Servers auf den Desktop. Neben Putty/Kitty benötigen Sie dazu noch den kostenlosen X-Server Xming (http://sourceforge.net/projects/xming/). Xming muss laufen, bevor Sie die SSH-Session starten. Unter Putty/Kitty aktivieren Sie die maßgebliche Option unter „Connection -> X11 -> Enable X11 forwarding“ und tragen als „X display location“ die Angabe „localhost:0“ ein. Sichern Sie die Konfiguration mit „Session -> Save“. Die so gestartete SSH-Sitzung erlaubt wie unter Linux den Aufruf von grafischen Programmen.

Putty/Kitty unter Windows: Die Angabe der IP-Adresse und des Ports (Standard 22 ist voreingestellt) genügen. Benutzer und Kennwort werden dann bereits in der Konsole abgefragt.

Netzwerk-Hardware

Nachfolgend geht es um den Umgang mit der wichtigsten Netzwerk-Hardware, Optionen des Netzwerkausbaus und wichtige Konfigurationsmöglichkeiten. Ein Großteil dieser Infos gilt Betriebssystem-unabhängig: Für Router, Switch, Access Point, Repeater, Powerline-Adapter spielt das System eines Netzwerkgeräts keine Rolle.
Generell gilt im Netzwerk noch deutlicher als anderswo: Wenn die Hardware unzureichend, veraltet oder defekt ist, helfen keine Software-Tipps. Insbesondere bei diffusen Phänomenen eines zeitweise funktionierenden, aber immer wieder unterbrechenden Netzwerks sind Fehleranalyse und Austausch der Komponente alternativlos. Ein stabil langsames Netz ist hingegen nur eine Frage der Toleranz: Ausbaumöglichkeiten gibt es genug.

Die Router-Adresse

Die zahlreichen Router-Funktionen lassen sich in dessen Konfigurationsoberfläche über den Browser steuern. Dessen IP-Adresse lautet oft 192.168.178.1 oder 192.168.0.1, ist aber auch leicht zu ermitteln. Der Befehl

ip route show

zeigt die Adresse nach „default via …“ an. Im Prinzip genügt auch der Befehl ifconfig, wenn Sie im vierten Block der IPv4-Adresse statt der angezeigten Ziffer (die IP des aktuellen Geräts) die „1“ einsetzen.

Der Router zeigt eine wichtige Geräteübersicht mit allen Gerätenamen, IP- und MAC-Adressen (in der Fritzbox unter „Heimnetz -> Heimnetzübersicht“). Einige weitere fundamentale Router-Optionen wie die Vergabe von festen IP-Adressen oder den Hinweis auf das Fritzbox-NAS finden Sie im Haupttext (-> Punkt 9 und 10).

Der Gigabit-Switch

Im lokalen Netz verläuft nicht der gesamte Datenverkehr durch den Router: Wenn in einem Raum Kabelnetz verfügbar ist und dort ein Netzwerk-Switch mehrere Endgeräte verbindet, dann regelt der Switch den Datenaustausch dieser Geräte direkt – ohne Umweg zum Router und vor allem ungeachtet des sonstigen Netzdurchsatzes. Es wäre also falsch, im Hinblick auf die allgemeine Netzwerkleistung (Fast Ethernet, Powerline, WLAN?) auf einen Gigabit-Switch zu verzichten. Wenn die angeschlossenen Clients Gigabit-Ethernet beherrschen, lässt sich der Datenaustausch dieser Geräte erheblich optimieren.

WLAN-Adapter unter Linux

Externe WLAN-Adapter an USB sind nicht immer Linux-kompatibel. Wer Treiberproblemen aus dem Weg gehen will, kann sich an die folgenden preiswerten Empfehlungen halten (Preise bei amazon.de und conrad.de, Dezember 2016):

Edimax EW-7811UN Wireless USB Adapter (6,80 €)
Asus N10 Nano WLAN-Stick (10,15 €)
TP-Link TL-WN823N N300 Mini WLAN USB Adapter (10,00 €)
CSL 300 Mbit/s USB 2.0 WLAN Stick (12,50 €)
Fritz!Wlan USB Stick-N v2.4 (22,99 €)

Viele weitere WLAN-Adapter sind Linux-tauglich oder werden es nach gewisser Handarbeit. Eine Übersicht für Ubuntu-basierte Systeme (incl. Linux Mint) gibt die Seite https://wiki.ubuntuusers.de/WLAN/Karten/.

Troubleshooting: Wenn Linux keinen Treiber für den WLAN-Chipsatz eines Notebooks oder für einen USB-WLAN-Adapter anbietet, bleibt die Netzwerkschnittstelle unerkannt und der Network Manager an der grafischen Oberfläche kann keine Funknetze anbieten. Dann gilt es herauszufinden, mit welchem Chipsatz ein Gerät arbeitet. Bei Netzwerkkarten und internen Chips gehen Sie im Terminal

lspci |grep -i network

ein: Sie erhalten eine Liste aller Netzwerkgeräte im PCI-Bus mit Hersteller, Typenbezeichnung und Revisionsnummer. USB-Adapter sind weniger gesprächig. Eventuell zeigt der Stick selbst eine genaue Typenbezeichnung inklusive Revisionsnummer. Notfalls hilft der Befehl lsusb. Der zeigt Hersteller und Geräte-ID im Format XXXX:YYYY:

BUS 003 Device 004: ID 2001:3c15 D-Link Corp.

Der Teil vor dem Doppelpunkt bezeichnet den Hersteller (XXXX), die darauf folgende Zeichenkette (YYYY) ist das Gerät, in diesem Fall „3c15“. Beides ist auf der Seite www.linux-usb.org/usb.ids zu entschlüsseln. Nutzen Sie hier die Suchfunktion im Browser, um den exakten Gerätenamen mit Revisionsnummer anhand der ID zu ermitteln. Die Nummer ist wichtig, da viele Hersteller verschiedene Chipsätze verbauen, ohne die Typenbezeichnung zu ändern.

Mit der exakten Typenbezeichnung ist viel erreicht: Damit kann eine gezielte Suche nach Linux-Treibern starten. Erste Anlaufstelle ist nicht der Hersteller, sondern das Supportforum der verwendeten Distribution. Eine der besten Ressourcen im Web ist die schon genannte Adresse http://wiki.ubuntuusers.de/WLAN/Karten mit Hinweisen und Installationsanleitungen. Etliche Module für WLAN-Chipsätze gibt es für verbreitete Distributionen als fertiges Paket. Dann ist der Modulname über den Paketmanager der Distribution zu finden.

WLAN-Repeater einrichten

Ein Repeater vergrößert die Reichweite des Funksignals. Die je nach Ausstattung und Sendeleistung zwischen 20 und 100 Euro teuren Geräte sind die einfachste Methode, mangelhaftes WLAN zu verbessern. Leistungstechnisch sind aber andere Alternativen überlegen (siehe unten: Access Point, Powerline).

Falls es für eine Repeater-Ersteinrichtung keine WPS-Option gibt, können Sie das Gerät auch manuell einrichten. Dazu stecken Sie das Gerät in der Nähe eines PCs in eine Steckdose. Danach klicken Sie unter Linux auf den Network-Manager in der Systemleiste. Hier sollte ein zusätzliches Netz mit dem Namen des Repeaters erscheinen, mit dem Sie sich „Verbinden“. Der Sicherheitsschlüssel lautet oft „00000000“, ein eventuell abweichendes Standardkennwort verrät das Doku-Heftchen. Danach laden Sie die Repeater-Konfigurationsoberfläche im Browser. Netzwerknamen wie etwa „fritz.repeater“ funktionieren nicht immer. In diesem Fall müssen Sie die IP-Adresse des Repeaters eingeben, die Sie über die Liste der WLAN-Geräte im Router herausfinden. Einzige fundamentale Einstellung in der Konfiguration ist die Wahl des Funknetzes, das der Repeater verstärken soll. Aktivieren Sie in dieser Liste den Namen Ihres Netzes, und geben Sie das Kennwort für dieses Funknetz ein.

Bei der automatischen Ersteinrichtung übernehmen Repeater den Netznamen (SSID) der Basisstation. Das ist von Nachteil, wenn Sie mit Tablets oder Smartphones in der Wohnung unterwegs sind: Viele Geräte wechseln zwar automatisch zum Sender mit der optimalen Signalstärke, aber längst nicht alle und nicht alle schnell genug. Daher ist es besser, selbst entscheiden zu können, mit welchem WLAN-Sender man sich verbindet. Dazu sollte der Repeater einen eigenen Namen melden wie etwa „Repeater“. Dies lässt sich in der Konfigurationsoberfläche einstellen, etwa beim Fritz Repeater unter „WLAN -> Funkeinstellungen“.

Bei einem Repeater besteht wenig Tuningbedarf, aber es ist immer besser, wenn Sie die Konfigurationsoberfläche über eine feste IP erreichen. Geräte wie der Fritz Repeater bieten diese Möglichkeit nicht an. Die feste IP müssen Sie daher im Router definieren, wie im Haupttext unter -> Punkt 9 beschrieben.

WLAN-Access-Points einrichten

Wo das Router-Funknetz wichtige Räume nicht abdeckt, verwenden Sie an diesem Standort vorzugweise einen Access Point. Der bietet für etwa 40 Euro aufwärts deutlich besseren Datendurchsatz als ein Repeater, setzt allerdings voraus, dass am betreffenden Ort ein Zugang zum Kabelnetz besteht. Ob es sich dabei um eine direkte Kabelvernetzung handelt oder um eine Powerline-Brücke, spielt keine Rolle.

Ein Access Point wie etwa der abgebildete D-Link DAP-2310 (circa 65 Euro) wird über seinen Ethernet-Port mit CAT-Kabel am geeigneten Ort mit dem Kabelnetz verbunden. Sobald angeschlossen, lässt sich der Access Point über seine IP-Adresse am PC im Browser konfigurieren. Access Points nehmen sich per Werkseinstellung eine IP, die das Handbuch verrät, aber auch in der Geräteliste des Routers leicht zu finden. Mit der IP-Adresse laden Sie im Browser die Konfigurationsoberfläche des Access Points. Ab Werk bringt Sie eventuell der Benutzer „admin“ und leeres Kennwort in die Konfiguration. Im Zweifel sind die Zugangsdaten im Handbuch vermerkt. Sorgen Sie dann dafür, dass der „admin“ ein echtes Kennwort erhält und das Gerät künftig eine selbstdefinierte, feste IP (das geht sowohl in der Gerätekonfiguration als auch zentral im Router).

Das Einrichten des neuen Funknetzes geschieht unter „WLAN“, „Wireless“ oder „Drahtlos“ und erfordert die üblichen WLAN-Infos – also einen Netzwerknamen (SSID), den Verschlüsselungstyp sowie das Zugangskennwort. Danach können sich mobile Geräte zum  neuen Funknetz verbinden oder je nach Standort zur Basisstation. Verwenden Sie besser klar unterscheidbare SSID-Namen für das Router-Funknetz und für dasjenige des Access Points.

Repeater mit Ethernet-Port

Wenn Sie in Ihrem Netzwerk eindeutig auf WLAN setzen, kann sich die Situation ergeben, dass Sie punktuell eine Ethernet-Anbindung brauchen: Das wird etwa notwendig, wenn Sie fernab vom Router einen Netzwerkdrucker verwenden möchten, der kein WLAN, aber einen Ethernet-Port anbietet. Ein weiteres Beispiel wäre ein Linux-Rechner, der eine Kabelverbindung nutzen soll, um einem Treiberproblem mit WLAN aus dem Weg zu gehen.

Die einfachste Lösung für diese Aufgabe ist ein WLAN-Repeater mit zusätzlichem Ethernet-Port ab circa 20 Euro bis 100 Euro (je nach Ausstattung und Sendeleistung). Sie stecken den Repeater einfach am gewünschten Ort in die Steckdose und verbinden Repeater und Drucker oder PC mit einem CAT-Netzkabel. Leistungsstärker, kaum teurer, aber geringfügig aufwändiger ist der Einsatz zweier Powerline-Adapter (etwa ab 50 Euro).

Altgeräte als Repeater/Access Point

Besitzen Sie neben einer als Router genutzten Fritzbox noch eine ausgediente Fritzbox (auch „Speedport“), dann können Sie sich den Kauf eines Repeaters sparen. Die Geräte ergänzen sich als Basisstation und Repeater und bieten die Zusammenarbeit in der Konfigurationsoberfläche sogar direkt an. Die Option finden Sie unter „Erweiterte Ansicht“ im Menü „WLAN / Repeater“. Dort stellen Sie ein, was als Basis und was als Repeater arbeiten soll.

Beim Einsatz als Access Point gibt es keine Einschränkungen hinsichtlich des Geräteherstellers. Hier arbeiten auch Router und Altgeräte unterschiedlicher Hersteller zusammen: Schließen Sie den alten Router mit CAT-Kabel an das Kabelnetz an. Dessen Konfigurationsoberfläche erreichen Sie dann über seine IP-Adresse im Browser. Hier stellen Sie seine Funktion als DHCP-Server ab und auch sonst am besten alle Funktionen außer WLAN. Im Übrigen verfahren Sie wie bei einem Neugerät, definieren also SSID, Verschlüsselungstyp und Zugangskennwort. Auch hier empfehlen wir, unter „LAN“ (oder ähnlich) eine feste IP anzufordern, um den Zugang in die Konfiguration zu vereinfachen.

Einige Router zeigen in der Konfiguration eine explizite Option „Internetzugang über LAN“ oder ähnlich, die Sie aktivieren müssen. Andere Altgeräte wie die alten Speedports (Telekom-Klons der Fritzbox) lassen jeden Hinweis auf diese Einsatzmöglichkeit vermissen, arbeiten aber trotzdem einwandfrei als Access Points.

Powerline-Ethernet

Powerline ist eine Alternative zu WLAN oder zur Ethernet-Verkabelung. Aus Sicht des Endgeräts ist Powerline eine Ethernet-Verbindung. Das bietet gegenüber WLAN den Vorteil, dass Netzanmeldung und alle Treiberprobleme entfallen. Für den Datentransport wird die Stromleitung genutzt. Starterkits mit zwei Adapter und 500 MBit/s gibt es ab etwa 40 Euro, die aktuell schnellsten 1200 MBit/s-Adapter ab 85 Euro (AVM), besser mit Durchreichesteckdose für etwa 120 Euro (Devolo). Im Idealfall kommen die Adapter allerdings allenfalls auf 40 bis 50 Prozent der theoretischen Leistung, in ungünstigen Fällen auch nur auf 10 bis 20 Prozent. Fast-Ethernet-Leistung (100 MBit/s) sollte aber mit den schnellsten Adaptern überall zu erreichen sein. Wenn man bei einem Hersteller bleibt, sind Adapter unterschiedlicher Geschwindigkeiten (200, 500, 1200 MBit/s) zu hundert Prozent kompatibel.

Powerline-Adapter kommen in die Steckdose. Verwenden Sie nur Wandsteckdosen (keine Steckerleisten), und schließen Sie Steckerleisten über die Durchreiche des Adapters an. Die Einhaltung dieser und weiterer Empfehlungen der Hersteller ist keine Pedanterie: Nach unserer Erfahrung kann sich der Datendurchsatz bei einer optimalen Anschlussvariante gegenüber einer fehlerhaften verdreifachen (!). Empirisches Ausprobieren und Messung durch Kopieren großer ISO-Dateien hilft.

Den einen Adapter verbinden Sie per Ethernet-Kabel mit dem DSL-Router, den zweiten Adapter mit dem Endgerät (PC oder Switch). Bei der Ersteinrichtung drücken Sie innerhalb von zwei Minuten den Verschlüsselungsknopf am Gehäuse (bei älteren Devolo-Adaptern auf der Unterseite neben dem Ethernet-Port, bei neueren an der rechten Seite unten). Die Geräte handeln dann einen Code aus, über den sie sich künftig automatisch verbinden. Bei einem weiteren, späteren Ausbau stecken Sie den neuen Adapter an, drücken dann erst den Verschlüsselungsknopf auf einem der älteren Adapter und danach den Knopf auf dem neuen.

WLAN über Powerline

Powerline-Adapter können auch das Funknetz ausbauen. Ein Adapter wie der Devolo DLAN 500 Wifi (802.11n) für etwa 55 Euro eignet sich vor allem dort, wo schon eine Powerline-Basis vorliegt. Es muss mindestens ein weiterer normaler Powerline-Adapter per Ethernet mit dem Router verbunden sein, mit dem sich der Wifi-Adapter dann verbinden kann. Der Wifi-Erweiterungsadapter arbeitet wie ein Access Point und hat vergleichbare Funktionen (Gastnetz, Kindersicherung, Zeitschaltung).

Die Ersteinrichtung erfolgt durch Drücken der Verschlüsselungstaste – erst auf einem normalen Adapter, dann auf dem neu einzurichtenden Wifi-Adapter. Ist das Gerät auf diese Weise angemeldet, kommen Sie über die IP-Adresse an die Konfigurationsoberfläche. Beim genannten Devolo-Adapter legen Sie die üblichen Einstellungen wie SSID (Netzwerkname), WPA/WPA2 und das Kennwort unter „WLAN-Konfiguration -> Access Point“ fest. Auch hier empfehlen wir zur besseren Kontrolle eine vom primären Router-WLAN abweichende SSID.

Netzwerkdrucker

Drucker gehören zu den unkomplizierten Peripheriegeräten. Viele Modelle benutzen standardisiertes PCL (Printer Command Language) oder Postscript. Damit ist der Druck ohne genau passenden Druckertreiber möglich. Multifunktionsgeräte sind problematischer, da sie für jede Funktion einen Treiber benötigen. Nicht jedes Modell läuft mit allen Funktionen unter Linux.

Netzwerkdrucker richten Sie über „Systemeinstellungen –> Drucker –> Hinzufügen“ ein (Ubuntu/Mint). Unter „Neuer Drucker“ gehen Sie auf „Netzwerkdrucker“ und warten Sie eine oder zwei Minuten. Taucht der Drucker nicht von alleine auf, gehen Sie auf „Netzwerkdrucker finden“. Geben Sie hinter „Host“ den Namen oder die IP-Adresse des Druckers ein, und klicken Sie auf „Suchen“. Wird der Drucker gefunden, versucht Linux das Modell zu ermitteln und zeigt unter „Verbindung“ etwa „HP Linux Imaging and Printing (HPLIP)“ an. Nach weiteren optionalen Abfragen klicken Sie zum Abschluss auf „Anwenden“.

Für Druckerfreigaben von Windows-PCs gehen Sie unter „Neuer Drucker“ auf „Windows Drucker via SAMBA“. Nach „smb://“ tragen Sie den Pfad zur Windows-Freigabe in der Form „PC-Name/Drucker-Name“ ein. Eventuelle Leerzeichen in Druckerbezeichnungen müssen durch „%20“ ersetzt werden. Falls nötig, müssen Sie Benutzernamen und Kennwort zur Anmeldung auf dem Windows-PC angeben und diese Kontoinformationen auch unter „Authentifizierungs-Details jetzt festlegen“ eintragen. Dann klicken Sie auf „Vor“, wählen den Hersteller des Druckers und dann das Modell. Wenn mehrere Treiber angeboten werden, wählen Sie den „empfohlenen“.

Zurück zur Linux-Übersichtsseite…