Wo liegt der Kernel?

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Lage des Kernels

/boot

Alle Bestandteile des Kernels liegen in /boot. Zu jeder installierten Kernel-Version gehört dort ein kompletter Satz aus vier Dateien, die sich nur in der Versionsnummer unterscheiden.

Inhalt von /boot anzeigen
  • ls -l /boot
Laufende Kernel-Version
  • uname -r

Das Namensschema

vmlinuz-5.10.0-20-amd64
        |      |  |
        |      |  +-- Architektur
        |      +----- Debian-ABI-Revision
        +------------ Upstream-Version

Der Kernel

vmlinuz-5.10.0-20-amd64

Das eigentliche Kernel-Image in komprimierter Form – daher das z am Ende. Der unkomprimierte Kernel heißt vmlinux und wird nicht mitgeliefert. GRUB lädt diese Datei in den Speicher, sie entpackt sich selbst.

Dateityp und Version prüfen
  • file /boot/vmlinuz-5.10.0-20-amd64

Die Ramdisk

initrd.img-5.10.0-20-amd64

Ein provisorisches Wurzeldateisystem (initramfs), das der Bootloader zusammen mit dem Kernel lädt. Es enthält genau die Module und Werkzeuge, die nötig sind, um an die echte Wurzelpartition heranzukommen – etwa Treiber für den Plattencontroller, RAID, LVM oder LUKS. Diese Datei stammt nicht aus dem Paket, sie wird lokal auf dem System erzeugt.

Inhalt anschauen
  • lsinitramfs /boot/initrd.img-5.10.0-20-amd64 | less
Neu erzeugen
  • update-initramfs -u -k 5.10.0-20-amd64

Die Konfiguration

config-5.10.0-20-amd64

Die Konfiguration, mit der genau dieser Kernel übersetzt wurde. Damit lässt sich nachschlagen, ob eine Funktion fest eingebaut (y), als Modul (m) oder gar nicht vorhanden ist. Für den eigenen Kernelbau ist sie die übliche Ausgangsvorlage.

Nachschlagen, wie btrfs eingebaut ist
  • grep -i btrfs /boot/config-$(uname -r)
Als Vorlage für den Selbstbau übernehmen
  • cp /boot/config-$(uname -r) .config

Die Symboltabelle

System.map-5.10.0-20-amd64

Eine Liste aller Kernel-Symbole (Funktionen und Variablen) mit ihren Speicheradressen. Sie wird gebraucht, um bei einem Oops oder einer Panic aus einer nackten Adresse wieder einen Funktionsnamen zu machen. Im laufenden System stehen dieselben Informationen in /proc/kallsyms.

Oops

Ein Fehler im Kernel, den er abfangen kann. Der betroffene Vorgang wird abgebrochen, das System läuft weiter.

Panic

Ein Fehler, nach dem der Kernel nicht weiterarbeiten kann. Das System bleibt stehen.

Weiteres in /boot

Bootloader-Konfiguration
  • /boot/grub/grub.cfg
EFI-Partition bei UEFI-Installation
  • /boot/efi
Symlinks im Wurzelverzeichnis, die auf den aktuellen Kernel zeigen
  • ls -l /vmlinuz /initrd.img

Paketzugehörigkeit

Kernel, Konfiguration und Symboltabelle kommen aus dem Paket linux-image-5.10.0-20-amd64, die Ramdisk wird beim Installieren lokal gebaut.

Zu welchem Paket gehört die Datei?
  • dpkg -S /boot/vmlinuz-5.10.0-20-amd64
Welche Kernel sind installiert?
  • dpkg -l 'linux-image-*'
Alte Kernel entfernen, wenn /boot voll läuft
  • apt autoremove --purge