Ich greife jetzt ein heißes Eisen an.
1.) Weil ich vor fast 15 Jahren mir vorgenommen habe, nie wieder so tief in Linux/Unix hineinzugehen.
2.) Weil die Erstellung einer Beschreibung selbst nicht leicht ist.
3.) Man ein bisschen Verständnis für Kern-Prozesse mitbringen sollte.
Eines vorweg: NIE OHNE BACKUP. Alles was ich schreibe bezieht sich auf Debian Trixie. Andere Distributionen können durchaus andere Namen Verzeichnisse verwenden. Ihr wisst unter Unix sind Namen Schall und Rauch.
Schauen wir einmal, wie gut mir die Erklärungen gelingen.
Der Kern
Ein Linuxkern besteht aus mehren Teilen. Da gibt es bei modernen Systemen den Bootloader EFI nebenbei noch GRUB und dann den Kern selbst und die Module. All das findet man im Verzeichnis /boot auf der 2. Partition. Die erste Partition wird unter /boot/efi gemountet und beinhaltet auf x64er-System den Bootloader selbst. Und damit findet der Bootloader nun zu seiner Partition und zum Kern selbst.
Der Bootvorgang
Dem einen oder anderem ist aufgefallen, dass da eine Zeile an Parameter mit übergeben wird, wenn der Bootvorgang startet. U. a. ist dort ein Begriff wie „vmlinux“ diese Datei liegt im Root-Verzeichnis und ist ein symbolischer Link auf den Kern im Verzeichnis /boot. Aktuell wäre das bei mir
„/vmlinuz -> boot/vmlinuz-6.12.48+deb13-amd64“
Und das ist der Linux-Kern in seiner vollen Pracht und Schönheit.
Und damit hätten wir schon einen geladenen Kern und Linux lauffähig. Der Rest der jetzt kommt ist nur für die Bequemlichkeit. z.B. wäre es ja ganz gut ein Notfallsystem zu starten. Dazu wird die Datei /initrd.img verwendet. Die wiederum ein Link in das boot-Verzeichnis ist. ( /initrd.img -> boot/initrd.img-6.12.48+deb13-amd64 ). Sollte ich jetzt ein Kommando wie
file /boot/initrd.img-6.12.48+deb13-amd64
absetzen. Dann wird mir mitgeteilt das dies ein cpio-Archiv ist. Ein cpio ist ein Sicherungsbefehl ähnlich dem tar-Kommando und wurde in diesem Fall verwendet um die zum Kern passenden Module zu speichern und diese brauchen wir als nächstes.
Die Module
Haben wir gesagt, dass der Kern aus dem vmlinux in den Speicher geladen wurde. So kann der Kern jetzt seine Module laden. Das sind alle Driver/Threads/Komponenten die nicht unmittelbar benötigt werden. Im Kern selbst sind nur ganz wenige Routinen (wie Speicher- , CPU- , Interruptverarbeitung, das Filesystem und der Schedular ) Alle weitere wird jetzt über Module nachgeladen.
Jetzt kommt unser normaler Bootvorgang den wir schon 1000de male gesehen haben. Bis dahin das der bunte Login-Schirm erscheint.
Die Module II
Wir sind angemeldet und sind auf die root-Ebene gewechselt, schauen wir uns einmal an welche Module wir geladen haben. Dazu gibt es ein paar Kommandos:
lsmod zeigt mir alle geladenen Module und ihre Speichergröße. Und welches Modul es benutzt.
rmod entfernt ein Modul
insmod fügt ein Modul ein.
Diese 3 Befehle arbeiten nur mit dem Speicher. Bei einem Blödsinn gibt es maximal einen Panic aber ich habe noch kein System beleidigt. Anders beim nächsten Befehl:
modprobe kann auf der einen Seite die 3 Befehle ablösen, aber auch die aktuelle Konfiguration ändern und dauerhaft speichern. Das kann dann bis zu einem unbrauchbarem System führen !!!!
Der Grund für den Artikel
Ich hatte bei Bookworm QEMU/KVM und VirtualBox im gleichem System laufen. Nach der Umstellung auf Trixie funktionieren die KVM nicht mehr mit VBoxes zusammen. Lästig, aber das wird sich auch noch finden lassen. Mit den dem Befehl rmod kvm-intel und rmod kvm bringt man VirtuellBox zum Laufen đ in dem man die kvm-module aus dem Kern wirft.

Noch keine Reaktion