/media/sda-magnetic/david/david2/david2/Dokumente/informatik/linux/learn-linux/linux3.txt


Bootstrap-Prozess
UEFI - Unified Extensible Firmware Interface
Units
BusyBox
Systemd-Init
NVRAM - NVRAM (Abk. für englisch Non-Volatile Random-Access Memory) ist in der Elektronik ein nichtflüchtiger Datenspeicher, der auf RAM basiert und dessen Dateninhalt ohne externe Energieversorgung erhalten bleibt. 
EFI - Systempartition (ESP)


1.) Bootstrap-Prozess
2.) Systemd-Init

Bootstrap-Prozess (4 Stufen)
1. Stufe) das UEFI
2. Stufe) der Bootloader 
3. Stufe) Mini-Debian 
4. Stufe) normales Debian 

Systemd-Init 
1.) Der Rechnername
2.) Das Dateisystem
3.) Initialisierung der Netzwerkschnittstellen


1.) Bootstrap-Prozess (4 Stufen)
1.1. Stufe) das UEFI
1.2. Stufe) der Bootloader 
1.3. Stufe) Mini-Debian 
1.4. Stufe) normales Debin 

2.) Systemd-Init 
2.1.) Der Rechnername
2.2.) Das Dateisystem
2.3.) Initialisierung der Netzwerkschnittstellen


Quellen:
- Debian Linux Kernel Handbook
- bootup (7)
- boot (7)


1.) UEFI 
- Unified Extensible Firmware Interface
- definiert u.a. einen Boot-Manager 
- Bootkonfiguration gespeichert in NVRAM 
- NVRAM: NVRAM (Abk. für englisch Non-Volatile Random-Access Memory) ist in der Elektronik ein nichtflüchtiger Datenspeicher, der auf RAM basiert und dessen Dateninhalt ohne externe Energieversorgung erhalten bleibt. 
- EFI System Partition
- The EFI (Extensible Firmware Interface) system partition or ESP is a partition on a data storage device (usually a hard disk drive or solid-state drive) that is used by computers having the Unified Extensible Firmware Interface (UEFI). 

2.) Bootloader 
- Lädt: System-Kernel-Image
- Lädt: initrd-Image 

- initrd-image: Abbild des Wurzeldateisystems 
- das initrd-image der Version 5.x ist ein initramfs (initial RAM Filsystem) Image 

Bootloader:
- GRUB UEFI, Paket: grub-efi-amd64 (Intelligenter Bootloader) 
- GRUB 2, Paket: grub-pc
- GRUB 2, Paket: grub-rescue-pc
- Lilo, Paket: lilo 
- Isolinux: syslinux 
- Syslinux: syslinux
- Loadlin: loadlin 
- MBR von Neil Turton: mbr 


Konfiguration:

/boot/grub/grub.cfg

Bedeutung: 
- Geladene GRUB2-Module (gzio, part_gpt, ext2)
- Verwendetes Root-Dateisystem, mit UUID
- Pfad-Kernelimage /boot/vmlinuz-5....-amd64
- Verwendeter Kernel-Boot-Parameter
- Pfad zum Initrd-Image im Rootsystem /boot/initrd.img- -amd64 


3.) Das Mini-Debian-System heißt eigentlich: initrd oder initramfs 

/init wird als erstes ausgeführt

Programm: Userspace 


Entweder:
/init = Shellscript: Wenn das initramfs durch initramfs-tools erstellt wurde 
/init = systemd Binärprogramm, wenn initramfs durch dracut erstellt wurde 

4.) Das Normale Debian-System 

init PID=1

Standardpfad: /sbin/init 

Variable mit Pfad: init 

Boot-Hilfsprogramme: 

- systemd 
- systemd-sysv
- init-system-helpers 
- initscripts 
- sysvinit-core 
- sysv-rc
- sysvinit-utils 
- lsb-base 
- insserv 
- uswsusp
- kexec-tools
- systemd-bootchart
- bootchart2
- pybootchartgui
- mingetty
- mgetty 



systemd-init-Prozess 

systemd 

1.) init 
2.) systemd 

systemd-system.conf 
systemd-resource-control

/lib/systemd/system
/etc/systemd/system
/run/systemd/system

Regeln: 

1. Wants=
2. Requires=
3. Before=
4. After=
5. BindsTo=
6. Requisite=
7. Description=

Zum Beispiel: 
- Description: Pflicht
- Requires: Welche andere Unit wird mitgestartet
- BindsTo: Harte Variante von Requires

Abhängigkeiten 

UNITs
In systemd ist eine Organisationseinheit eine "Unit"
z.B. für 
- Dienste
- Timer 
- Einhängepunkte
- Sockets
- Swap-Speicher
- Geräte 

Alle haben Einträge ähnlich wie INI-Dateien 

Bestehen aus Sektionen 

1.) systemd 
2.) Units
3.) Sektionen 

In den Sektionen stehen Schlüsselparameter, Direktiven 

1.) systemd 
2.) Units
3.) Sektionen 
4.) Direktiven 

systemweite Units 

/etc/systemd/system 
/lib/systemd/system 

User Units - Benutzerbezogene Units 



*.service beschreibt einen Prozess 
*.device beschreibt ein Gerät 
*.mount
*.automount
*.swap
*.path
*.socket
*.timer
*.slice
*.scope 
*.target 
*.network

Eigene UNITS 

[Unit]
Descriptio=Meine Unit 

[UNIT-TYP]

[Install]
WantedBy=...



WantedBy:
- multi-user.target
- graphical.target
- rescue.target
- reboot.target 
- poweroff.target
- default.target

angelegte: Unit: Aktivieren, deaktivieren 

Install legt fest, wann die Unit gestartet wird, früher run levels
/lib/systemd/system/default.target 

Rechnername in /etc/hostname 

systemd-hostnamed.service 

Dateisystem: 

/etc/fstab 

Verschlüsset

/etc/crypttab 

Software-RAID

/etc/mdadm.conf 



Kernelmeldungen 

dmesg -n3

0 KERN_EMERG
1 KERN_ALERT
2 KERN_CRIT
3 KERN_ERR 
4 KERN_WARNING
5 KERN_NOTICE 
6 KERN_INFO
7 KERN_DEBUG 

Systemmeldungen:

systemd-journal.service 

udev-System: Automatisches Erkennen von Hardware 

modprobe: Kernel-Module hin zu fügen 

/etc/modules 

lsmod 
modinfo 
depmod 


/etc/init.date

case "$1" in 
    start) 
        echo "Starting foo"
        sudo -u foo-user bash -c ...
    stop)
        echo "Stopping foo"
        sudo -u foo-user bash -c ...
        sleep 2
    *)
        echo "Usage: /etc/init.d/foo {start|stop}"
        exit 1
esac
exit 0


/etc/init.d

start-stop-daemon
start-stop-daemon --start
start-stop-daemon --start --exec 
service bla start
service bla stop
service bla install 
systemctl daemon-reload
journalctl -xe