Da es anscheinend noch keine Anleitung auf deutsch gibt wie man sein Arch Linux auf systemd umstellt, werde ich mich nun daran Versuchen. Folgend werden wir ein Arch Linux vom alten alten init-System auf systemd umstellen.
Pakete installieren
Zu allererst ein volles Update des Systems mit dem Befehl:
pacman -Syu
Nun installieren wir systemd mit dem Befehl:
pacman -S systemd
Konfigurationsdateien erstellen
Jetzt legen wir folgende Dateien an mit dem jeweiligen Inhalt:
/etc/hostname
#hostname vom Rechner
/etc/vconsole.conf
KEYMAP="de-latin1.map.gz" FONT=lat9w-16 FONT_MAP=8859-1_to_uni
/etc/locale.conf
LANG=de_DE.utf8 LC_COLLATE=C
/etc/timezone
Europe/Berlin
Kernelmodule eintragen
Wenn zusätzliche Kernelmodule geladen werden müssen die in der /etc/rc.conf stehen, dann müssen diese noch extra eingerichtet werden, da die rc.conf bei systemd in diesem Falle ignoriert wird.
Legen Sie für jedes Kernelmodul das geladen werden soll im Ordner
/etc/modules-load.d/
eine Datei an. Hier am Beispiel vom vboxdrv
touch /etc/modules-load.d/vboxdrv.conf
und schreiben Sie in die Datei den Namen des Kernelmoduls
vboxdrv
Dies wiederholen Sie mit allen zu ladenen Kernelmodulen.
systemd einrichten
Nun kommen wir zur eigentlichen systemd Konfiguration. Zuerst müssen wir das target, also das Ziel festlegen, was in unserem Fall das Ursprüngliche init 5 oder bei systemd das graphical.target ist.
Mit dem Befehl
systemctl enable graphical.target
geben wir dies an systemd weiter.
Nun müssen wir noch alle Deamons die beim Start geladen werden sollen, angeben. Schauen Sie dazu in die /etc/rc.conf hinein und übertragen Sie alle zu startenden Deamons in systemd.
Steht in der rc.conf zum Beispiel
DAEMONS=(syslog-ng acpid dbus iptables networkmanager ntpd alsa cupsd crond kdm)
sehen die Befehle an systemd so aus:
systemctl enable syslog-ng.service systemctl enable acpid.service systemctl enable apcid.socket systemctl enable iptables.service systemctl enable NetworkManager.service systemctl enable ntpd.service systemctl enable cupsd.service systemctl enable cronie.service systemctl enable kdm.service
Ohne NetworkManager benutzen Sie einfach
systemctl enable dhcpcd@eth0.service
Altes init-System löschen
Nun müssen Sie noch das alte init-System löschen
pacman -R initscripts pacman -S systemd-sysvcompat
Das war es auch schon. Nach einem Neustart sollte systemd den Rechner nun ohne Probleme hochfahren. Sollte ein Deamon nicht starten können Sie die Fehlermeldung mit
systemctl status [deamon].service
abrufen.
Mehr Informationen zum Thema systemd in Arch Linux gibt es in dem sehr ausführlichen Artikel unter https://wiki.archlinux.org/index.php/Systemd
Wichtig: Wer auf der sicheren Seite sein möchte kann initscripts auch erstmal behalten und mit dem Kernelparameter
init=/bin/systemd
ausprobieren ob systemd wie erwartet funktioniert. Ist dies der Fall kann dann das alte init-System wie im letzen Kapitel beschrieben gelöscht werden.