Migration von Arch Linux nach Artix Linux

Nachdem ich sehr lange mit Arch Linux zufrieden war, habe ich im Juni 2024 mit dem Umstieg auf Artix Linux begonnen. Ein Schritt der schon sehr lange überfällig war, aber die xz Backdoor brachte das Fass definitiv zum überlaufen (auch wenn die Backdoor unter Arch Linux höchstwahrscheinlich nicht ausgenutzt werden konnte).

Offizielle Anleitung

Es gibt eine offizielle Anleitung für die Migration nach Artix Linux.

Im Wesentlichen bin ich nach dieser vorgegangen, an einigen Stellen musste ich jedoch "Kreativ sein", da es für mein bevorzugtes initsystem dinit keine oder nur unvollständige Anleitungen gab.

Wichtig

Bei der Migration bitte folgendes unbedingt beachten:

BEVOR man den Systemd-kram entfernt, unbedingt alle erforderlichen filesysteme wie /boot/efi mounten, weil hinterher die ggf. notwendigen kernelmodule nicht mehr geladen werden können.

Konfiguration des Netzwerk

Hier ist die offizielle Anleitung nicht so recht Zielführend. Ich habe einfach alle Befehle, die das bereits funktionierende Netzwerkinterface stoppen könnten, ignoriert. Auch die Konfiguration in /etc/conf.d/net geht so nicht, bzw. ist überflüssig, wenn man connman verwendet.
Damit man Netzwerk hat, braucht man die Pakete connman und connman-dinit. Sie sollten auch in den Cache geladen werden, bevor die heisse Phase beginnt. Connman konfiguriert ethernet interfaces normalerweise selbst. Wenn man Einfluss nehmen muss, findet sich die Konfig dort:

/var/lib/connman/ethernet_${MAC_ADDR}_cable/settings
[ethernet_${MAC_ADDR}_cable] Name=Wired AutoConnect=true IPv4.method=dhcp Nameservers=${DNS_IP};

Die MAC-Adresse wird dabei hexadezimal am Stück, ohne trennende Doppelpunkte, geschrieben.

Um die Pakete vorab in den cache zu laden

pacman -Sw base base-devel grub linux linux-headers \ dinit dinit-system elogind-dinit connman-dinit mkinitcpio net-tools \ rsync lsb-release connman esysusers etmpfiles artix-branding-base

Genau so werden sie dann auch installiert, nur das w weglassen.

Beim Installieren der initscripts hatte ich noch Änderungen, da ich manche nicht brauchte und andere aber fehlten:

pacman -S acpid-dinit alsa-utils-dinit \ chrony-dinit connman-dinit cryptsetup-dinit cups-dinit \ device-mapper-dinit haveged-dinit hdparm-dinit \ mdadm-dinit nftables-dinit openssh-dinit sddm-dinit syslog-ng-dinit \ rpc-gssd-dinit

(rpc-gssd-dinit stammt aus meinem eigenen repo - braucht es nur auf clients)

Notizen zu dinit

Diese Packages werden teilweise mitinstalliert, braucht es aber nicht:

dinit services aktivieren

dinitctl --offline enable connmand dinitctl --offline enable ssdh dinitctl --offline enable nftables dinitctl --offline enable chronyd dinitctl --offline enable sddm

Fallen bei headless systemen

Folgende dinit services muss man VOR dem reboot aktivieren:

dinitctl --offline enable connmand dinitctl --offline enable sshd

(oder per symlink in /etc/dinit.d/boot.d)

Weitere Notizen

sddm braucht libkscreen5 (oder irgendeine der abhängigkeiten).
vielleicht auch nur wenn man den qt5-greeter nutzt (muss ich noch probieren)