Leserartikel Eigene (Arch) Linux ISO erstellen

Hallo allesamt,

ich möchte heute eine kleine Anleitung geben, an dessen Ende man eine eigene Arch Linux ISO in den (virtuellen) Händen hält,
mit eigenen Programmen und eigener Konfiguration.
Erstmal wird es hier nur die Grundlagen geben, mit dem Ziel - in einer live Desktop Umgebung zu landen, inklusive Browser.
Basis des Ganzen ist die reguläre Arch Linux ISO, wie sie auch monatlich frisch erscheint, erweitert um
SDDM (als Session/Login Manager)
XFCE (als leichtgewichtiger Desktop)
Firefox (als Firefox)
sudo & polkit zur Rechte bzw. Admin Verwaltung.

Für wen ist das ?
Natürlich in erster Linie für alle die sich gefragt haben wie man denn so eine ISO erstellen kann, um beispielsweise:
1. seine eigene Admin ISO zur Hand zu haben (mit Festplatten, Netzwerk und sonstigen Tools)
2. Eine Grundlage für eine eigene (grafische) Arch Linux Installation -> sein eigenes Installations Skript oder einfach eine normale Installation, aber mit dem Komfort eines Desktops.
3. seine Ideen einer idealen (Arch-Basierten) Distribution umzusetzen
4. oder davon abgeleitet einfach eine/seine fertige Arch Installation überall dabei zu haben.

Was brauche ich ?
Aktive Internetverbindung und je nachdem 15-30 Minuten Zeit für das Grundsystem, dazu lediglich das Paket
1.
Code:
sudo pacman -S archiso

Lesen ist mir zu anstrengend, gibt es auch ein Video dazu ?
Aber klar doch...

Warum also noch warten ? Legen wir los :hammer_alt:

2. Aus dem installiertem archiso Paket, kopieren wir uns das Arbeitsverzeichnis in den Home-Ordner
Code:
cp -r /usr/share/archiso/configs/releng/ archlive
Dabei entspricht releng der regulären Arch ISO

3. Programme können ganz einfach in der Datei packages.x86_64 hinzugefügt und entfernt werden. Dabei werden diese frisch aus den Arch Paketquellen bezogen - daher auch die Internetanbindung nötig.
Natürlich können auch lokale Paketquellen, sowie 32/multilib Quellen aus Pacman genutzt werden, dazu einfach -> pacman.conf bearbeiten (ich versuche einen später einen eigenen Abschnitt über lokale Paketquellen zu verfassen, diese wären praktisch um Pakete welche sich nicht in den Arch Quellen finden hinzuzufügen. Prominentes Beispiel wäre mangohud)

4. Benutzer & Gruppe anlegen

Im Arbeitsordner nach -> airootfs/etc navigieren. Das ist auch das Stammverzeichnis der künftigen ISO
Zum anlegen eines Nutzers, einfach die Datei passwd bearbeiten und folgendes einfügen:
Code:
NUTZER:x:1000:1000::/home/NUTZER:/usr/bin/zsh

Nun weisen wir dem Nutzer noch ein Passwort zu, dazu benötigen wir erst den entsprechenden Hash des Passwortes und führen daher im Terminal aus:
Code:
openssl passwd -6 PASSWORT
Die Ausgabe wird nun einfach kopiert und in die Datei shadow eingefügt, konkret sieht die eingefügte neue Zeile so aus:
Code:
NUTZER:PASSWORTHASH:14871::::::

Der neue Nutzer muss noch den richtigen Gruppen hinzugefügt werden, besonders wichtig die wheel Gruppe für Sudo und Polkit später. Dazu die Datei group erstellen, weiterhin im gleichen Verzeichnis, also airootfs/etc mit folgendem Inhalt
Code:
root:x:0:root
adm:x:4:NUTZER
wheel:x:10:NUTZER
uucp:x:14:NUTZER
NUTZER:x:1000:

Und abschließend noch die Datei gshadow erstellen und füllen mit
Code:
root:!*::root
NUTZER:!*::

Zur Erklärung: Wie vorhin in der shadow Datei das Passwort hinterlegt wurde, würde man in der gshadow das Gruppenpasswort hinterlegen. Der * bedeutet, dass kein Passwort für die Gruppe nötig ist.

5. Autologin

SDDM ermöglicht ein einfaches automatisches Login, dazu muss lediglich der Dienst gestartet werden und eine Datei hinterlegt, welche dem System mitteilt, wer eingeloggt werden soll. Also damit wir nach dem Start der ISO auch auf dem Desktop begrüßt werden, stellen wir erstmal eine Verknüpfung für den Autostart her:

Code:
ln -s /usr/lib/systemd/system/sddm.service archlive/airootfs/etc/systemd/system/display-manager.service
Dabei wird vorausgesetzt, dass SDDM bereits auf dem eigenen System installiert ist, da wir die Verknüpfung aus unserem eigenen System heraus herstellen.

Die Login Datei wird nun noch unter /airootfs/etc/ im neu anzulegenden Ordner sddm.conf.d mit dem Namen autologin.conf erstellt, also /airootfs/etc/sddm.conf.d/autologin.conf

Code:
[Autologin]

User=Nutzer
Session=xfce

6. Sudo & Polkit

Um unserem Nutzer sudo Rechte zu verleihen, welche ihm Dank der Gruppe wheel zustehen, legen wir einfach einen Ordner samt Datei im Stammverzeichnis an, also /airootfs/etc/sudoers.d/g_wheel mit dem Inhalt:

Code:
%wheel  ALL=(ALL) NOPASSWD: ALL

Für Polkit machen wir etwas ähnliches, wobei die zu erstellenden Ordner etwas verschachtelt sind. In /airootfs/etc/ erstellen wir erstmal polkit-1 und in diesem Ordner erstellen wir rules.d als neuen Ordner. Erst darin erzeugen wir die Datei 49-nopasswd_global.rules. Hier nochmal zusammengefasst: /airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules

Code:
/* Allow members of the wheel group to execute any actions
 * without password authentication, similar to "sudo NOPASSWD:"
 */
polkit.addRule(function(action, subject) {
    if (subject.isInGroup("wheel")) {
        return polkit.Result.YES;
    }
});

Damit sind wir auch schon so gut wie am Ende angelangt, als nächstes stellen wir sicher, dass unsere neu erstellten Dateien über die richtigen Rechte verfügen.

7. Datei-Rechte setzen

Dazu geht es wieder nach oben in unser Arbeitsverzeichnis /archlive. Dort findet sich die Datei profiledef.sh
Unterhalb der Zeile ["/etc/shadow"]="0:0:400" ergänzen wir noch:

Code:
["/etc/gshadow"]="0:0:400"
["/etc/sudoers.d/g_wheel"]="0:0:644"
["/etc/polkit-1/rules.d/49-nopasswd_global.rules"]="0:0:644"

8. Arch-ISO erstellen

Nun können wir schon die ISO erstellen, dazu gehts in der Konsole erstmal in das Arbeitsverzeichnis /archlive
In diesem führen wir den Befehl aus
Code:
sudo mkarchiso -v /pfad/nach/archlive
(also sudo mkarchiso -v /home/NUTZER/archlive)

Die fertige ISO findet sich anschließend im Ordner out

Schlussworte

Damit es keine Probleme mit der ISO Erstellung gibt, ist es Ratsam sein System vorher zu aktualisieren.
Zum erneuten erstellen, muss der Ordner work gelöscht werden. Aber Vorsicht !
Sollte die vorherige Erstellung gescheitert sein, könnten sich Verknüpfungen in dem Verzeichnis befinden. Daher erst umount vor dem löschen, da sonst die eingebundenen Laufwerke gelöscht werden könnten. Daher der Hinweis an dieser Stelle:
https://wiki.archlinux.org/title/archiso#Removal_of_work_directory

Eigene Pakete und Quellen einbinden

https://bbs.archlinux.org/viewtopic.php?id=243409

In dem Beitrag ist geschildert, wie sich eigene Pakete aus dem AUR in die ISO einbinden lassen.
Danke an @Termy für den Hinweis!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: pabu.roar, korken-0-kruste, palladium.- und 21 andere
Danke. :daumen:
 
  • Gefällt mir
Reaktionen: Kaito Kariheddo
Danke @Kaito Kariheddo für den tollen Content. Wandert verdientermaßen auf die Startseite!

Liebe Grüße Sven
 
  • Gefällt mir
Reaktionen: I'm unknown, PERKELE und Termy
Ich bedanke mich recht herzlich für deine Mühen! Es klappt bei mir und ich bin soweit zufrieden. Was ich nur noch möchte, wäre einen Installer, wie andere Distributionen es anbieten. Das wäre für mich dann ultimativ für mich. :D
 
  • Gefällt mir
Reaktionen: Kaito Kariheddo
Da es ein anderes Thema ist, an dieser Stelle nur ein Tipp @korken-0-kruste
Du kannst alle Schritte aus der Anleitung für Einsteiger in ein Bash Skript schreiben und dieses mit auf die ISO packen. Entweder ist dann schon alles vorab festgelegt oder du lässt passenderweise für einen Installer, die Möglichkeit vor der Installation Nutzereingaben zu sammeln.
 
  • Gefällt mir
Reaktionen: korken-0-kruste
Zurück
Oben