Alle Beiträge von Hermann Apfelböck

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“.

Wer ist Bommel?

Bommel_20150416

Das abgebildete schwarze Tier hat gut 70 cm Risthöhe und 34 kg Gewicht. Es nennt sich Bommel und wird von den meisten Menschen als Hund wahrgenommen. In der Tat interessiert er sich für Individuen dieser Spezies, insbesondere für weibliche, jedoch mit tendenziell bisexueller Ausrichtung auch für kastrierte männliche. Trotz weiterer hündischer Merkmale des Prinzips „Immer der Nase nach“ bin ich mir nach drei Jahren mit diesem Tier so gut wie sicher, dass es sich um KEINEN Hund handelt:

Hunde rennen Stöckchen und Frisbees hinterher, Bommel nur Weibern.
Hunde denken nur ans Fressen, Bommel will eine Einladung zum Napf plus Bestätigung am Napf, dass die Einladung wirklich gilt.
Hunde wälzen sich in schlammigen Pfützen, Bommel macht einen Bogen.
Hunde danken dir für ein Leckerli, indem sie noch den halben Finger als Zugabe nehmen. Bommel holt es sich mit zartester Rücksicht.
Hunde hören auf „Stop“ und „Down“, Bommel schaut, ob das im Moment sinnvoll ist. Sieht er keinen Anlass („Hier ist kein Auto!“), schaut er mich tadelnd an – und lässt es.

Bommel ist wahrscheinlich kein Hund, sondern ein Pudel. Nach Goethe und Schopenhauer ist ein Pudel ein Wesen mit durchaus ungewissem Kern. Ich werde die nächsten Jahre nutzen, Genaueres herauszufinden.

Sonne mag ich nicht...

Some people like cats exclusively. I for one care less for them.
I say there is not, nor ought there be nothing so exalted on the face of God’s great Earth as that prince of pets: Bommel – the king size poodle…

(Frank Zappa in memoriam et variationem…)

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  

Odroid-Miniserver (2019)

Wer meint, die koreanische Firma Hardkernel mit ihren diversen Odroid-Produkten („Open Droid“) sei ein typischer Raspberry-Trittbrettfahrer, liegt mindestens teilweise falsch. Die Firma gibt es schon länger und ihr erster Platinenrechner „Odroid-PC“ datiert aus dem Jahr 2011, also ein Jahr vor dem ersten Raspberry Pi. Richtig ist aber, dass Hardkernel früh und umtriebig auf den Erfolg des Raspberry Pi reagiert hat und seit 2012 die komplette Produktpalette als Raspberry-Konkurrenz ausrichtet. Der Raspberry-Boom veranlasste Hardkernel zur Fokussierung auf Mini-Server und Platinenrechner.
Die an sich vernünftige Kernstrategie war offenbar immer, für moderat höhere Preise deutlich mehr Leistung anzubieten als der Raspberry Pi. Die zahlreichen Odroid-Varianten der Jahre 2012 bis 2019 zeugen allerdings von hektischer Betriebsamkeit, die beim Konsumenten eine gewisse Ratlosigkeit hinterlässt, inwiefern sich die Produkte unterscheiden. Nachhaltigkeit und Weitblick war hier nicht zu erkennen, und diverse Odroid-Projekte kamen und starben wie Eintagsfliegen: Die sehr lange Spalte „Obsolete products“ auf der Herstellerseite http://www.hardkernel.com/main/products/prdt_info.php spricht für sich. Inzwischen hat Hardkernel seine Produktpalette konsolidiert. Der Durchblick ist heute einfacher, verlangt aber immer noch genaueres Hinsehen. Dies sollen die nachfolgenden Seiten leisten. Die aktuell noch gepflegten Odroid-Platinen verdienen diese Übersicht, da sie qualitativ und zumeist auch in der Komponentenzusammensetzung überzeugen. Eine Produktübersicht des Herstellers bietet die oben genannte Hardkernel-Webseite.

Verträgt der südkoreanische Hersteller Hardkernel, der die Odroids baut, noch mehr Konkurrenz? Die Odroid-Platinen kannibalisieren sich nämlich bereits ordentlich untereinander. Die zahlreichen Odroid-Varianten der Jahre 2012 bis 2019 beweisen viel innovatives Potential, aber keine nachhaltige Strategie. Der nächste Odroid in der jeweiligen Preisklasse ist quasi immer der Killer des letzten Odroid. Aber vielleicht ist das ja die Strategie – und beim Raspberry ja auch nicht anders. Im Unterschied zum Raspberry skalieren die Odroids aber gewaltig und bieten eine Auswahl für unterschiedliche Leistungsansprüche. Außerdem hat uns bislang jede Odroid-Hardware qualitativ und in der Komponentenzusammensetzung überzeugt. Ein eventueller Schwachpunkt ist die Systemsoftware.

Die Odroids: Allgemeine Vorbemerkungen

Für alle Odroid-Platinen gibt es eine Reihe von Linux- und Android-Betriebssystemen, die Sie herunterladen und mit den üblichen Werkzeugen auf Micro-SD schreiben. Anlaufstelle ist das Wiki https://wiki.odroid.com, das auch über die Hauptseite erreichbar ist (www.hardkernel.com). Sie finden in der linken Spalte die aktuellen Platinenmodelle, und unter dem einzelnen Modell jeweils den Eintrag „os_images“. Hier erscheinen dann die offiziellen Android- und Linux-Images, ferner unter „third party“ weitere inoffizielle, aber beachtenswerte Systeme wie etwa Dietpi oder Openmediavault.

Die Auswahl an Systemen ist insgesamt nicht üppig, aber jederzeit ausreichend: Ein ausbaufähiges LTS-Ubuntu, oft mit Mate-Desktop, ist für alle Platinen im Angebot. Problematischer als die Systemauswahl ist die Tatsache, dass ständig neue Odroid-Geräte die älteren verdrängen und diese dann Software-technisch nicht mehr gepflegt werden. So wird etwa der ältere, sehr brauchbare Odroid U3 längst nicht mehr verkauft und auch nicht mehr gepflegt. Über das letztaktuellste Ubuntu 16.04.6 (mit Update-Support bis 2021) auf dieser Platine wird daher wohl keine jüngere Version mehr hinausführen. Eine ähnliche Entwicklung ist für alle Odroids (außer H2) zu bedenken: Unter Umständen muss dann das Gerät ohne Updates weiterlaufen, was beim lokalen Heimserver kein ernstes Problem ist, aber jede Öffnung für den Internetzugriff verbietet.

Eine weitere Einschränkung gilt für alle Odroids: Die Platinen haben allesamt keinen WLAN/Bluetooth-Funkchip an Bord. Das ist letztlich konsequent, weil ein H2, N2, XU4 oder HC1 für Serveraufgaben prädestiniert ist, die nur mit verkabeltem Ethernet Sinn machen. Wer zusätzliches WLAN oder Bluetooth benötigt, muss dies über einen WLAN- oder Bluetooth-USB-Stick nachrüsten. Die Firma Hardkernel bietet dafür eigene Dongles, jedoch funktionieren auch alle anderen Linux-kompatiblen Dongles wie Edimax EW-7811UN, Asus N10 Nano oder CSL 300.

Deutscher Vertreiber für sämtliche Odroid-Platinen und Zubehör ist Pollin (www.pollin.de). Das Meiste finden Sie auch bei Reichelt (www.reichelt.de) und Amazon.

Kein Platinenrechner, sondern eher ein Ausbau-Barebone mit Intel-CPU: Der Odroid H2 ist flexibel mit RAM, eMMC-Karte oder NVME-SSD bestückbar, bootet aber auch via USB oder SATA.

Odroid H2: Ein Ausbau-Barebone

Der Odroid H2 wurde Ende 2018 erstmalig angeboten, war nach zwei Tagen ausverkauft und dann erst wieder ab Juli 2019 verfügbar. Das in mehrfacher Hinsicht außergewöhnliche Gerät gehört nicht wirklich in die Kategorie der Platinenrechner, sondern ist ein Ausbau-Barebone, der eher mit Zotac-Boxen oder Intel NUCs konkurriert. Dies zeigt sich schon an der Größe der Platine (11 mal 11 Zentimeter) und an der Tatsache, dass die typische GPIO-Leiste mit den programmierbaren Pins für Bastelprojekte fehlt. Der Odroid H2 ist ganz klar als Barebone für Heimserver oder Zweit-Desktops konzipiert.

Intel-CPU: Mit dem Intel Processor J4105 (Quadcore mit 1,5 bis 2,5 GHz) verlässt der Odroid H2 die sonst übliche ARM-Plattform. Diese Celeron-CPU auf der 130-Euro-Platine ist natürlich kein Gaming-Renner, kann aber mit älteren AMD Phenom/Athlon oder schwächeren Intel-i3-CPUs mithalten und ist jederzeit Desktop-tauglich. Aufgrund der x86-CPU gibt es keinerlei Einschränkungen hinsichtlich des Betriebssystems: Windows kann ebenso installiert werden wie jede Linux-Distribution. Angemessen ist ein leichtgewichtiges Ubuntu, mit dem sich der Odroid H2 geradezu spielt.

DDR4-RAM: Der Arbeitsspeicher kann je nach Bedarf auf zwei Bänken auf bis zu 32 GB bestückt werden (DDR4 SO-DIMM). Für eine der Platine angemessenen Rolle als Daten- oder Medienserver sollten aber 4 GB oder allenfalls 8 GB allemal ausreichen.

Anschlüsse: Für Serverrollen ist der Odroid H2 auch sonst bestens gerüstet: Zwei SATA-3.0-Ports und zweimal USB 3.0 (ferner zweimal USB 2.0) sorgen für schnellen Datentransfer auf angeschlossenen Festplatten. Für den Netztransport sind zwei schnelle Gigabit-Ethernet-Anschlüsse vorhanden, die auch einen Einsatz als Netzwerkbrücke zwischen zwei lokalen Netzen oder als Hardware-Firewall hinter dem Router anbieten. Unter halbwegs idealen Umständen messen wir bis zu 115 MB/s, die der Rechner als Samba-Server ausliefert, was sich dem theoretischem Maximum von Gigabit-Ethernet nähert.

Der Rechner besitzt ein Uefi-Bios wie ein PC und kann sein Betriebssystem von SATA, USB, eMMC-Karte oder NVM-Express-SSD booten. Ein Micro-SD-Einschub wie auf typischen Platinenrechnern ist nicht vorhanden und auch nicht nötig. Die Installation eines Betriebssystems erfolgt wie auf einem PC über ein Linux-Livesystem via USB-Stick oder über ein DVD-Laufwerk am USB-Anschluss. Für Monitoranschluss sind ein HDMI-Ausgang und ein Display-Port 1.2 (4K) vorhanden. Neben der Soundausgabe via HDMI gibt es auch noch analoge Aus- und Eingänge für Klinkenstecker.

Mit solcher Ausstattung kann die Platine locker mehrere Rollen erledigen: In unserem Fall arbeitet er mühelos als zentraler Samba- und SSH-Server, als Apache-Server für eine Dokumentenzentrale und als Kodi-Mediencenter für das TV-Gerät via HDMI.

Lautlos: Die lüfterlose Platine macht keinerlei Betriebsgeräusche und zeigt trotz passiver Kühlung moderate Temperaturen zwischen 40 und 55 Grad. Die Leistungsaufnahme liegt höher als bei Raspberry & Co bei etwa 5 Watt im Leerlauf, 7-8 Watt bei Last und gelegentlichen Spitzen bis zu 12 Watt.

Preise: Der Preis von 130 Euro darf nicht täuschen: Dafür gibt es nur die nackte Platine ohne Netzteil, ohne RAM, ohne Gehäuse, ohne Bootmedium, ohne Kabel. Um das Barebone-ähnliche Ausbau-Board zum Laufen zu bringen, sind folgende Ergänzungen einzuplanen: ein Netzteil (ca. 14 Euro), ein Gehäuse (ca. 12 Euro), 4 GB RAM (DDR4-SO-DIMM, ca. 50 Euro), eMMC-Karte mit 64 GB (ca. 55 Euro), eventuelle Kabel wie Displayport nach HDMI (10 Euro), SATA-Kabel (5 Euro). Es ist ratsam, den Kauf der Komponenten so abzusichern, dass am Ende alles passt. Der Vertrieb pollin.de kann da manche Zweifel beseitigen, insofern er das H2-taugliche Zubehör direkt anzeigt.

Der Gesamtpreis geht dann schnell Richtung 300 Euro, wobei die angeführten Beispiele bei RAM und eMMC sowohl nach oben wie nach unten zu skalieren sind. Eine schnelle eMMC-Karte ist optimal, aber optional, da der Odroid H2 auch reichlich andere Bootoptionen besitzt.

Odroid N2 auf großem Kühler: Das Beste an dieser Hardware sind 6-Kern-CPU, Coolness und geringer Stromverbrauch. Die Input/Output-Leistung ist nicht besser als beim Odroid XU4.

Odroid N2: Coole Platine

Nimmt man den beschriebenen Odroid H2 aus den genannten Gründen aus der Rechnung, ist der Odroid N2 das aktuelle Spitzenmodell der Odroid-Platinenrechner. Der seit Frühjahr 2019 erhältliche Odroid N2 versteht sich mit 40-poliger GPIO-Leiste auch als Bastelplatine, ist aber in erster Linie als Heimserver oder Zweit-Desktop konzipiert. Auffällig ist das Kühlkonzept der relativ breiten Platine, die komplett auf einem ebenso großen, passiven Kühlkörper sitzt.

6-Kern-CPU: Die Platine kombiniert sechs ARM-Kerne – zwei kleine Kerne (Cortex A53 mit 1,9 GHz) und vier große (Cortex A73 mit 1,8 GHz). Die Leistung ist spürbar, aber nicht dramatisch besser als beim neuen Raspberry. Mit dieser CPU und dem Mali-Grafikchip G52 liefert der Odroid N2 einen nahezu flüssigen Desktop. Beim Einsatz als Zweit-Desktop ist die Hardware dem Raspberry Pi 4 eindeutig überlegen.

Anschlüsse: Der Odroid N2 bietet kein SATA, aber viermal USB 3.0. Für den Netzverkehr gibt es einen Gigabit-Ethernet-Anschluss, womit der Rechner als Samba-Server bis zu 110 MB/s liefert. Weniger erfreulich ist die Leistung der USB-Ports, die sich per internen Hub einen USB-3.0-Kanal teilen. Dies führt beim lokalen Austausch zwischen diesen USB-Laufwerken zu eher enttäuschendem Durchsatz. Eine große Datenfestplatte ist daher die klügere Ausstattung als mehrere kleine, zumal diese einen zusätzlichen Hub erfordern.

Alternativ zur Micro-SD-Karte kann das Betriebssystem auch von einer schnelleren eMMC-Karte gebootet werden. Die Auswahl des Boot-Mediums erfolgt über einen kleinen Schalter auf der Platine. Zur Soundausgabe gibt es neben dem typischen HDMI-Ausgang (Standardgröße) einen analogen Ausgang für Klinkenstecker. Außerdem ist ein Infrarot-Empfänger an Bord.

Lautlos und kühl: Die mit 10 mal 9 Zentimeter relativ breite Platine auf dem großen passiven Kühler arbeitet lüfterlos und somit absolut lautlos. Das Kühlkonzept scheint überzeugend, da die Platine im Leerlauf nur 35 Grad meldet und unter Last kaum über 45 Grad zu heizen ist. Das ist auch haptisch anhand der offenen Platine leicht zu verifizieren, während man beim Raspberry Pi 4 die Finger besser weglässt. Das Gerät bestätigt seine Coolness auch beim Stromverbrauch: Nur 2 bis 3 Watt fordert der Leerlaufbetrieb und bei Last geht es maximal Richtung 5 Watt.

Für die Stromversorgung externer 2,5-Zoll-USB-Festplatten über die USB-Ports gilt Ähnliches wie beim Raspberry: Zwei Laufwerke sind bereits zu viel, spätestens dann, wenn die Laufwerke Arbeit bekommen. Ohne zusätzlichen, aktiven USB-Hub geht es also auch hier nicht.

Preise: Die Platine gibt es mit 2 oder 4 GB DDR4-RAM für circa 80 beziehungsweise 95 Euro. Wenn Kabel für HDMI und eine SD-Karte vorhanden sind, ist der Odroid N2 damit bereits vollständig ausgestattet. Das optionale Gehäuse für etwa 7 Euro ist eigentlich nur eine Abdeckung, die in die Schiene des Lüftersockels geschoben wird.

Odroid XU4: Das Auslaufmodell

Bis Ende 2018 noch Spitzenmodell gerät der Odroid XU4 durch die hauseigene Konkurrenz und den Raspberry Pi 4 zum Auslaufmodell. Die Platine hat gegen den Pi 4 nur noch schwache Argumente, und wem dieser nicht genügt, kann zum Odroid N2 greifen. Das ist fast bedauerlich, denn der XU4 hat sich im Server-Dauerbetrieb als äußerst robust und zuverlässig erwiesen. Solche Nachhaltigkeit als unermüdlicher Rechenknecht muss der Odroid N2 erst noch nachweisen. Desktop-tauglich ist der XU4 allerdings im Unterschied zum N2 definitiv nicht. Die besten Chancen hat die XU4-Hardware eventuell noch in ihren spezialisierten Varianten HC1 und HC2, die ebenfalls auf Odroid XU4 basieren (siehe unten).

CPU und RAM: Der Achtkerner arbeitet mit zwei Quadcore-CPUs, wobei je nach Auslastung der Vierkerner Cortex A15 mit 2 GHz oder der sparsamere Vierkerner Cortex A7 mit 1,4 GHz zum Zuge kommt. Mit standardmäßig zwei GB DDR3-RAM ist die Platine für den Serverbetrieb ausreichend bestückt.

Anschlüsse: Entscheidend für den Datendurchsatz ist die Kombination von USB 3.0 (zweimal) mit Gigabit-Ethernet. Die theoretischen 125 MB/s erreicht die Platine zwar nicht, aber 80 bis 90 MB/s sind maximal möglich. Als Boot- und Systemmedium kommt sowohl die typische Micro-SD-Karte als auch eine eMMC-Karte infrage. Die Auswahl des Medium erfolgt über einen kleinen Schalter auf der Platine. Für Erweiterungen und Bastellösungen gibt es zwei Pin-Anschlüsse (30 plus 12).

Mit und ohne Lüfter: Das Kühlkonzept des Odroid XU4 wurde seit seinem Erscheinen 2015 vielfach kritisiert. Von Platinenrechnern erwarten die Kunden lautlosen Betrieb. Der XU4 hat einen aktiven Lüfter, der seine kleinen Maße mit hoher Drehzahl ausgleicht. Das Geräusch ist nicht laut, aber aufgrund der hohen Frequenz unüberhörbar. Beim Einsatz als Medienserver im Wohnzimmer kann das durchaus stören. Daher hat Hardkernel den Odroid XU4Q mit passivem Kühlkörper nachgeschoben („Q“ für „quiet“). Die Variante ist etwas preiswerter, aber etwas leistungsärmer, weil die Platine hier häufiger auf die schwächere A7-CPU schaltet. Wer einen XU4 besitzt, kann den aktiven Lüfter auch durch den passiven Kühlkörper ersetzen, der als Einzelzubehör für etwa acht Euro verkauft wird.

Stromverbrauch: Die Platine kommt im Idle-Betrieb auf etwa 4 Watt und fordert bei Last und laufendem Lüfter bis zu 10 Watt.

Preise: Die Preise für den Odroid XU4 dürften demnächst purzeln. Bislang kostet er immer noch etwa 80 Euro, als lüfterloser XU4Q circa 75 Euro (www.pollin.de). Aktuelle Bundles liegen aber bereits unter 100 Euro und liefern Gehäuse, Netzteil, SD- und eMMC-Karte mit.

Odroid XU4 mit und ohne Lüfter: Die bewährte Platine bleibt mit Netzteil, Gehäuse, eMMC- und SD-Karte unter 100 Euro. Die lautlose XU4Q-Variante mit passiver Kühlung taktet etwas niedriger.

Odroid HC1/HC2: Kleine Heimserver

„HC“ steht für „Home Cloud“. Die beiden Odroid-Varianten basieren auf XU4 und sind hinsichtlich CPU, GPU, RAM und Gigabit-Ethernet identisch ausgestattet. Statt USB 3.0 (nur einmal USB 2.0) gibt es hier eine SATA-3-Schnittstelle für genau eine Festplatte oder SSD, die in das Alu-Gehäuse eingeschoben wird. HC1 und HC2 fokussieren auf einen kleinen, schnellen Netzwerkspeicher für private Zwecke. HC1 und HC2 haben kein HDMI oder sonstigen Monitor-Anschluss: Das System kann nur über das Netzwerk mit SSH erreicht und verwaltet werden.

Preise: Die lüfter- und lautlosen HC1 und HC2 kosten circa 60 und 65 Euro. Der einzige Unterschied der beiden Varianten ist das Alu-Gehäuse, das beim HC1 nur ein 2,5-Zoll-Laufwerk, beim größeren HC2 wahlweise eine 2,5- oder 3,5-Zoll-Festplatte aufnimmt. Das unentbehrliche Netzteil kostet circa 8 Euro.

HC1/2 („Home Cloud“) basieren auf dem XU4, haben aber einen SATA-Anschluss für eine Festplatte (HC1 nur 2,5 Zoll). Wo dies genügt, bietet die Hardware ein aufgeräumtes Mini-NAS.

Odroid C1/C2: Obsolet

Die soliden Platinen Odroid C1 und C2 waren 2015 mit Quadcore-CPU, 1 oder 2 GB RAM sowie Gigabit-Ethernet als Raspberry-Konkurrenz geplant. Sie konnten aber schon neben dem Raspberry Pi 3 B+ (Anfang 2018) nur noch aufgrund der schnelleren Ethernet-Schnittstelle bestehen – neben dem aktuellen Raspberry 4 wohl definitiv nicht mehr. Der Odroid C2 wird derzeit immer noch für knapp 55 Euro verkauft – Tendenz fallend. Die Pi-Variante mit 2 GB RAM kostet 50 Euro und schlägt den Odroid C2 (ebenfalls 2 GB RAM) in allen anderen Belangen.

Solide Platinen für kleine Aufgaben: Odroid C1/C2 eignen sich besonders für kleine Apache-Webdienste, dürften aber neben dem Raspberry Pi 4 ausgespielt haben.

Exkurs: X86 und ARM – ein CPU-Vergleich am Beispiel Odroid XU4

Die Octacore-CPU des Odroid XU4 mit 2 GHz klingt nach mächtig viel Leistung. Jedoch handelt es sich um zwei Quadcore-ARM-Einheiten, die je nach Anforderung zur schnelleren oder stromsparenderen umschalten. Vor allem aber darf man generell die Taktraten und die Kernzahlen von ARM-Prozessoren nicht annähernd den x86-CPUs von PCs und Notebooks gleichsetzen. Die kleine Tabelle zeigt, dass die Intel Atom-CPU eines 10 Jahre alten Netbooks immer noch knapp vor der ARM-Quadcore-CPU eines Raspberry 3 liegt. Die Platine Odroid XU4 lässt diese Netbook-CPU zwar deutlich hinter sich, kommt aber nicht annähernd an Notebook- und PC-Prozessoren heran. Unser Vergleich wurde mit Sysbench auf der Kommandozeile ausgeführt.

Zurück zur Linux-Übersichtsseite…

Buch-Server Calibre

Das Open-Source-Programm Calibre hat sich ganz auf die Verwaltung von E-Books spezialisiert. Für wirklich große Sammlungen lohnt sich Calibre als Server, der die Bibliothek über jeden Browser für alle Netzgeräte bereitstellt.

Mit der Verbreitung von Tablets gewinnen E-Books – oft im PDF-, MOBI-, CHM- oder EPUB-Format – immer mehr Freunde. Selbst bibliophile und konservative Leser sind leicht durch die unbestreitbaren Vorteile zu überzeugen, die E-Books auf einem handlichen Tablet bieten: Textgröße, Kontrast, Helligkeit lassen sich an jede Situation anpassen. Und auf einem Tablet passt eine ganze Bibliothek ins Handgepäck. Für eine opulente oder systematische Sammlung belletristischer und technischer Bücher ist aber die Aufbewahrung auf verstreuten Lesegeräten suboptimal: Neben der Frage „Was habe ich eigentlich wo (doppelt)?“ wird dort auch schnell der Speicher knapp. Eine ideale zentrale Lösung für das Heimnetz bietet die Software Calibre mit seiner Server-Komponente.

Calibre installieren und Bibliothek erstellen

Calibre gibt es für alle Betriebssysteme unter https://calibre-ebook.com/download. Diese Anlaufstelle ist auch für Linux zu empfehlen, weil eine Installation über die Paketquellen etwa unter Debian/Ubuntu/Mint mit

sudo apt install calibre

nur ältere Versionen anbietet. Für die lokale Nutzung auf einem Rechner spielt das keine große Rolle, aber gerade die Serverkomponente hat in den aktuellen Versionen funktional dazugelernt und kommt auch optisch wesentlich frischer daher. Verwenden Sie daher zur Installation diese Befehlskombination:

wget -nv -O-
https://download.calibre-ebook.com/linux-installer.py | sudo python -c
"import sys; main=lambda:sys.stderr.write('Download failed\n');
exec(sys.stdin.read()); main()"

Das komplexe Kommando kann von der oben genannten Downloadseite oder von hier ohne Tippaufwand direkt ins Terminal kopiert werden. Diese Installationsmethode funktioniert auch als Update einer älteren Version, wobei eine bereits bestehende Bibliothek erhalten bleibt. Calibre ist nach der Installation über das Desktop-Menü oder mit dem Aufruf calibre im Terminal zu erreichen.

Für den Aufbau und die Erweiterung einer Bibliothek dient die Schaltfläche „Bücher hinzufügen“. Den Massenimport von heterogenen Formaten und ganzer Verzeichnisebenen ermöglicht die Unteroption „Bücher aus verschiedenen Verzeichnissen […], jede e-Book-Datei ist ein anderes Buch“. Damit integrieren Sie unstrukturierte Sammlungen von PDF-, HTML-, EPUB- und Office-Formaten in die Calibre-Datenbank. Beachten Sie, dass Calibre alle Dateien physisch kopiert und standardmäßig im Ordner ~/Calibre-Bibliothek/ einsammelt. Beim Import aus unstrukturierten Quellen wird die Software versuchen, aus Dateinamen und Metadaten Informationen zu beziehen, um jedes Buch sinnvoll zu katalogisieren. Fehler aufgrund unzulänglicher Metadaten sind beim Massenimport unvermeidlich, können aber später über „Metadaten bearbeiten“ manuell und mit der Hilfe von Online-Diensten („Metadaten herunterladen“) korrigiert werden.

Die Suche bestimmter Titel erfolgt im Suchfeld über dem Hauptfenster. Weitere Filtermöglichkeiten bieten Kategorien in der linken Navigationsleiste wie „Autoren“, „Formate“, „Bewertung“ oder „Schlagwörter“. Zum Lesen eines markierten Titels verwenden Sie die Schaltfläche „Bücher öffnen“.

Da es nicht primärer Gegenstand dieses Beitrags ist, die zahlreichen Filter-, Konvertierungs- und Einstellungsoptionen der komplexen Software zu erläutern, verweisen wir an dieser Stelle auf das größtenteils deutschsprachige Online-Handbuch unter https://manual.calibre-ebook.com/de/.

Calibre als Lektüre-Server im Netz

Ist eine Bibliothek erst einmal eingerichtet, kann Calibre diese für das Netzwerk freigeben. Für den Start der Serverkomponente genügt der Klick auf „Verbinden/Teilen -> Inhalteserver starten“. Danach informiert Sie ein weiterer Klick auf „Verbinden/Teilen“, unter welcher Adresse der Blbliotheksserver zu erreichen ist. Eine Angabe wie „192.168.178.10, port 8080“ zeigt, dass jeder Browser im lokalen Netz mit der Adresse „192.168.178.10:8080“ zum Calibre-Server gelangt. Wie bei jedem Server ist es auch hier von Vorteil, diese IP-Adresse statisch zu setzen (über den Router), damit Sie sich künftig jederzeit mit einem Lesezeichen verbinden können. Der Calibre-Server kann unter „Einstellungen -> Netzwerkserver“ detailliert konfiguriert werden. Falls nötig, gibt es unter „Benutzerkonten“ auch eine Benutzerverwaltung mit Zugriffskennwörtern.

Auf Client-Seite ist das wichtigste Werkzeug das Lupensymbol im Seitentitel. Im einfachsten Fall geben Sie im Suchfeld einen Autoren- oder Titelnamen ein. Die Treffer werden mit ihrem Titelbild angezeigt, und ein Klick darauf bietet Detailinformationen sowie die Optionen „Lesen“ und „Herunterladen“. Für die Option „Lesen“ wechselt der Browser automatisch in den Vollbildmodus.

Bei einer umfangreichen und gut gepflegten Calibre-Bibliothek können Sie unterhalb des Suchfeldes die Suchkategorie eingrenzen und etwa nur in der Kategorie „Schlagwörter“ nach einem bestimmten Begriff suchen oder unter „Bewertung“ nach einem speziellen Rating.

Calibre-Server „headless“: Die bislang beschriebenen Einrichtungs- und Server-Möglichkeiten orientierten sich an der grafischen Oberfläche von Calibre. Für den grundsätzlichen Aufbau der Bibliothek und insbesondere für Nachbesserungen an den Meta-Informationen ist die grafische Oberfläche in der Tat dringend zu empfehlen. Calibre bietet jedoch darüber hinaus Kommandozeilenwerkzeuge, die eine vollständige Steuerung über eine SSH-Konsole ermöglichen. Somit kann der Lektüre-Server auch auf einem Platinenrechner ohne Monitor und Tastatur laufen (headless). Der wichtigste Befehl

calibre-server /home/ha/Calibre-Bibliothek/

startet die Server-Komponente und ist im Prinzip gleichbedeutend mit dem Menüpunkt „Verbinden/Teilen -> Inhalteserver starten“ an der grafischen Oberfläche. Der Befehl gibt nur den einfachsten Einsatz wieder, ist aber für das Heimnetz in der Regel völlig ausreichend. Die Hilfeseite

calibre-server --help

informiert darüber, dass Sie auf der Kommandozeile alles steuern können, was auch auf der grafischen Oberfläche unter „Einstellungen -> Netzwerkserver“ zu finden ist.

Für den Ausbau und die Verwaltung der Bibliothek ist das mächtige Kommandozeilenprogramm calibredb zuständig. Der wichtigste Schalter „add“ kann alles, was die Optionen unter „Bücher hinzufügen“ auf der grafischen Oberfläche anbieten. So importiert der Befehl

calibredb add --recurse /media/ha/Data/PDFs

alle E-Book- und Textformate, die im angegebenen Pfad liegen, in die Calibre-Bibliothek. Weitere add-Optionen zeigt die Hilfeseite calibredb add –help undden Gesamtumfang des Tools calibredb der Befehl calibredb –help. Theoretisch lässt sich damit ein Calibre-Server von Anfang an und vollständig ohne Oberfläche betreiben – wirklich komfortabel ist das allerdings nicht. Wir empfehlen daher, die Basis im grafischen Programm zu legen. Der Serverstart und gelegentliche Nachbesserungen bereiten hingegen über das SSH-Terminal im Headless-Betrieb keine Mühe.

Calibre-Bibliothek übers Netzwerk durchsuchen: Die Suchergebnisse werden mit Buchtitel angezeigt, nach einem Klick darauf erscheinen weitere Optionen.
„Lesen“ oder „Herunterladen“: Nach Auswahl eines Buchtitels kann die Lektüre beginnen. Beim direkten „Lesen“ ist Voraussetzung, dass der Browser das Format versteht.

Der Google-Stop

Wer jahrelang unbekümmert PCs und Smartphones mit Google-Konto nutzt, wird für Google zum offenen Buch. Dagegen hilft nur Kontrolle, disziplinierter Gebrauch der Dienste und sorgfältige Konfiguration der Einstellungen.

Ein digitales Leben ohne die Datenkrake Google? Möglich ist vieles, aber dieser Vorsatz wäre ein anstrengendes Unterfangen – und für Besitzer von Android-Smartphones gar unmöglich. Klüger als ein ideologisches „Anti-Google“ ist die datenschutzbewußte Nutzung der Google-Angebote. Denn Google beherrscht sein Handwerk: Suchmaschine, Browser Chrome, Mail, Drive, Docs und Tabellen, Messenger Allo, Netzwerk Google+, Maps und Earth, Android – technisch ist der Google-Kosmos meistens nicht zu überbieten. Alternativen gibt es zwar für alles, aber Google ist fast überall schneller, präziser, vernetzter oder schlicht komfortabler. Daher die pragmatische Konsequenz: Google zu nutzen bringt Vorteile – und die Nachteile lassen sich durch Disziplin minimieren.

1. Der Überblick: Das weiß Google über Sie

Haben Sie noch den Überblick, was Sie alles an Google-Diensten nutzen? Erste Anlaufstelle für eine Übersicht, die vielleicht längst vergessene Aktivitäten wieder ans Licht befördert, ist das Dashboard:

https://myaccount.google.com/dashboard

Hier geht’s ins Detail, Dienst für Dienst. Wenn Sie diese Dienste durchgehen und dabei Altlasten finden, die Sie heute weder Google noch der Öffentlichkeit anvertrauen möchten, dann entfernen Sie diese Inhalte, gegebenenfalls auch aus dem Papierkorb. Erste Kandidaten für eine kritische Durchsicht sind Google Drive und Google Fotos. Bei den meisten aufgeführten Diensten gibt es nach dem Aufklappen ein Menü mit der Option „Daten herunterladen“. Dies kann sowohl dem besseren Überblick dienen als auch der lokalen Sicherung, bevor Sie im Google-Dienst aufräumen.

Eine umfassendere Methode, alles einzusammeln, was Google an Daten von Ihnen besitzt, ist ein Download aller Daten („Takeout“) aus allen Diensten. Dafür gibt es diese beiden Adressen:

www.google.com/settings/takeout

https://takeout.google.com/settings/takeout/light

Wer genau wissen will, was Google über ihn weiß, kann ein Archiv sämtlicher Daten anfordern. Die Durchsicht dieser Daten wird oft zur verblüffenden Zeitreise.

Beide erlauben per Mausklick die Auswahl aller oder einiger Google-Dienste, wobei die erste Adresse übersichtlicher ist und die Wahl von Archivformat und „Übermittlungsmethode“ vorsieht. Beachten Sie, dass der vollständige Download aller bei Google gespeicherten Daten inklusive Google Mail, Google Drive, Google Fotos erhebliche Datenmengen ergeben kann. In solchen Fällen ist es klug, jene Dienste, deren Daten man durch tägliche Nutzung im Griff hat, vom „Takeout“ auszunehmen. Interessant ist ja, was Google ohne aktive Mitwirkung des Nutzers ansammelt.

Wenn Sie einige Jahre mit einem Google-Konto, mit mehreren Geräten und eventuell auch mit GPS-Chip im Smartphone oder Tablet unterwegs waren, wird Sie das Ergebnis eines „Takeouts“ bedenklich stimmen. Die Summe dessen, was Sie als Kontakte pflegen, was Sie allgemein in Google, Youtube und Maps, spezieller in Google Shopping und im Play Store suchen, was Sie im Kalender vermerken, als Web-Lesezeichen ablegen, auf Drive und Google Fotos speichern, ergibt ein sehr präzises Interessensprofil. Dazu kommen dann noch Bewegungs- und Reisedaten, die das Smartphone-GPS anliefert. Sie erhalten nach dem Auspacken des Takeout-Archivs eine sauber organisierte Verzeichnisstruktur, wobei die in Ebene 1 angezeigten Elemente wie „Drive“, „Google Fotos“, „Kalender“, „Kontakte“ oder „Notizen“ noch die geringsten Überraschungen offenbaren. Immerhin werden Sie einiges antreffen, was Sie längst für gelöscht hielten, und ein Blick unter „Youtube“ könnte zur verblüffenden Zeitreise werden, was Sie dort über die Jahre gesucht haben. Im Ordner „Meine Aktivitäten“ finden Sie weitere aufschlussreiche Protokolle, die Sie in dieser Dichte sicher nicht auf dem Radar hatten: Unter „Anzeigen“, „Bildersuche“, „Google-Suche“, „Maps_Timeline“, „Shopping“ sammelt Google über Jahre, wann Sie sich wo für welche Inhalte, Orte und Produkte interessiert haben.

2. Die allgemeinen Google-Einstellungen

Auf einem Android-Smartphone unter „Verbindungen -> Standort“) den Google-Standortverlauf und die Google-Standortfreigabe abzuschalten, ist einfach. Ansonsten aber sind Nutzerdaten das Kapital von Google, und das gibt Google nur ungern her. Das Versprechen, mit einem Konto den ganzen Google-Kosmos in der Hand zu haben, gilt für die Nutzung, nicht aber für die Einstellungen, um diese Nutzung zu kontrollieren. Hier schickt uns Google von einem kleingliedrigen Detail zum nächsten, auf dass wir uns orientierungslos verlaufen. Beste Anlaufzentrale ist noch die Adresse

https://myaccount.google.com/

oder gleich die Unterseite https://myaccount.google.com/privacy#. Auf der genannten Hauptseite ist der datenschutztechnisch wichtigste Punkt „Google-Aktivitäten verwalten“ (Mitte). In der rechten Spalte finden Sie auch noch die radikale Option „Konto oder Dienste löschen“, um sich von dem einen oder anderen Google-Service komplett zu verabschieden. Die Option „Google-Aktivitäten verwalten“ führt über einen Zwischenschritt zu dieser Adresse:

https://myaccount.google.com/activitycontrols

Hier gibt es fundamentale Optionen, um Web-Protokolle und Standort-Protokolle ab sofort abzuschalten („pausiert“). Wenn Sie darüber hinaus die bereits bestehenden Protokolle löschen möchten, bringt Sie der Link „Aktivitäten verwalten“ zu dieser Adresse:

https://myactivity.google.com/myactivity

Hier klicken Sie links oben auf das Menü, wählen „Aktivitäten löschen nach“ und definieren unter „Nach Datum löschen“ den Zeitraum. Es gibt auch die Tabula-Rasa-Option „Gesamt bisher“.

Die Videoplattform Youtube hat ihre eigene Adresse, um ihre Protokoll zu löschen. Unter

https://www.youtube.com/feed/history

lassen sich das Wiedergabe- und das Suchprotokoll, ferner auch Kommentar-Aktivitäten löschen. Was sich in diesen Protokollen alles angesammelt hatte, finden Sie nur über ein Takeout heraus (Punkt 1).


Fundamentale Google-Stopper unter https://myaccount.google.com/activitycontrols: Suchprotokolle und Standardprotokolle sind hier per Klick abzuschalten.

3. Optionen im Browser Chrome

Chrome/Chromium muss nicht sein, da es mit Firefox eine bewährte, moderne Alternative gibt. Aber auch in Google Chrome kann man die Google-Detektive abhängen. Was Chrome oder andere Browser als Verlaufs-, Autofill-, Lesezeichen-, Passwort-Daten und sonstiges lokal speichern, ist zunächst unkritisch. Zu Google’s Big Data tragen diese Daten erst bei, wenn die – unbestritten praktische – Synchronisierung aktiviert ist. Standardmäßig verschlüsselt der Google-Browser dabei nur die Online-Kennwörter, alles andere kann Google auf seinem Server auswerten. Aber unter „Einstellungen -> Synchronisierung“ gibt es die zusätzliche Option „Alle synchronisierten Daten […] verschlüsseln“, bei der Sie ein Kennwort zur Sync-Verschlüsselung vergeben, das unabhängig vom Google-Kennwort ist. Der daraus resultierende Komfortverlust ist nicht gravierend, da Sie dieses Kennwort auf jedem weiteren Gerät nur ein einziges Mal eingeben müssen. Alle Daten landen dann verschlüsselt auf dem Google-Server, der Schlüssel dazu (Kennwort) verbleibt auf den lokalen Geräten.

Wer auf das Google-Suchprotokoll nicht verzichten kann, sollte sich für persönliche Recherchen, die weder Google noch Dritte etwas angehen, zumindest eine Ad-Hoc-Maßnahme angewöhnen: Das Suchen mit Google im „Inkognito-Fenster“ (Tastenkombination Strg-Umschalt-N) hinterlässt keine Daten im Suchprotokoll und unterbindet auch das Tracking der Website-Betreiber, die Sie gemäß Ihren Produktrecherchen danach mit Werbung bombardieren.

Die Synchronisierung in Google Chrome verschlüsseln: Diese Maßnahme hält Google von Ihren Lesezeichen, Autofill- und Verlaufsdaten fern.

Tipps für Linux-Editoren

Ob Samba, SSH, Terminal, Fstab oder Desktop-Verknüpfungen: Für die Linux-Konfiguration sind überwiegend Textdateien zuständig, die zur Bearbeitung einen tauglichen Texteditor erfordern. Wir nehmen vier Editoren genauer unter die Lupe.

Bei der Administration von Linux-Rechnern sind Texteditoren die wichtigsten Werkzeuge. Am Desktop sind grafische Editoren wie Gedit und Kate sicher die bevorzugte Wahl. Universeller – weil auch in virtueller Konsole und im SSH-Terminal funktionierend – sind aber die textbasierten Editoren für das Terminal. Diese haben höheren Tipp- und Anpassungsbedarf als Gedit & Co und erhalten auf den folgenden Seiten gebührende Beachtung.

Der Gnome-Editor Gedit

Der Editor unter allen Gnome-affinen Desktops gehorcht durchwegs standardisierten Hotkeys zur Textnavigation und Textbearbeitung. Für Novizen gibt es im Menü sogar die Option „Tastenkürzel“, um sich alle Hotkeys anzeigen zu lassen. Nichtsdestotrotz erschließen sich nicht alle Anzeige- und Bearbeitungsmöglichkeiten auf Anhieb.

Die Seitenleiste (links) ist über „Ansicht -> Seitenleiste“ oder schneller mit F9 einzublenden. Standardmäßig ist dort der Modus „Dokumente“ aktiv, der die geöffneten Dateien auflistet. Wesentlich nützlicher ist der Modus „Dateiverwaltung“, den das Plugin „Dateiverwaltungsleiste“ bereitstellt (mehr zu Plugins siehe unten). Damit erhält Gedit eine Ordnernavigation, die Dateimanager überflüssig macht. Der Hotkey Strg-H blendet wie im Dateimanager versteckte Dateien ein oder aus. Kontrolle über mehrere geöffnete Dateien behalten Sie immer noch durch die Tab-Register unterhalb der Titelleiste.

Das Übersichtsfenster (rechts) können Sie im Menü unter „Einstellungen -> Ansicht“ aktivieren. Der Informationswert dieser Miniaturübersicht ist gering, aber sie erlaubt mit der Maus schnelles Blättern oder Springen an entfernte Stellen in größeren Texten.

Die Plugins: Für Gedit gibt es eine ganze Reihe nützlicher Plugins, die standardmäßig nur partiell installiert und aktiv sind, wie der Gang im Menü zu „Einstellungen -> Erweiterungen“ zeigt. Alle offiziellen Plugins erreichen Sie mit dem Befehl:

sudo apt install gedit-plugins

Dies kann in keinem Fall schaden, da Sie in dem oben genannten Gedit-Dialog immer noch die Wahl haben, ein Plugin zu aktivieren oder nicht. Neben den „gedit-plugins“ gibt es auch noch das Paket „gedit-developer-plugins“. Sehr zu empfehlen sind „Wortvervollständigung“ (Autocomplete-Funktion), die „Zeichentabelle“, die sich in die Seitenleiste (links) integriert, und das nachfolgend beschriebene „Snippet“-Tool.

Gedit-Optionen: Der Editor zeigt hier seinen per Plugin eingebauten Dateimanager (linke Spalte), Tab-Verwaltung für geöffnete Dateien (oben), Syntaxhighlighting und Autosave-Funktionen.

Das Plugin „Schnipsel“ (Snippets): Dieses Plugin stattet Gedit mit Textbausteinen aus, die per Hotkey oder besser per Textkürzel (gefolgt von der Tab-Taste) eingefügt werden. Typische Kandidaten für solche Schnipsel sind Mailsignaturen, Adressen, Namen, Telefonnummern, IBAN oder auch die Grundsyntax einer Script-Konstruktion. Für Viel-Schreiber und -Scripter sind solche Schnipsel eine unschätzbare Hilfe. Bei aktivierter Erweiterung führt der Menüpunkt „Schnipsel verwalten“ zum Einrichtungsdialog, der in zahlreiche Scriptsprachen untergliedert ist. Textbausteine unter „Global“ gelten für alle Texte. Mit der „+“-Schaltfläche entsteht an der gewünschten Stelle (etwa unter „Global“) ein neuer Eintrag, dem Sie etwa den Namen „Adresse“ geben. Selbige geben Sie im Textfenster ein und definieren unten neben „Tabulatorauslösung“ ein Kürzel wie „adr“. Nach Schließen des Schnipsel-Dialogs ist der Autotext aktiv – „adr“ und Tab-Taste fügt also die komplette Adresse ein.

Hinweis: Eventuell werden die Snippets zunächst nicht gespeichert („~/.config/gedit/snippets“), wofür ein offenbar verbreiteter Fehler bei den Dateirechten verantwortlich ist. Der Terminalbefehl

sudo chmod -R 777 ~/.config/gedit

behebt das Zugriffsproblem.

Suchen und Ersetzen: Die Funktionen gehorchen den Standard-Hotkeys Strg-F und Strg-H. Der Ersetzen-Dialog ist durch seine detaillierteren Optionen die generell bessere Wahl – auch für pure Suche. Gedit kann auch nach Zeilenumbrüchen („\n“), Returns („\r“) und Tabulatoren („\t“) suchen, also etwa mit

\nif 

nach Zeilen, die mit „if“ beginnen.

Das Syntaxhighlighting: Gedit versucht automatisch zu erkennen, um welchen Text es sich handelt, und aktiviert dann das passende, farbige Syntaxhighlighting. Wenn dies unbefriedigend ausfällt, können Sie unter „“Ansicht -> Hervorhebungsmodus“ manuell eine andere Scriptsprache oder „Reiner Text“ auswählen.

Farbschema und Aussehen: Unter „Einstellungen -> Schrift und Farben“ gibt es die typischen Farbschemata „Klassisch“, „Kate“, „Kobalt“, „Oblivion“. Unabhängig vom Farbschema können Sie an gleicher Stelle die Schriftgröße definieren. Vor allem bei der Fehlersuche hilfreich sind die Zeilennummern, die Gedit unter „Einstellungen -> Ansicht“ aktiviert.

Automatische Sicherungskopien: Die Registerkarte „Einstellungen -> Editor“ zeigt zwei Optionen, um bearbeitete Dateien besser zu sichern. Sowohl die „Sicherungskopie“ als auch „Auto-Speichern“ im angegebenen Minutenintervall sind unbedingt zu empfehlen.

Zum Teil Schnickschnack, zum andern Teil unverzichtbar: Plugins wie “ Dateiverwaltungsleiste“, „Schnipsel“, „Wortvervollständigung“ und „Zeichentabelle“ ergänzen Gedit und Xed.

Xed: Der Editor des Mint-Teams

Im Zuge der Entwicklung Desktop-unabhängiger X-Apps arbeitet das Team von Linux Mint am Editor Xed. Diese Textbearbeitung unterscheidet sich äußerlich erheblich von Gedit durch ein klassisches Menü, eine Werkzeugleiste und im Hauptfenster integriertem „Suchen/Ersetzen“. Dennoch ist Xed wie Pluma (Mate-Desktop) ein Gedit-Fork mit praktisch identischer Funktionalität.

Die Bedienung von Xed erscheint uns etwas übersichtlicher, aber triftige inhaltliche Gründe, Gedit gegen Xed (ppa:embrosyn/xapps) auszutauschen, gibt es nicht. Im Gegenteil: Xed kann bislang nicht die Menge an Plugins anbieten wie sein Vorbild Gedit. Einzige Ausnahme ist das Xed-exklusive Plugin „Floskelliste“, das sich in die linke Seitenleiste (F9) integriert und vor allem für HTML-Coding alle wichtigen Tags anbietet, die dann einfach per Doppelklick in das Textfenster übernommen werden.

Plugin „Wortvervollständigung“: Das Autocomplete-Tool für Gedit und Xed indexiert den Text und macht nach Eingabe weniger Buchstaben Vorschläge.

Nano: Standardeditor im Terminal

Nano ist für das Terminal vorinstallierter Standard unter Ubuntu, Mint, Debian und Co. Das unterschätzte Tool wird im SSH-Terminal und in virtuellen Konsolen meistens nur als Notnagel akzeptiert. Dabei erlebt der 20 Jahre alte Editor eine erstaunlich dynamische Entwicklung. Aktuelle Versionen 2.9 bis 3.2 bieten bei Navigation und Markieren fast den Standard grafischer Editoren und zudem erweiterte Anpassungsmöglichkeiten über die Konfigurationsdatei „nanorc“. Die noch in vielen Distributionen vertretenen, älteren Nano-Versionen bis 2.5 benutzen hingegen eigenwillige Hotkeys, die man sich entweder angewöhnen muss oder umbelegen kann.

Neuere Nano-Versionen folgen dem Standard anderer Editoren, mit Umschalt-Taste und Cursortasten Text zu markieren. Bei älteren Nano-Versionen ist der Hotkey Alt-A erforderlich, um eine Markierung ab der Cursorposition zu starten. Danach erweitern Sie die Markierung durch Cursortasten. Erneutes Alt-A beendet die Markierungsaktion. Der Hotkey Alt-A funktioniert auch noch im neuesten Nano, ist dort aber nicht mehr unbedingt notwendig. Markierte Texte lassen sich mit Alt-6 kopieren, mit Strg-K ausschneiden, Strg-U ist der Hotkey, um Textinhalte wieder aus der Zwischenablage zu holen. Nützlich: Strg-K löscht eine komplette Zeile ungeachtet der Cursorposition.

Die Navigation im Text erfolgt durch Cursor- und Bild-Tasten, sowie Pos1 und Ende. Neuere Versionen verwenden außerdem Strg-Pos1/Ende, um zum Beginn oder Ende der ganzen Datei zu springen.

Strg-U ist der Hotkey, um die letzte Aktion rückgängig zu machen. Allerdings ist die Undo-Funktion nicht standardmäßig aktiv. Sie können Sie in der Nano-Konfigurationsdatei mit der Direktive

set undo

scharf schalten.

Die Konfigurationsdatei: Das Anpassen der globalen Konfigurationsdatei /etc/nanorc (mit Root-Recht) oder besser einer benutzerspezifischen Kopie unter ~/.nanorc lohnt sich definitiv. Hier finden Sie zahlreiche auskommentierte Optionen wie etwa die Anweisungen

set backup

und

set backupdir [Pfad]

Wird „set backup“ aktiviert (führendes „#“ löschen), erstellt Nano immer eine Sicherungskopie vom letzten Zustand im Pfad der Originaldatei. Mit aktiviertem „backupdir“ entstehen im angegebenen Zielpfad sogar durchnummerierte Versionssicherungen aller Bearbeitungsschritte. Das angegebene Backup-Verzeichnis muss natürlich existieren. Nützlich sind ferner die Optionen

set linenumbers

zur Anzeige der Zeilennummer, „set positionlog“, das bei neuerlicher Bearbeitung einer Datei sofort zur letzten Bearbeitungsstelle springt, sowie „set mouse“, das Positionieren und Markieren mit der Maus erlaubt.

Nano unterstützt außerdem Farbanpassungen. Beachten Sie, dass die Nano-Farbeinstellungen zu den globalen Terminalfarben passen müssen. Späteres Umstellen der Terminalfarben kann dazu führen, dass die Nano-Farben schlecht lesbar werden. Nano kann Elemente wie die Titelzeile („titlecolor“), die Statuszeile („statuscolor“), markierten Text („selectedcolor“ – nur in neuesten Versionen) und die Infozeilen unten einfärben („keycolor“ und „functioncolor“). Als Farben gibt es die üblichen acht Ansi-Farben (Black, White, Red, Green, Blue, Yellow, Cyan, Magenta). Die Abbildung zeigt ein Beispiel für geänderte Farbeinstellungen und die zugehörigen „set“-Befehle.

Eine der interessantesten Anpassungen sind die Hotkeys, die bei Nano zum Teil sehr gewöhnungsbedürftig ausfallen. Die Hotkey-Belegung ist ebenfalls global in der Datei /etc/nanorc oder User-spezifisch in ~/.nanorc möglich. Die Liste aller Nano-Funktionen, die Sie auf andere Hotkeys legen können, ist unter https://www.nano-editor.org/dist/v3/nano.html#Rebinding-Keys dokumentiert. Die Hotkeys sind in der Konfigurationsdatei in der Form „^“ (Strg) und „M-“ (Alt) zu hinterlegen. Um also etwa das typische Strg-C für das Kopieren von Text zu definieren, wäre folgende Zeile in der Datei nanorc zu vergeben:

bind ^C copytext main

Die Abbildung der Konfigurationsdatei auf dieser Seite zeigt eine Reihe von geänderten Hotkeys, welche die Bedienung des Editors durch standardisierte Tastenkombinationen vereinfacht. Neben den Standards Strg-C|V|X zur Textbearbeitung reagiert Nano danach auch auf Strg-F (Suche) und Strg-Q (Beenden). Beachten Sie, dass Strg-C nach dem obigen Bind-Befehl in allen Untermenüs – etwa im Kontext „Speichern“ – weiterhin als Abbruch-Hotkey arbeitet. Nur im „Main“-Bereich, also im Textfenster, erhält Strg-C seine neue Rolle.

Nano-Farben und Hotkeys: In der Konfigurationsdatei (nanorc) belegen Sie die Tastenkombinationen des Editors um. Farbanpassungen sind Geschmackssache.

Startparameter: Alle Einstellungen der Konfigurationsdatei nanorc lassen sich auch über Parameter beim Nano-Start anfordern. Ausgenommen sind lediglich die Farbdefinitionen und die Hotkey-Umbelegung. Im Allgemeinen ist es sinnvoller, die Nano-Optionen dauerhaft in der Konfiguration abzulegen, jedoch gibt es Ausnahmen: Die oben genannten Direktiven „set backup“ und „set backupdir [Pfad]“ sind nicht für jede Dateibearbeitung nötig und daher besser ad hoc anzufordern. Der Befehl

nano -B [Datei]

würde eine Sicherungskopie der editierten Datei anlegen, und

nano -C ~/nanoback [Datei]

legt bei jedem Speichern eine Versionssicherung an.

Eine ebenfalls nützliche Vorgabe, die in der Konfigurationsdatei

set const

lautet, kann beim Start mit

nano -c [Datei]

geladen werden. Dann bleibt unten die Statuszeile permanent aktiv, welche unter anderem die aktuelle Zeilenziffer anzeigt. Dies ist vor allem bei älteren Versionen nützlich, die eine „set linenumbers“ oder den Startbefehl „nano -l“ noch nicht beherrschen. Die komplette Palette der Nano-Startparameter zeigt die Dokumentation unter https://www.nano-editor.org/docs.php.

Mcedit: Editor des Midnight Commander

Auf jedem Linux-System mit installiertem Midnight Commander gibt es auch Mcedit. Auch dieser Editor wird unterschätzt und ist zunächst nicht einmal im Midnight Commander selbst als Standard vorgesehen. Dies lässt sich unter „Optionen -> Konfiguration“ mit der Einstellung „Internen Editor benutzen“ ändern. Danach ist für das Bearbeiten von Dateien (F4) Mcedit zuständig.

Mcedit ist aber ein unabhängiger Terminaleditor, den Sie auch ohne sein Hauptprogramm verwenden können:

mcedit [datei]

Mcedit zeigt die wichtigsten Bearbeitungs-Hotkeys unten an, nach F9 oder nach Klick auf die obere Infozeile erscheint ein opulentes Menü. Wer dieses Menü immer im Blick haben will, kann das bis zum Schließen des Editors über „Fenster -> Vollbild umschalten“ erreichen, was zugleich den Fenstermodus des Editors aktiviert. Wie das Menü „Fenster“ durch weitere Optionen anzeigt, beherrscht Mcedit nämlich den Umgang mit mehreren Dateien. Das kann zwar auch Nano, aber nicht mit der eleganten Fensterteilung wie Mcedit, die fast grafischen Komfort erreicht: Wenn Sie mehrere Dateien über „Datei -> Datei öffnen“ oder direkt per mcedit-Aufruf geladen haben, dann lassen sich die Dateien (nach „Fenster -> Vollbild umschalten“) skalieren und verschieben. Am Desktop funktionieren diese Aktionen exakt und komfortabel mit der Maus (Skalieren mit der Ecke rechts unten, Verschieben mit dem oberen Fensterrahmen); in der virtuellen Konsole erledigen die Cursortasten nach „Fenster -> Größe ändern“ bzw. „Fenster -> Verschieben“ das Arrangement.

Editor des Midnight Commander: Die wenigsten Nutzer wissen, dass Mcedit ein erstaunlich komfortables Fensterarrangement für mehrere geladene Dateien beherrscht.

Mcedit bietet farbige Syntaxhervorhebung unter „Optionen -> Allgemein“ und die Auswahl der Scriptsprache unter „Optionen -> Syntaxhervorhebung“. Auch in diesem Punkt ist Mcedit ausgereifter als Nano. Eine Sortierfunktion finden Sie unter „Format“, eine Codepage-Auswahl unter „Befehl -> Kodierung“. Auch das Suchen (F7) und Ersetzen (F4) von Text ist optionsreicher als unter Nano. Nützlich: Strg-Y löscht eine komplette Zeile ungeachtet der Cursorposition.

Einige fundamentale Textfunktionen sind gewöhnungsbedürftig: So ist der Text beim Verschieben erst mit der Maus (oder mit Umschalt-Taste und Cursor) zu markieren, anschließend mit Cursor oder Bild-oben/unten an die gewünschte Stelle zu navigieren und dann mit F6 das Verschieben auszulösen. Hier lohnen sich Anpassungen der mc.keymap (siehe unten). Der alte Modus beim Markieren, mit F3 zunächst die Markierfunktion aufzurufen, ist nicht mehr notwendig, da das standardisierte Markieren mit Umschalt-Taste funktioniert. Der F3-Modus besteht aber fort, und ist für die Windows-SSH-Clients Putty/Kitty weiterhin unentbehrlich.

Anpassung der Hotkeys: Trotz des alternativen Menüangebots von Mcedit machen angepasste Tastenkombination die Bedienung einfacher, wenn Sie sich standardisierte Hotkeys einrichten. Das sollte aber in der umfangreichen Keymap-Datei des Midnight Commander dosiert und mit Rückversicherung erfolgen. Verwenden Sie besser nicht die globale Datei „/etc/mc/mc.keymap“, sondern kopieren Sie diese nach „~/.config/mc/mc.keymap“, also in Ihr Home-Verzeichnis. So bleibt das Original unter „/etc“ als Rückversicherung erhalten.

Alle Optionen für Mcedit befinden sich im Abschnitt „[editor]“. Ein nützlicher Eingriff besteht etwa darin, die altertümlichen Hotkeys „ctrl-insert“ und „shift-insert“ für „Store“ (Copy) und „Paste“ durch geläufigeres „ctrl-c“ und „ctrl-v“ ersetzen (Strg-C, Strg-V):

[editor]

Store = ctrl-c
Paste = ctrl-v

Natürlich kann man sich auch die Textsuche, Folgesuche und Ersetzen mit

Search = ctrl-f

SearchContinue = ctrl-n

Replace = ctrl-r

auf einprägsamere Hotkeys legen. Änderungen an der mc.keymap werden immer erst nach dem nächsten Start des Programms gültig. Das Menü des Editors lernt dabei flexibel mit: Es zeigt die von Ihnen definierten Hotkeys.