8.1.1. Debian Live Config (MaSt)
Der erste Schritt, der getan werden muss, um Debian Live zu verstehen, ist die Art und Weise, wie das Buildsystem konfiguriert wird.
Das Paket live-config
gibt Einsicht über diese Konfiguration und liefert die nötige
Integration lb config
in das Kommandozeilen Tool lb
, welches über das Paket live-build
installiert wird.
Mit dem Befehl lb config
kann dann die Konfiguration des Debian Live Buildsystems erstellt werden.
1#!/usr/bin/env bash
2
3ARCH="${1:-amd64}"
4USERNAME=${2}
5DEBUG_IMAGE=${3}
6BUILD_SOURCE="false"
7
8if [ "${DEBUG_IMAGE}" = "0" ]; then
9 # Build source image if this is not a debug build
10 BUILD_SOURCE="true"
11 # Hide Boot log and show splash
12 BOOTAPPEND_RELEASE="quiet splash"
13fi
14
15lb config noauto \
16 --apt-recommends false \
17 --architectures ${ARCH} \
18 --archive-areas "main contrib non-free" \
19 --binary-filesystem ext4 \
20 --binary-images iso-hybrid \
21 --bootappend-live \
22 "persistence boot=live components ${USERNAME:+username=$USERNAME} \
23 locales=de_DE.UTF-8 keyboard-layouts=de $BOOTAPPEND_RELEASE" \
24 --bootloaders grub-efi \
25 --cache true \
26 --chroot-filesystem ext4 \
27 --distribution edux-bullseye \
28 --hdd-label EduxOS \
29 --iso-application EduxOS \
30 --iso-volume EduxOS \
31 --linux-flavours ${ARCH} \
32 --linux-packages "linux-image linux-headers" \
33 --mode debian \
34 --parent-distribution bullseye \
35 --security true \
36 --source ${BUILD_SOURCE} \
37 --source-images iso \
38 --system live \
39 --updates false \
40 --win32-loader false \
41 ${DEBUG:+--verbose}
In diesem Skript werden zuerst Variablen erstellt, die im Folgenden für die Konfiguration verwendet werden sollen. Das Skript liegt in der build-configuration unter scripts/config.
ARCH=“${1:-amd64}”: Hier wird die Architektur des Systems definiert.
Wenn man dieses Skript aufruft, wird das erste mitgegebene Argument verwendet.
Falls kein Argument geliefert wird, greift der default Fall: amd64.
Wenn man das System für eine ARM CPU baut, ruft man das skript mit config_cript arm64
oder
config_cript aarch64
auf.
USERNAME=${2}: Das zweite Argument ist der Benutzername, welcher später der Kernel Commandline übergeben wird. Dieser Benutzer hat automatisch root Rechte, weshalb dieses Argument am besten nur im Debug Modus verwendet werden sollte.
DEBUG_IMAGE=${3}: Eine Variable, welche den Typen des Targets definiert. Gesetzt wird die Variable über das dritte Argument im Aufruf des Skripts. Ist DEBUG_IMAGE 1, so handelt es sich bei dem Image um einen Debug Fall. Setzt man diese Variable auf 0, so handelt es sich um einen Release Fall, bei dem es extra Konfigurationen zu beachten gibt, wie das bauen eines Source Images.
BUILD_SOURCE: Wie schon beim DEBUG_IMAGE genannt, gibt es eine Möglichkeit, beim Bau auch direkt das source image zu bauen. Ist DEBUG_IMAGE gleich 1, so wird diese Variable auf “true” gesetzt, andernfalls bleibt die Variable auf 0.
BOOTAPPEND_RELEASE=“quiet splash”: Die Kernel Commandline wird in diesem Fall dynamisch
konfiguriert.
BOOTAPPEND_RELEASE sind extra Argumente, die der Kernel Commandline übergeben werden, wenn
ein Release Image gebaut wird.
quiet schaltet das Boot Log aus (kann durch dmesg
im nachhinein betrachtet werden) und
splash aktiviert das Zeigen des Splash screens.
Sind all diese Variablen definiert, kann der lb config
Befehl, wie oben aufgezeigt, ausgeführt
werden.
Der Befehl erstellt folgende Konfigurationsstruktur im aktuellen Verzeichnis (live-build/):
live-build
├── auto
├── cache
├── chroot
├── config
│ ├── apt
│ ├── archives
│ ├── bootloaders
│ ├── debian-installer
│ ├── hooks
│ ├── includes
│ ├── includes.binary
│ ├── includes.bootstrap
│ ├── includes.chroot_after_packages
│ ├── includes.chroot_before_packages
│ ├── includes.installer
│ ├── includes.source
│ ├── package-lists
│ ├── packages
│ ├── packages.binary
│ ├── packages.chroot
│ ├── preseed
│ └── rootfs
└── local
Um mehr Informationen über das live-config
Paket zu erhalten, kann der zugehörige man-db
Eingtrag nachgeschlagen werden: man live-config
.
Die Argumente bezüglich des Boot Prozesses (bootappend-live
, …) können im man-db
Eintrag
des Paketes live-boot
nachgeschlagen werden: man live-boot
.