Schlagwort: Systemd

  • NFS-Freigaben per Systemd einbinden

    Bild: share | By airpix | Lizenz: CC BY 2.0

    Ich habe gerade einen neuen Rechner in Betrieb genommen. Beim alten PC wurden die Freigaben per autofs automatisch eingebunden, da das Einbinden per fstab mit Nachteilen verbunden sein kann. Leider ist es mir nicht gelungen, die Konfiguration des alten Rechners auf die der neuen Box anzupassen.

    Systemd to the Rescue

    Nach Stunden des Probierens suchte ich nach Alternativen und entschloss mich, Systemd-Mounts zu testen. Und siehe da, nach 10 Minuten war der erste Share da und erschien auch im Dateimanager Dolphin. Um dahin zu kommen, mussten lediglich zwei einfache Systemd-Units erstellt werden. Als Vorgabe muss lediglich das Paket nfs-common installiert sein.

    Units erstellen

    Die Units bei Systemd unterscheiden sich nicht sehr von den Service-Files, die vermutlich jeder Linux-Nutzer schon mal gesehen hat. Die erste Unit endet auf .mount, die zweite auf .automount. Bei mir sehen diese wie folgt aus:

    [Unit]
    Description=Mount NFS Share

    [Mount]
    What=192.168.XXX.YY:/Music
    Where=/media/ft/nas
    Type=nfs
    Options=soft,async

    Eigentlich ist es selbsterklärend. Description ist lediglich beschreibend. Der Eintrag hinter What verweist auf die Adresse und die Freigabe, das Where legt fest, wohin gemounted wird. Der Typ ist bei mir NFS, könnte aber auch Cifs sein. Die benötigten Optionen kann man sich im NFS-Howto zusammenstellen.

    Die zweite Unit mit der Endung .automount macht genau was der Name besagt: Sie liest die soeben beschriebene .mount und hängt die dort benannte Freigabe ein:

    [Unit]
    Description=Automount NFS-Share
    Requires=NetworkManager.service
    After=network-online.target
    Wants=network-online.target

    [Automount]
    Where=/media/ft/nas
    TimeoutIdleSec=10min

    [Install]
    WantedBy=multi-user.target

    Auch hier wieder die Beschreibung an erster Stelle. Die zweite Zeile legt fest, dass die Datei NetworkManager.service benötigt wird. Der Automounter soll dann die Freigaben einhängen, nachdem das Netzwerk steht. TimeoutIdle legt fest, dass die Freigabe ohne Aktivität nach der angegebenen Zeit wieder ausgehängt wird. Die Install-Anweisung besagt, in welchem Runlevel die Unit gestartet werden soll. Ich habe hier das Multi-User-Runlevel gewählt.

    Nomen est Omen

    Was die Namen der beiden Units angeht, so werden sie aus dem Pfad des Einhängepunkts gebildet, indem / gegen ausgetauscht wird. Aus media/ft/nas wird media-ft-nas.mount bzw. media-ft-nas.automount. Bei längeren Namen kann man sich auch des Befehls sudo systemd escape [mountpoint] bedienen.

    Verschieben und aktivieren

    Die solchermaßen benannten Dateien werden nach /etc/systemd/system verschoben. Jetzt fehlen noch zwei Befehle um die Automount-Unit jetzt und künftig beim Booten zu starten:

    systemctl start media-ft-nas.automount

    systemctl enable media-ft-nas.automount

    Der Zustand kann mit systemctl status media-ft-nas.automount kontrolliert werden und liefert im Erfolgsfall beispielsweise zurück:

    ft@blue:/etc/systemd/system$ systemctl status media-ft-nas.automount
    media-ft-nas.automount - Automount /media/ft/nas
        Loaded: loaded (/etc/systemd/system/media-ft-nas.automount; enabled; vendor preset: enabled)
        Active: active (waiting) since Sun 2019-12-22 12:45:52 CET; 2h 57min ago
      Triggers: ● media-ft-nas.mount
         Where: /media/ft/nas

    Das wars auch schon. Sollte etwas nicht funktionieren, kann man als erstes testen, welche Freigaben überhaupt vorhanden sind. Das geht mittels:

    sudo showmount -e 192.168.XXX.YY

    Der einzige Nachteil, der ins Auge springt, ist, dass für jede Freigabe eigene Units angelegt werden müssen. Aber die müsste man in der fstab auch einzeln eintragen. Und man muss es ja nur einmal machen. Falls jemand hier eine Abkürzung kennt, ich bin ganz Ohr.

  • Debian vor Urabstimmung über Init-Systeme

    Debian vor Urabstimmung über Init-Systeme

    Im Debian-Projekt tritt keine Ruhe ein, wenn es um Init-Systeme geht. 2014 entschied der Technische Ausschuss als letzte Instanz nach andauernden heftigen Debatten, dass fortan Systemd als Standard-Init-System bei Debian verwendet wird. Jetzt sind nach wiederum anhaltenden Diskussionen die Debian-Entwickler zu einer Urabstimmung aufgerufen, die die Frage klären soll, wie sich Debian künftig zu alternativen Init-Systemen stellt. Bei Debian heißt eine solche Urabstimmung General Resolution (GR).

    Systemd und kein Ende

    Dazu hat der derzeitige Debian-Projektleiter (DPL) Sam Hartman aus den Diskussionen drei Vorschläge erarbeitet, die von anderen Entwicklern mittlerweile auf sieben Vorschläge erweitert wurden. Die darin vorgeschlagenen Richtlinien reichen von »strikt nur noch Systemd« über »auch andere Init-Systeme, wenn sie nicht ausbremsen« bis zu »zwingend auch andere Init-Systeme«.

    Urabstimmung über Init-Systeme

    Hartman möchte die Entscheidung hinter sich bringen, da solche Diskussionen dazu tendieren, das Projekt zu lähmen. Er hielt lediglich die Mindestdiskussionszeit ein, die Abstimmung beginnt am 7.12 und endet am 27.12. Wegen der Komplexität der Vorschläge wurde die Wahlperiode von den üblichen zwei auf drei Wochen verlängert.

    Verschiedene Positionen

    Die Vorschläge, die auf dem Stimmzettel auftauchen sind von 1–7 durchnummeriert, wobei DPL Hartman seinen dritten Vorschlag zurückgezogen hat, da die Aussage in anderen Vorschlägen bereits aufgeführt war. Sie stellen die verschiedenen Positionen dar, die sich in der Diskussion auf der Mailingliste herauskristallisiert haben.

    Die Vorschläge

    Vorschlag 1 stammt von Martin Michlmayr, der die Fokussierung auf Systemd festschreiben möchte und es damit Paketen ermöglicht, ausschließlich Systemd-Funktionen zu nutzen. Alternative Systeme sind willkommen, sollten aber die Entwicklung nicht aufhalten.

    Vorschlag 2 wurde von Hartman formuliert und ist mit »Systemd, aber wir unterstützen die Suche nach Alternativen« überschrieben. Debian würde damit anerkennen, dass Systemd-Service-Einheiten die bevorzugte Konfiguration sind, um zu beschreiben, wie man einen Daemon oder Dienst startet. Debian bleibt damit jedoch weiterhin eine Umgebung, in der Entwickler und Benutzer alternative Init-Systeme und Alternativen zu Systemfunktionen erforschen und entwickeln können. Zudem betont der Vorschlag das Bekenntnis Debians zur Zusammenarbeit mit Derivaten, die unterschiedliche Entscheidungen über Init-Systeme treffen.

    Vorschlag 3 ist mit »Unterstützung mehrerer Init-Systeme ist wichtig« überschrieben und besagt, alle Pakete müssen auch ohne Systemd funktionieren, sofern der Entwickler sie nicht ausdrücklich auf Systemd beschränkt hat. Steht ein Paket nicht für mehrere Init-System bereit, wäre das ein Fehler, der mit importantzu klassifizieren wäre.

    Vorschlag 4 stammt von Debian-Urgestein Ian Jackson und mit »Unterstützung von nicht Systemd-gebundenen Systemen, ohne den Fortschritt zu blockieren«. Der sehr ausführliche Vorschlag sieht vor, dass Pakete auf nicht Systemd-gebundenen Installationen funktionieren, aber ein Fehlverhalten gilt nicht als veröffentlichungskritischer Fehler – es sei denn, es gibt die notwendige Unterstützung, wurde aber vom Paketbetreuer nicht aktiviert. Die Verwendung von Systemd-spezifischen Funktionen ist nur zulässig, wenn diese Funktionen dokumentiert sind und alternative Implementierungen realisierbar sind.

    Vorschlag 5 von Dmitry Bogatov lässt bereits in der Überschrift erkennen, dass Bogatov unterschiedliche Init-Systeme als verbindlich festgeschrieben sehen möchte. Nach seiner Ansicht muss jedes Paket auch mit Init-Alternativen zu Systemd funktionieren.

    Vorschlag 6 stammt von Guillem Jover und ist mit »Unterstützt Portabilität und mehrere Implementierungen« überschrieben. Dieser Vorschlag bleibt vage und sagt lediglich, dass Hard- und Software wichtig sind, aber keine spezifischen Hinweise darauf gibt, was das für die Projektpolitik bedeuten würde. Option 7 steht bisher noch nicht auf der Webseite, stammt wiederum von Ian Jackson, der darin die Vorschläge 4 und 6 zusammenfasst und weiter ausarbeitet.

    Stimmberechtigt

    Alle rund 1.000 offiziellen Debian-Entwickler sind stimmberechtigt und können sich für einen der Vorschläge entscheiden oder dafür stimmen, das Problem zurück an den Diskussionstisch zu schicken. Da mittlerweile viele Entwickler von der anstrengenden Diskussion genervt sind, wird es aber vermutlich zu einer Entscheidung kommen, die dann in die Richtlinien der Debian Policy einfließen.

  • Gentoo: GNOME ohne Systemd

    Lizenz: GPL

    Das Gentoo-Projekt gab in dieser Woche bekannt, dass es gelungen sei, GNOME 3.30 für alle Init-Systeme anzubieten und nicht nur für Systemd. Die im Testing-Zweig der Distribution verfügbare Umsetzung booted standardmäßig mit OpenRC anstatt Systemd.

    Elogind

    Dies wird durch das elogind-Projekt erreicht, eine eigenständige Logind-Implementierung auf Basis von Systemd-Code, die derzeit von einem Gentoo-Nutzer gepflegt wird. Es stellt die fehlenden Logind-Schnittstellen zur Verfügung, die GNOME derzeit benötigt, ohne dabei mit Systemd zu booten.

    Per USE-Flags auswählen

    Für eine einfachere GNOME-Installation richten die GNOME-Profile nun standardmäßige USE-Flags (PDF) mit elogind für OpenRC-Systeme ein, während die GNOME/Systemd-Profile weiterhin zur Verfügung stehen. Nach der Profilauswahl sollte die Installation per emerge gnome mit dem gewünschten Init-System gelingen.

    Noch nicht stabil

    Es wird erwartet, dass GNOME 3.32 bald auch im Testing-Zweig verfügbar sein wird. Innerhalb von 6 – 8 Wochen soll die neue Option dann auch für Anwender des stabilen Zweigs verfügbar sein. Fehler können in Gentoos Bugzilla gemeldet werden.

    Offenes Gentoo

    Gentoo war seit der Einführung von Systemd bemüht, Alternativen bereitzustellen. Nachdem Udev an Systemd angebunden wurde, forkten Gentoo-Entwickler das Paket zu eudev, das wie elogind unter anderem auch beim Debian-Derivat Devuan verwendet wird.

    Viel Auswahl

    Systemd ist zwar von allen großen Distributionen übernommen worden, ist aber auch Jahre nach der Einführung nicht unumstritten. Allerdings ist die Diskussion darüber heute meist sachlicher als etwa bei der Einführung von Systemd bei Debian. Damals hatten militante Trolle jeglicher Sachlichkeit den Garaus gemacht. Anwender, die Systemd auf ihren Rechnern nicht haben möchten, können auf eine mittlerweile stattliche Zahl an Distributionen ohne Systemd ausweichen.

  • Ohne Systemd

    Es soll ja Linuxer geben, die etwas gegen Systemd haben. Ich gehöre nicht dazu, aber mir lief kürzlich eine Liste von 78 Distributionen über den Weg, die Systemd auf die ein oder andere Art vermeiden. Das es davon so viele gibt, hätte ich nicht gedacht.