Archiso: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(build.sh gibts nicht mehr.)
Zeile 6: Zeile 6:
}}
}}


Es stehen zwei Profile zur Auswahl Baseline und Releng.   
Es stehen zwei Profile zur Auswahl: "baseline" und "releng".   
   
   
== Baseline Profil ==
== Baseline Profil ==
Das Baseline Profil ist sehr rudimentär. Die zu erstellende  ISO-Datei kommt auf ca. 320 MB.
Das Baseline Profil ist enthält nur die allernötigsten Pakete zub Booten einer Live-ISO. Die dadurch erstellte ISO-Datei kommt auf ca. 320 MB. Wir gehen hier davon aus, dass man alle Tätigkeiten unter ~/archiso ausführen will.


  cp -r /usr/share/archiso/configs/baseline ~/archiso
  cp -r /usr/share/archiso/configs/baseline ~/archiso
Zeile 17: Zeile 17:


Das Bauen des ISO-Image kann abhängig von der Rechnerleistung und der Größe etwas Zeit in Anspruch nehmen.
Das Bauen des ISO-Image kann abhängig von der Rechnerleistung und der Größe etwas Zeit in Anspruch nehmen.
  sudo ./build.sh -v
  cd ~/archiso
su -c "mkarchiso -v -w <Pfad_zum_Arbeitsverzeichnis> -o <Pfad_zur_ISO> ~/archiso/baseline"


Das fertige Image befindet sich im Ordner /out und kann anschließend wie im Kapitel [https://wiki.archlinux.de/index.php?title=Archiso&action=edit#Einrichtung_des_USB-Sticks Einrichtung des USB-Sticks] beschrieben auf einen Stick übertragen werden.
Das fertige Image befindet sich, wenn man die Option -o weglässt, im Ordner ~/archiso/out und kann anschließend wie im Kapitel [https://wiki.archlinux.de/index.php?title=Archiso&action=edit#Einrichtung_des_USB-Sticks Einrichtung des USB-Sticks] beschrieben auf einen Stick übertragen werden. Die Option -w definiert ein alternatives Arbeitsverzeichnis und kann bei Bedarf auf eine schnelle Platte oder ein tmpfs umgeleitet werden.
 
Der in den meisten Fällen sinnvollere Ansatz verwendet aber das releng-Profil.


== Releng Profil ==
== Releng Profil ==
Das Releng Profil fertigt eine tagesaktuelle Arch Linux Installations.iso an. Die Imagedatei hat eine Größe von ca. 530MB.
Das Releng Profil fertigt eine tagesaktuelle Arch Linux Installations.iso an. Die Imagedatei hat eine Größe von mindestens 530MB.
  cp -r /usr/share/archiso/configs/releng ~/archiso
  cp -r /usr/share/archiso/configs/releng ~/archiso/
  cd archiso
  cd archiso
  sudo ./build.sh -v
  su -c "mkarchiso -v -w <Pfad_zum_Arbeitsverzeichnis> -o <Pfad_zur_ISO> ~/archiso/releng"


Anschließend kann das Image wie folgt beschrieben mit dem dd Befehl auf einen USB-Stick übertragen werden.  
Anschließend kann das Image wie folgt beschrieben mit dem dd Befehl auf einen USB-Stick übertragen werden.  
Zeile 37: Zeile 40:


{{Achtung|Der nun folgende Artikelabschnitt ist noch weitgehend experimentell und sollte nicht unkritisch angewendet werden!}}
{{Achtung|Der nun folgende Artikelabschnitt ist noch weitgehend experimentell und sollte nicht unkritisch angewendet werden!}}
== Mein persönlicher Arch Linux USB-Stick ==
== Eein persönlicher Arch Linux USB-Stick ==
Die beiden in den vorigen Abschnitten erstellten Images entsprechen bis auf die Aktualität den Images, die man auch von offizeillen Stellen herunterladen könnte. Will man allerdings Anpassungen vornehmen, was ja in den meisten Fällen der Sinn hinter dem ganzen Vorgehen ist, muss man Anpassungen vornehmen.


Ein Releng Profil anlegen.
Ein Releng Profil anlegen.
Zeile 46: Zeile 50:


=== Konfiguration des Releng Profils ===
=== Konfiguration des Releng Profils ===
* pacman-conf - In der pacman.conf Datei können die Software Repositorien ausgewählt werden. Standardmäßig sind hier core,extra und community vorgewählt.
* pacman-conf - In der pacman.conf Datei können die Software Repositorien ausgewählt werden. Standardmäßig sind hier core,extra und community vorgewählt. Hier kann multilib eingebunden werden, oder irgendwelche nichtoffizeillen Repos (z.B. auch ein eigenes).  


* packages.x86_64 - In der packages.x86_64 Datei können zusätzliche Software Pakete zeilenweise gelistet werden. Soll später eine grafische Oberfläche genutzt werden, können hier X11 und Treiber angegeben werden. Sie Sofwareliste muss nicht vollständig sein, da das System auch später noch beliebig ergänzt werden kann.
* packages.x86_64 - In der packages.x86_64 Datei können zusätzliche Software Pakete oder Paketgruppen zeilenweise gelistet werden. Soll später eine grafische Oberfläche genutzt werden, können hier X11 und Treiber angegeben werden. Sie Sofwareliste muss nicht vollständig sein, da das System auch später noch beliebig ergänzt werden kann.


  xorg-server  
  xorg-server  
Zeile 61: Zeile 65:
* packages.both - Seit der Aufgabe der 32 bit Architektur ist diese Datei auch nicht mehr relevant und muss leer gelassen werden.
* packages.both - Seit der Aufgabe der 32 bit Architektur ist diese Datei auch nicht mehr relevant und muss leer gelassen werden.


=== Anpassung des Build.sh Skripts ===
=== Anpassung des Profil-Skripts ===
Die nun folgende Änderung des buid.sh Skriptes erlaubt es vor der Erstellung einer ISO-Datei zusätzliche Einstellungen vor zu nehmen.
Die nun folgende Änderung des Skriptes erlaubt es vor der Erstellung einer ISO-Datei zusätzliche Einstellungen vorzunehmen.
Auch sollen spezielle Konfigurationen verhindert werden, die zwar für ein Installations.iso praktisch sind, für ein normales System aber nicht gebraucht werden können. [https://git.archlinux.org/archiso.git/tree/configs/releng/airootfs/root/customize_airootfs.sh]
 
Hierzu wird das Skript mit einem Editor geöffnet und wie folgt angepasst.
kate build.sh


Die Zeile mit<br>
* Tipp: Mehrmaliges Ausführen des mkarchiso-Befehls. - Der Vorgan hat einen eingebauten Schutzmechanismus, der die zweifache Ausführung verhindert, um Inkonsistenzen zu vermeiden. Hat man nach Ausführung noch Änderungen hinzuzufügen, empfiehlt es sich den gesamten ~/archiso/work-Ordner Ordner zu löschen oder einen anderen zu verwenden (Option -w, s.o.). Danach lässt sich das Skript erneut ausführen und der /work Ordner wird komplett neu erstellt.
iso_label="ARCH$(date +%Y%m)" wird abgeändert in<br>
iso_label=My-AL-Stick #Darf 11 Zeichen nicht überschreiten<br>


Die Zeile 261 'run_once make_customize_airootfs' wird auskommentiert.<br>
=== Konfiguration des Filesystems ===
Die letzte Zeile 'run_once make_iso' wird auskommentiert. Danach wird die buid.sh Datei gespeichert.<br>
Durch das Kopieren des Profiles wurde ein neu erstellter Verzeichnisbaum eines typischen Systems im Ordner ~/archiso/work/x86_64/airootfs angelegt. Dieser kann direkt bearbeitet werden.


Anschließend werden alle Befehle und Funktionsaufrufe ab incl. Zeile 247: 'mkdir -p ${work_dir}' gelöscht bzw. auskommentiert und durch den Funktionsabruf 'make_iso' ersetzt.<br>
Die nun aufgeführten Konfigurationshinweise beziehen sich ausschließlich auf das Filesystem im Ordner ~/archiso/releng/airootfs (bzw. ~/archiso/baseline/airootfs)
Das auf diese Weise neu erstellte Skript wir unter den Namen 'mkiso.sh' abgespeichert und anschließend mit dem Befehl {{ic|chmod +x mkiso.sh}} ausführbar gemacht.


Danach kann das {{ic|build.sh}} Skript ausgeführt werden.
===== Löschen von speziellen Skripten =====
  sudo ./build.sh -v
Die ausschließlich für das Installations-Medium vorinstallierten Skripte können wieder entfernt werden.  
  # rm ~/archiso/releng/airootfs/etc/mkinitcpio-archiso.conf


* Tipp: Mehrmaliges Ausführen der build.sh. - Das build Skript hat einen eingebauten Schutzmechanismus, der die zweifache Ausführung verhindert, um Inkonsistenzen zu vermeiden. Hat man nach Ausführung der build.sh noch Änderungen hinzuzufügen, empfiehlt es sich den gesamten ~/archiso/work Ordner zu löschen. Danach lässt sich das Skript erneut ausführen und der /work Ordner wird vom build.sh komplett neu erstellt.
===== Hinzufügen oder Ändern von Dateien =====
Die Möglichkeiten sind schier unbegrenzt. Zum Beispiel könnte man durch Editieren der Dateien ~/archiso/releng/airootfs/etc/passwd, ~/archiso/releng/airootfs/etc/shadow, ~/archiso/releng/airootfs/etc/group und ~/archiso/releng/airootfs/etc/gshadow einen User einrichten, oder ausgewählte Dateien aus dem eigenen /home-Ordner mit in das ISO übernehmen. Dazu bildet man einfach entsprechenden Verzeichnisbäume unter ~/archiso/releng/ nach.  


=== Konfiguration des filesystems ===
Beim Ausführen des buld.sh Skriptes wurde das neu erstellte Filesystem im Ordner ~/archiso/work/x86_64/airootfs angelegt. Dieses kann direkt bearbeitet werden.
Die nun aufgeführten Konfigurationshinweise beziehen sich ausschließlich auf das Filesystem im Ordner /airootfs.


===== Löschen von speziellen Skripten =====
Die ausschließlich für das Installations-Medium vorinstallierten Skripte können wieder entfernt werden.
# rm /etc/mkinitcpio-archiso.conf


=== Chrooten ===
=== Chrooten ===

Version vom 28. Februar 2021, 22:44 Uhr

Die hier beschriebene Methode wird von Arch Linux verwendet um monatlich ISO-Image Dateien zur Neuinstallation herauszugeben. Auch einige Arch Linux Derivate nutzen das Verfahren um Live Medien unter eigenem Label herauszugeben.

Installation

Das Programm ist als archiso in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S archiso

Es stehen zwei Profile zur Auswahl: "baseline" und "releng".

Baseline Profil

Das Baseline Profil ist enthält nur die allernötigsten Pakete zub Booten einer Live-ISO. Die dadurch erstellte ISO-Datei kommt auf ca. 320 MB. Wir gehen hier davon aus, dass man alle Tätigkeiten unter ~/archiso ausführen will.

cp -r /usr/share/archiso/configs/baseline ~/archiso

Wechsel ins Verzeichnis.

cd archiso

Das Bauen des ISO-Image kann abhängig von der Rechnerleistung und der Größe etwas Zeit in Anspruch nehmen.

cd ~/archiso 
su -c "mkarchiso -v -w <Pfad_zum_Arbeitsverzeichnis> -o <Pfad_zur_ISO> ~/archiso/baseline"

Das fertige Image befindet sich, wenn man die Option -o weglässt, im Ordner ~/archiso/out und kann anschließend wie im Kapitel Einrichtung des USB-Sticks beschrieben auf einen Stick übertragen werden. Die Option -w definiert ein alternatives Arbeitsverzeichnis und kann bei Bedarf auf eine schnelle Platte oder ein tmpfs umgeleitet werden.

Der in den meisten Fällen sinnvollere Ansatz verwendet aber das releng-Profil.

Releng Profil

Das Releng Profil fertigt eine tagesaktuelle Arch Linux Installations.iso an. Die Imagedatei hat eine Größe von mindestens 530MB.

cp -r /usr/share/archiso/configs/releng ~/archiso/
cd archiso
su -c "mkarchiso -v -w <Pfad_zum_Arbeitsverzeichnis> -o <Pfad_zur_ISO> ~/archiso/releng"

Anschließend kann das Image wie folgt beschrieben mit dem dd Befehl auf einen USB-Stick übertragen werden.

Einrichtung des USB-Sticks

Laufwerksabfrage

sudo  fdisk -l

Übertragen des ISO-Images auf einen USB-Stick.

sudo  dd if=~/archiso/out/<name>.iso of=/dev/sdX bs=4M && sync


Achtung: Der nun folgende Artikelabschnitt ist noch weitgehend experimentell und sollte nicht unkritisch angewendet werden!

Eein persönlicher Arch Linux USB-Stick

Die beiden in den vorigen Abschnitten erstellten Images entsprechen bis auf die Aktualität den Images, die man auch von offizeillen Stellen herunterladen könnte. Will man allerdings Anpassungen vornehmen, was ja in den meisten Fällen der Sinn hinter dem ganzen Vorgehen ist, muss man Anpassungen vornehmen.

Ein Releng Profil anlegen.

cp -r /usr/share/archiso/configs/releng ~/archiso
cd archiso

Anschließend wird das Profil weiter angepasst.

Konfiguration des Releng Profils

  • pacman-conf - In der pacman.conf Datei können die Software Repositorien ausgewählt werden. Standardmäßig sind hier core,extra und community vorgewählt. Hier kann multilib eingebunden werden, oder irgendwelche nichtoffizeillen Repos (z.B. auch ein eigenes).
  • packages.x86_64 - In der packages.x86_64 Datei können zusätzliche Software Pakete oder Paketgruppen zeilenweise gelistet werden. Soll später eine grafische Oberfläche genutzt werden, können hier X11 und Treiber angegeben werden. Sie Sofwareliste muss nicht vollständig sein, da das System auch später noch beliebig ergänzt werden kann.
xorg-server 
xorg-xinit
xorg-drivers
lxqt
firefox
thunderbird

  • packages.i686 - Die 32 bit Architektur wird von Arch Linux nicht mehr offiziell unterstützt. Möchte man den USB-Stick für i686 lauffähig einrichten ist es empfehlenswert dies auf einem Rechner zu tun der mit Arch Linux 32 eingerichtet ist.
  • packages.both - Seit der Aufgabe der 32 bit Architektur ist diese Datei auch nicht mehr relevant und muss leer gelassen werden.

Anpassung des Profil-Skripts

Die nun folgende Änderung des Skriptes erlaubt es vor der Erstellung einer ISO-Datei zusätzliche Einstellungen vorzunehmen.


  • Tipp: Mehrmaliges Ausführen des mkarchiso-Befehls. - Der Vorgan hat einen eingebauten Schutzmechanismus, der die zweifache Ausführung verhindert, um Inkonsistenzen zu vermeiden. Hat man nach Ausführung noch Änderungen hinzuzufügen, empfiehlt es sich den gesamten ~/archiso/work-Ordner Ordner zu löschen oder einen anderen zu verwenden (Option -w, s.o.). Danach lässt sich das Skript erneut ausführen und der /work Ordner wird komplett neu erstellt.

Konfiguration des Filesystems

Durch das Kopieren des Profiles wurde ein neu erstellter Verzeichnisbaum eines typischen Systems im Ordner ~/archiso/work/x86_64/airootfs angelegt. Dieser kann direkt bearbeitet werden.

Die nun aufgeführten Konfigurationshinweise beziehen sich ausschließlich auf das Filesystem im Ordner ~/archiso/releng/airootfs (bzw. ~/archiso/baseline/airootfs)

Löschen von speziellen Skripten

Die ausschließlich für das Installations-Medium vorinstallierten Skripte können wieder entfernt werden.

# rm ~/archiso/releng/airootfs/etc/mkinitcpio-archiso.conf
Hinzufügen oder Ändern von Dateien

Die Möglichkeiten sind schier unbegrenzt. Zum Beispiel könnte man durch Editieren der Dateien ~/archiso/releng/airootfs/etc/passwd, ~/archiso/releng/airootfs/etc/shadow, ~/archiso/releng/airootfs/etc/group und ~/archiso/releng/airootfs/etc/gshadow einen User einrichten, oder ausgewählte Dateien aus dem eigenen /home-Ordner mit in das ISO übernehmen. Dazu bildet man einfach entsprechenden Verzeichnisbäume unter ~/archiso/releng/ nach.


Chrooten

Das neu erstellte System kann eingehängt und in einer Chrootumgebung gestartet werden. Die Einrichtung von Benutzern ist hier leider nicht möglich, da in der Chroot dbus und einige systemd Kommandos nicht funktionieren.

sudo mount -o bind ~/archiso/work/x86_64/airootfs /mnt
sudo arch-chroot /mnt /bin/bash

Anschließend wird die Chrootumgebung wieder verlassen

exit
sudo umount /mnt

Anschließend kann eine ISO-Datei erstellt werden

sudo ./mkiso.sh

Zusätzliche Tipps zur Einrichtung

Import der archlinux keys

# pacman-key --init
# pacman-key --populate archlinux

Aktivierung des graphischen Login (optional)

Ändern des 'systemd default target' von 'multi-user.target' in eines das ein graphische Login erlaubt.

# systemctl disable multi-user.target
# systemctl enable graphical.target

Siehe auch