Schnelle Terminal-Dateisuche ist auf Servern unerlässlich, aber auch auf dem Desktop willkommen. Tool der Wahl ist aufgrund seiner Geschwindigkeit locate, das auf Ubuntu-Systemen mit
sudo apt install mlocate
schnell nachgerüstet ist. Das Paket enthält neben diesem Suchkommando locate auch das Indexierungstool updatedb. Damit die Dateiliste aktuell bleibt, muss je nach Rechnernutzung täglich oder auch häufiger der Befehl
sudo updatedb
ausgeführt werden. Das ist wieder ein Fall für einen Cronjob des root-Kontos (crontab -e):
0 10 * * * /usr/bin/updatedb
locate sucht nur nach Dateinamen, aber ein Befehl wie
locate -A -i steuer 2020
liefert sofort alle passenden Dateien mit komplettem Pfad – auch bei sehr großen Datenbeständen. Die lästige Eingabe der fast immer notwendigen Parameter „-A“ (alle Wörter müssen im Dateinamen vorkommen) und „-i“ (Groß/Kleinschreibung ignorieren) können Sie sich mit einem Alias
alias loc='locate -A -i'
in der Datei ~/.bashrc ersparen.
Standardmäßig berücksichtigt locate keine USB-Laufwerke. Um dies zu ändern, muss in der Konfigurationsdatei „/etc/updatedb.conf“ nach „PRUNEFS=…“ (ausgeschlossene Dateisysteme) der Eintrag „usbfs“ gelöscht werden, und bei dieser Gelegenheit bei Bedarf noch weitere Eintäge dieser Zeile.
Locate-Statistik: Einige hunderttausend Dateien sind für das indexbasierte Tool keine beschwerliche Aufgabe. Die Ergebnisse einer locate-Namenssuche erscheinen sofort.
Cubic (Custom Ubuntu ISO Creator) ist ein grafisches Frontend für die Linux-Fähigkeiten, in gemountete ISO-Images mit einer Chroot-Umgebung neue Dateien einzubauen und danach ein geändertes ISO zu schreiben. Der Schritt-für-Schritt-Assistent ist vorbildlich übersichtlich, erweitert die Standard-Live-Medien von Ubuntu & Co mühelos um Software und Benutzerdateien und baut optimierte Livesysteme. Detailliertere Anpassungen sind möglich, setzen aber auch mit Cubic gute Kenntnis der Verzeichnishierarchie des Livesystems voraus.
Wie auf der Porjektseite https://launchpad.net/cubic beschreiben, installieren Sie das Tool mit folgenden Terminalbefehlen:
sudo apt-add-repository ppa:cubic-wizard/release
sudo apt update
sudo apt install cubic
Nach dem Start geben Sie erst ein (beliebiges) „Project Directory“ an, wo Cubic das Livesystem zusammenbauen soll. Nach „Next“ und „Select“ wählen Sie zunächst das ISO-Image des originalen Livesystems. Weitere Änderungen sind in diesem Dialog nicht nötig und nach „Next“ wird das Dateisystem des ISO-Abbilds temporär ausgepackt.
Nach weiterem „Next“ wird es spannend: In chroot-Konsole können Sie jetzt alle Anpassungen erledigen. Mit apt install […] rüsten Sie alles nach, was dem originalen Livesystem nach Ihrer Meinung fehlt. Benutzer- und Konfigurationsdateien können Sie einfach per Drag & Drop vom laufenden System in die chroot-Konsole von Cubic ziehen und dann mit der „Copy“-Schaltfläche in das Livesystem integrieren. Beachten Sie dabei, vorher mit cd in der chroot-Konsole in das gewünschte Verzeichnis zu wechseln – genau dort werden die Dateien später vorliegen. Sie können auch mit mkdir Ordner erstellen, um das Livesystem zu optimieren. Im konkreten Beispiel des von uns gewählten Lubuntu lautet das Live-Konto „lubuntu“, jedoch existiert kein Home-Ordner für dieses Konto. Wenn Sie dieses mit
mkdir /home/lubuntu
anlegen, können Sie es mit weiteren Ordner bestücken (etwa „Desktop“, „Bilder“) und diese wiederum mit Benutzerdateien sowie Konfigurationsdateien füllen (.bashrc. etc), aber auch mit einer kompletten Thunderbird-Konfiguration. Um Ordner und Dateien richtig anzulegen, sollten Sie die Ordnerstruktur des originalen Livesystems gut kennen oder parallel vor sich haben. Mit „Next“ verlassen Sie die chroot-Konsole, mit weiterem „Next“ die Paketübersicht. Danach wird das angepasste System zusammengebaut. Das fertige ISO können Sie mit den üblichen Werkzeugen auf DVD brennen oder auf USB schreiben.
Trotz Beschränkung auf Ubuntu & Co ist Cubic aktuell das wohl komfortabelste Tool, um Livesysteme individuell aufzubessern. Das im nächsten Punkt beschriebene Systemback ist im Prinzip noch flexibler, wird aber nicht mehr aktualisiert und hat technische Hürden.
Cubic – der erste und der letzte Schritt: Das Tool schreibt angepasste Ubuntu-Livesysteme mit einem sehr übersichtlichen Schritt-für-Schritt-Assistenten.
Die Livesysteme Clonezilla und Rescuezilla sichern Linux- oder Windows-Datenträger in komprimierte Abbilder und schreiben diese bei Bedarf wieder zurück. Dieser Ratgeber erklärt, wie Sie diese Werkzeuge nutzen und wo sich diese Aktion anbietet.
Rescuezilla und Clonezilla erledigen das Backup und Restore kompletter Datenträger oder ausgewählter Partitionen. Technische Basis ist bei beiden Tools das Kommandozeilenwerkzeug Partclone. Um die Verhältnisse vereinfacht zu skizzieren: Partclone ist ein Hardcore-Werkzeug, das sich allenfalls Profis für automatisierte Datenträgersicherungen zumuten. Auf der komfortablen Gegenseite steht das klickfreundliche Rescuezilla, das auch Einsteiger mit wenigen Schaltflächen übersichtlich durch die anspruchsvolle Aktion führt. Etwa in der Mitte steht das textbasierte Clonezilla, das – besser mit Cursortasten, Tabulator, Eingabe- und Leertaste statt mit Maus – etwas antiquiert zu bedienen ist, aber andererseits funktional unübertroffen bleibt.
Clonezilla wie das seit Ende 2020 voll kompatible Rescuezilla beherrschen neben verbreiteten Linux-Dateisystemen (Ext2, Ext3, Ext4, BTRFS, XFS, JFS, F2FS, Reiser FS, Reiser4) auch Windows- und Apple-Partitionen wie FAT, exFAT, NTFS und HFS+). Die Images können auf lokalen (USB-) Datenträgern und auf Netzwerkfreigaben gespeichert werden. Im Netz beherrscht Clonezilla alle Protokolle (Samba, SSH, NFS, Webdav), während Rescuezilla sich auf Windows/Samba-Freigaben beschränkt. Weitere Vorzüge von Clonezilla sind das direkte Klonen von Datenträger zu Datenträger, ferner die optionale Verschlüsselung der Imagesicherungen.
Clonezilla ist ohne Zweifel der Maßstab, Rescuezilla bleibt funktional auf eine Untermenge reduziert. Rescuezilla erfüllt aber die Ansprüche typischer Endanwender vollumfänglich, zumal einer Sicherung ins Netzwerk schon aus Geschwindigkeitsgründen meist lokales USB vorgezogen wird.
Rescuezilla bei der Auswahl des Quelle: Für ein Low-Level-Werkzeug bietet das Livesystem maximalen Komfort. Über Quelle und Ziel muss dennoch zweifelsfreie Klarheit bestehen.
Warum sichern oder klonen?
Für das Sichern von Partitionen oder ganzen Festplatten gibt es mindestens drei starke Motive:
Systemsicherheit: Trotz Reparaturmechanismen von Linux- und Windows-Systemen sind manche Havarien gar nicht mehr zu beheben oder nur mit unzumutbaren Rechercheaufwand inklusiver stundenlanger Fehlversuche. Eine nicht allzu altes Plattenimage bietet Systemsicherheit auch in aussichtlosen Situationen und verkürzt Reparaturen auf eine einzige zuverlässige Aktion.
Systemumzug: Wenn der Platz des Systemdatenträgers nicht mehr ausreicht, kann das komplette bisherige System auf einen größeren Datenträger geschrieben werden.
Systemexperimente: Betriebssystembastler und Sicherheitsexperten benötigen oft einen genau definierten Systemzustand etwa vor einer Treiber- oder Software-Installation oder vor einer experimentellen (Un-) Sicherheitsaktion.
Image-Sicherung versus Klonen
Sichern und Klonen sind zwei technisch klar unterschiedene Aktionen, wenngleich zweiteres im Prinzip nur eine Abkürzung bedeutet:
Image-Sicherungen erstellen große komprimierte Dateien wahlweise eines kompletten Laufwerks oder eines Laufwerks mit mehreren Partitionen oder nur einer bestimmten Partition eines Laufwerks. Sie können diese Dateien später zurückschreiben, um eine System-Havarie zu beheben oder um das System auf einen früheren und besseren Zustand zurückzusetzen. Da die Image-Dateien groß sind, sollten sie auf schnellen externen Laufwerken oder im Gigabit-Netz gespeichert werden. Images sind eine präventive Sicherheitsmaßnahme für den Fall einer späteren Hardware- oder System-Havarie. Trotz der unvermeidlichen Größe arbeiten Clonezilla und Rescuezilla platzsparend, indem sie freien Platz von Datenträgern nicht sektorweise mitsichern: Eine zur Hälfte belegte 240-GB-SSD wird also nur 120 GB Sicherungsplatz erfordern, und nicht einmal dies, weil zusätzlich gzip-Komprimierung zum Einsatz kommt.
Klonen bedeutet eine exakte Datenkopie eines Laufwerks direkt auf ein zweites Laufwerk. Daher wird man Klonen nicht primär als Sicherheitsmaßnahme einsetzen, da es stets einen zweiten – identischen oder größeren – Datenträger erfordert, der dann eventuell über Monate unbenutzt bleibt. Klonen ist vielmehr die einschlägige Maßnahme, um den bisherigen Datenträger durch einen neuen (meist größeren) zu ersetzen. Direktes Klonen funktioniert nur mit Clonezilla. Wer mit Rescuezilla klonen will, benötigt zwei Schritte – erst das „Backup“ des Datenträgers als Image und danach dessen „Wiederherstellung“ auf den anderen Datenträger.
Benutzerdateien und Vorbereitungen: Für die Sicherung von Benutzerdaten brauchen Sie kein externes Livesystem – dafür gibt es einfachere Methoden im jeweiligen Betriebssystem. Einschlägig sind Rsync und Tar unter Linux, Robocopy oder Xcopy unter Windows (sowie diverse grafische Frontends oder Alternativen). Angesichts dieser Tatsache wäre es für schnelle Imagesicherungen optimal, Benutzerdateien weitgehend fernzuhalten. Bei unseren Image-Aktionen hielt eine kleine SSD mit einem relativ frischen System und ohne nennenswerte Benutzerdaten den Rekord: Es war in drei Minuten auf USB gesichert und später in vier Minuten wiederhergestellt. Für ein Notebooksystem mit etwa 50 GB Benutzerdateien fiel bereits die zehnfache Sicherungs- und Wiederherstellungsdauer an. Da es bei der Imagesicherung um Boot- und Systemsicherheit geht, wäre eine strikte Trennung der Benutzerdaten optimal – etwa in einer expliziten Home-Partition, die nicht mitgesichert wird. Das wird sich nicht überall ideal realisieren lassen, aber wer notgedrungen ganze Film- und Musikarchive in die Imagesicherungen einbezieht, muss Geduld mitbringen.
Der Umfang einer Sicherung lässt sich aber in jedem Fall reduzieren. Unter Linux entfernen Sie unnötige Programmpakete und räumen den Paket-Cache auf:
sudo apt autoremove
sudo apt autoclean
Ein Tool wie Bleachbit kann weitere überflüssige Datenlasten entsorgen.
Unter Windows verwenden Sie die Datenträgerbereinigung mit der Option „Systemdateien bereinigen“, um temporäre Dateien, Update-Sicherungen oder gar den eventuell noch vorhandenen Ordner „Windows.old“ zu löschen (mit Vorversion). Beachten Sie unbedingt, Windows vor einer Imagesicherung über „Neu starten“ zu beenden, denn nach normalem „Herunterfahren“ erhalten Clonezilla oder Rescuezilla keinen Schreibzugriff.
Rescuezilla kann nur Samba/Windows-Freigaben, das dürfte aber den meisten Nutzern völlig ausreichen. Häufigstes Sicherungsziel sind vermutlich USB-Laufwerke.
Das einfache Rescuezilla
Rescuezilla ist der Nachfolger des eingestellten Redo Backup. Der circa 850 MB umfassende Download des ISO-Abbilds von https://rescuezilla.com/ kann mit den üblichen Mitteln (dd, Gnome-Disks, Etcher, Win 32 Diskimager) bootfähig auf USB-Stick kopiert werden. Es handelt sich um ein komplettes Ubuntu-Livesystem, das eine Basisausstattung einschlägiger Werkzeuge mitbringt wie Browser, Gparted, Gnome-Disks. Nach „apt update“ ist auch das Nachinstallieren zusätzlicher Programme möglich, allerdings nur temporär während der Laufzeit.
Im Zentrum steht das Tool Rescuezilla, das gemeinsam mit dem Desktop automatisch startet und die Image-Sicherung und Wiederherstellung mit wenigen Schaltflächen einfach macht. Im Prinzip gibt es nur „Backup“ und „Wiederherstellung“, die wir nachfolgend genauer beschreiben.
Exkurs zur dritten Option: Eine dritte Schaltfläche „Image Explorer“ ist neu und noch als „Beta“ charakterisiert. Ihre Funktion ist es, den Inhalt vorhandener Sicherungsabbilder in den Dateimanager zu mounten. Dies wäre eine signifikante Funktionserweiterung, weil sich dann gezielt einzelne Dateiobjekte aus einer Sicherung holen ließen, ohne das gesamte Image zurückschreiben zu müssen. Da Rescuezilla (und Clonezilla) die Abbilder aber gzip-komprimieren, ist die Wartezeit für die Dekomprimierung größerer Images aktuell kaum zumutbar. In unserem Test benötigte das Mounten einer kleinen SSD-Sicherung (60 GB) etwa 10 Minuten, das Anzeigen des Inhalts im Dateimanager unter „/mnt/rescuezilla.image.explorer“ sogar nochmal deutlich länger. Auch das anschließende Navigieren im Dateisystem des Abbilds ist unzumutbar zäh. Rescuezilla warnt daher bei dieser Funktion mit gutem Grund vor erheblichen Wartezeiten und kündigt für künftige Versionen ein anderes Kompressionsformat an, das schnellere Ergebnisse verspricht. Derzeit lohnt sich der „Image Explorer“ allenfalls dann, wenn Sie ganz genau wissen, welche Einzeldateien Sie aus dem Image zurücksichern müssen.
Das Backup: Im automatisch gestarteten Haupttool „Rescuezilla“ lädt die Schaltfläche „Backup“ den Assistenten zum Schreiben eines neuen Abbilds:
„Schritt 1“ ist die Auswahl des physikalischen Quell-Datenträgers, dessen Partitionen gesichert werden sollen. „Schritt 2“ ermöglicht erlaubt die Auswahl der gewünschten Partitionen auf diesem Datenträger. Wenn Sie nicht genau wissen, dass eine bestimmte Partition keine Sicherung braucht, dann übernehmen Sie hier alle angezeigten Partitionen, wie es der Standard vorgibt. Andernfalls besteht die Gefahr, dass Sie eine wichtige Bootpartition unterschlagen und damit später ein nicht bootfähiges System zurückschreiben.
In „Schritt 3“ markieren Sie das Backupziel. Dabei zeigt die Standardoption „Direkt an meinen Computer angeschlossen“ die internen Laufwerke sowie USB-Medien. Falls das Image auf einer Samba-Freigabe landen soll, aktivieren Sie oben die Option „Über das Netzwerk verbunden“. In diesem Fall geben Sie den „Server oder Freigabeort“ in dieser Form (also ohne Protokollangabe „smb“ oder ähnlich)
//[IP]/[Zielverzeichnis]
ein, also etwa „//192.168.178.20/Data/“. Falls Zugangsdaten erforderlich sind, lassen sich diese in den weiteren Zeilen ergänzen (Samba-Kontoname, Samba-Kennwort).
„Schritt 4“ sollten Sie bei der Vorgabe belassen. Es handelt sich um das Mount-Verzeichnis im Livesystem, wohin das eigentliche Backupziel gemountet wird. In „Schritt 5“ sollten Sie eventuell tätig werden, weil ein aussagekräftiger Sicherungsname die spätere Orientierung erleichtert. „Schritt 6“ zeigt eine Übersicht für die Aktion und nach „Weiter“ erfolgt in „Schritt 7“ die eigentliche Aktion.
Die Wiederherstellung: Die Schaltfläche „Wiederherstellen“ startet den Assistenten, der mit „Schritt 1“ zunächst das Laufwerk abfrägt, wo sich die Sicherung befindet. Wird das Laufwerk korrekt gewählt, zeigt „Schritt 2“ die vorhandene(n) Imagesicherung(en). Mit der passsenden Auswahl und „Weiter“ geht es in „Schritt 3“ zum Zieldatenträger. Hier dürfen keine Zweifel bestehen, weil dieses Laufwerk komplett überschrieben wird. Die Angaben sind mit Größe, Hersteller und Partitionsangaben aber vorbildlich präzise. Mit „Schritt 4“ folgt noch die Partitionsauswahl, wobei Sie wieder – wie beim Backup empfohlen – alle Partitionen übernehmen. Nach „Schritt 5“ mit Zusammenfassung und „Weiter“ startet die Wiederherstellung des Datenträgers.
Hübsche Rescuezilla-Funktion, aber kaum praxistauglich: Der Image-Explorer will den Zugang auf die Dateiebene in den Sicherungsimages ermöglichen, ist aber zu langsam.
Das mächtige Clonezilla
Anders als Rescuezilla hat das Livesystem Clonezilla keinen Desktop oder weitere Programme, sondern fokussiert sich ausschließlich auf seinen Spezialjob. Der Hersteller bietet im Downloadbereich von https://clonezilla.org/downloads.php mehrere Varianten. Wir empfehlen die oberste Option „alternative stable“, die auf Ubuntu basiert (aktuell „groovy“, also Ubuntu 20.10). Ohne Desktop und sonstige Tools wiegt das Livesystem nur etwa 350 MB und kann mit den üblichen Mitteln (dd, Gnome-Disks, Etcher, Win 32 Diskimager) bootfähig auf USB-Stick kopiert werden.
Im textbasierten Menü navigieren Sie mit Cursor- und Tabulatortasten und bestätigen „OK“ mit der Eingabetaste. Im allerersten Startschirm wählen Sie die erste Option „Clonezilla live“. Wenn Sie im Folgefenster „de-DE.UTF“ wählen, ist das Menü samt Erklärungen weitestgehend in deutscher Sprache. Im Folgefenster sollten Sie außerdem das Tastaturlayout auf „German“ setzen. Weitere Abfragen zur Tastatur beantworten Sie mit den Standardvorgaben. Danach laden Sie im Fenster „Starte Clonezilla“ das eigentliche Tool.
Das Backup: Wählen Sie im ersten Dialog die oberste Option „device-image“ und danach „local_dev“. Sie haben jetzt Gelegenheit, ein USB-Laufwerk anzuschließen. Drücken Sie die Eingabetaste. Clonezilla zeigt Ihnen die verfügbaren Laufwerke an. Warten Sie, bis das USB-Laufwerk erscheint, und drücken Sie dann die Tastenkombination Strg-C. Wählen Sie das Ziellaufwerk aus und danach ein Verzeichnis, in dem Clonezilla das Backup speichern soll. Gehen Sie mit den Pfeiltasten auf „Done“ und drücken Sie zweimal die Eingabetaste.
Wenn Sie ein Image im Netzwerk sichern wollen, wählen Sie statt „local_dev“ das gewünschte Netzwerkprotokoll – also „samba_server“ für Windows/Samba-Freigaben oder „ssh_server“ für eine Sicherung via SSH. Danach geben Sie die IP-Adresse des Servers an und die zugehörigen Anmeldedaten mit Kontoname und Passwort. Im Anschluss fahren Sie fort, wie bei einem lokalen Ziel beschrieben.
Verwenden Sie den Modus „Beginner Einsteiger“ und dann die Option „savedisk“, sofern Sie ein Abbild der gesamten Festplatte erstellen möchten. Dies ist im Zweifel immer zu empfehlen, weil Clonezilla dann alle Partitionen inklusive Bootmanager sichert. Dabei spielt es keine Rolle, ob Windows, Linux oder beide Systeme installiert sind. Die weitere Option „saveparts“ sichert nur einzelne ausgewählte Partitionen.
Vergeben Sie einen aussagekräftigen Namen für das Image. Anschließend wählen Sie die Festplatte oder Partition aus, die Sie sichern möchten. Bei den folgenden Dialogen übernehmen Sie die Voreinstellungen.
Die Wiederherstellung: Starten Sie Clonezilla mit den Optionen „device_image“ und „local_dev“ (bei lokaler Sicherung). Wählen Sie die Partition und das Verzeichnis aus, in dem ein zuvor gesichertes Image liegt. Gehen Sie auf „Beginner“ und dann auf „restoredisk“. Wenn Sie vorher einzelne Partitionen gesichert haben, verwenden Sie „restoreparts“. Clonezilla findet auf dem Backup-Medium alle Abbilder automatisch und präsentiert sie in einer Liste. Danach wählen Sie die Zielpartition aus, in die das Image zurückgeschrieben werden soll. Nach zwei Sicherheitsabfragen spielt Clonezilla das Backup zurück.
Eine Wiederherstellung aus dem Netzwerk läuft entsprechend ab. Hier wählen Sie aber statt „local_dev“ das passende Netzwerkprotokoll – also etwa „samba_server“ und geben danach die Anmeldedaten an.
Direktes Klonen: Beim Klonen spielt es keine Rolle, ob es sich bei Quelle und Ziel um Festplatten oder SSDs handelt. Wichtig sind nur die Datenträgergrößen. Wir gehen hier vom häufigen und einfacheren Fall aus, dass das neue Zielmedium gleich groß oder größer ist als das bisherige Laufwerk. In diesen Fällen benötigt Clonezilla keine Vorbereitung und nur geringe Nachbesserung:
Sie wählen zunächst „device-device“, dann „Beginner“ und anschließend „disk_to_local_disk“. Geben Sie zunächst den Datenträger an, den Sie kopieren wollen, im nächsten Schritt das neue Ziellaufwerk. Die folgenden beiden Dialoge bestätigen Sie mit Eingabetaste, um die Voreinstellungen zu übernehmen. Folgen Sie den weiteren Anweisungen des Assistenten. Prüfen Sie die Einstellungen und bestätigen Sie mit „y“, wenn Sie dazu aufgefordert werden.
Wenn der neue Datenträger mehr Kapazität besitzt als der ursprüngliche, dann bleibt nach der Clonezilla-Aktion, welche exakt die ursprünglichen Größen wiederherstellt, nach der letzten Partition ungenutzer Plattenplatz. Dies korrigieren Sie in einem beliebigen Linux-System mit Gparted, indem Sie die letzte Partition auf dem neuen Laufwerk maximal vergrößern.
Clonezilla: Die Menüs sind anspruchsvoll, aber ganz gut erklärt. Typischerweise arbeiten Sie mit Images (Bild oben) und mit lokalen Datenträgern (Bild unten).
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:
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
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):
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“:
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:
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.
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. 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
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:
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: 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.
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.
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“.
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.
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…
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 (sudoapt
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
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:
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.
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
Systemstart und Shutdown können Sie komplett automatisieren: Das Tool rtcwake ist auf Linux Mint vorinstalliert und kann einen Rechner ausschalten (oder in einen ACPI-Ruhezustand zu versetzen) und zur gewünschten Zeit wieder starten. Das „rtc“ im Toolnamen steht für Real Time Clock und bezieht sich auf die physikalische Hardware-Uhr. Diese läuft auch, wenn der Rechner in einem Ruhezustand oder komplett ausgeschaltet ist und kann den Neustart auslösen, wenn ein definierter Zeitpunkt erreicht ist. Unter Linux ist dieser Zeitpunkt in der Datei „/sys/class/rtc/rtc0/wakealarm“ abgelegt, und das Tool rtcwake ist das Werkzeug, diesen Zeitpunkt vorzugeben. Im einfachsten Fall sieht ein Kommando so aus:
sudo rtcwake -m off -s 60
Der Befehl ist gut geeignet, um zu testen, ob die Hardware mitspielt (x86-Hardware praktisch immer, ARM-Rechner nicht immer). Der Schalter „-m“ bestimmt den ACPI-Modus. Mögliche Werte sind „standby“, „mem“, „disk“ oder „off“ (komplettes Ausschalten). Als zweiter Parameter ist hier „-s“ („seconds“) mit einer nachfolgenden Zeitangabe in Sekunden angegeben. Der obige Testbefehl wird also das System herunterfahren und nach einer Minute neu starten (60 Sekunden).
Als zweiter Parameter ist hier „-s“ („seconds“) mit einer nachfolgenden Zeitangabe in Sekunden angegeben. Der Testbefehl wird also das System in die Bereitschaft versetzen nach einer Minute neu starten (60 Sekunden). Obwohl mit Schalter „-t“ („time) auch eine exakte Zeitangabe möglich ist, empfehlen wir, den geplanten Neustart immer mit Parameter „-s […]“ anzugeben, selbst wenn es sich um viele Stunden handelt. Es ist wenig Mühe, etwa zehn Stunden in Sekunden umzurechnen (10*3600=36000).
Um Shutdown und Start zu automatisieren, kommt nun der Zeitplaner Cron ins Spiel: Nach dem Aufruf der Crontab-Editors mit
sudo crontab -e
schaltet folgender Crontab-Eintrag
0 22 * * * /usr/sbin/rtcwake -m off -s 36000
den Rechner täglich um 22:00 Uhr ab und startet ihn nach 36000 Sekunden (10 Stunden) wieder – somit exakt um 8:00 Uhr.