das ist super kompliziert und ich habe das nicht wirklich alles verstanden, was Knoppix beim Booten macht und womöglich auch viel schon wieder vergessen.
Betrachte dir mal die DVD.
Ich meine, in einem Dateimanager.
|
Quellcode
|
1
2
|
pit@Celsius ~:- > ls /media/md1
autorun.bat autorun.inf autorun.pif boot cdrom.ico efi index.html KNOPPIX
|
Unabhängig davon, dass die DVD selbst schon sehr komplex ist, damit sie von UEFI und BIOS starten kann und den passenden Modus dazu bestimmt, enthält sie auch oben gelistete Dateien und Ordner. Die Dateien sind hauptsächlich zum Ausführen einer Autostart-Funktion unter Windwos, wenn die DVD hier eingelegt wird.
Die beiden Verzeichnisse boot und KNOPPIX werden direkt zum Booten benutzt.
|
Quellcode
|
1
2
3
4
|
pit@Celsius ~:- > ls /media/md1/boot/isolinux/
balder.img bootefi.msg german.kbd ifcpu64.c32 ldlinux.c32 libutil.c32 logo.16 menu.c32 syslnx64.cfg vesamenu.c32
boot.cat f2 gfxboot.c32 isolinux.bin libcom32.c32 linux memdisk minirt.gz vesa.c32
boot.msg f3 grub.exe isolinux.cfg libmenu.c32 linux64 memtest syslnx32.cfg vesainfo.c32
|
Da liegt also ein Isolinux, ein spezielles System, um von optischen Medien zu booten. Knoppix nutzt dies auch vom Stick (dann als syslinux), falls es hierhin installiert wird (was sehr zu empfehlen ist).
Es gibt da alle Dateien, die zum frühen Booten gebraucht werden. Die Texte und Bilder etwa, das Bootmenü und so. Es gibt darin isolinux.cfg und das bestimmt den Rahmen so ein wenig. Ich zitiere mal daraus einige Zeilen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# KNOPPIX 8.1 isolinux/syslinux boot config
DEFAULT auto
APPEND lang=de apm=power-off initrd=minirt.gz nomce hpsa.hpsa_allow_any=1 loglevel=1
TIMEOUT 100
KBDMAP german.kbd
PROMPT 1
F1 boot.msg
F2 f2
F3 f3
DISPLAY boot.msg
LABEL auto
KERNEL ifcpu64.c32
APPEND knoppix64 -- knoppix
LABEL knoppix
KERNEL linux
APPEND lang=de apm=power-off initrd=minirt.gz nomce hpsa.hpsa_allow_any=1 loglevel=1
LABEL adriane
KERNEL linux
APPEND lang=de apm=power-off video=640x480 initrd=minirt.gz nomce hpsa.hpsa_allow_any=1 loglevel=1 adriane
LABEL knoppix64
KERNEL linux64
APPEND lang=de apm=power-off initrd=minirt.gz nomce hpsa.hpsa_allow_any=1 loglevel=1
|
Ich will nicht auf alles eingehen, teilweise ist das wohl auch selbsterklärend, sondern die Zeile heraus greifen: KERNEL ifcpu64.c32
Dieses ifcpu64.c32 liegt auch im Verzeichnis und es ist ein kleines Programm, das nachsieht, ob die CPU 64Bit hat oder 32Bit und dann einen entsprechenden Wert zurück meldet.
Unter LABEL knoppix wird dann ein 32Bit Kernel gestartet und unter dem LABEL knoppix64 ein 64Bit Kernel. Die beiden Kernel liegen ebenfalls hier im Verzeichnis und sie heißen linux und linux64.
Nun langt es aber nicht, nur einen Kernel zu laden, aber immerhin, das ist eine wichtige Hürde. Man sieht, dass immer auf initrd=minirt.gz verwiesen wird. Die minirt.gz ist das, was Knoppix nun bootet. Man kann es als eine Art gepacktes Start-Script verstehen und es holt sich nun weitere Teile des Systems und zwar auch aus dem Verzeichnis KNOPPIX, denn hier liegen die beiden Images, aus denen Knoppix heute besteht.
|
Quellcode
|
1
2
3
|
pit@Celsius ~:- > ll /media/md1/KNOPPIX | grep KNO
-r--r--r-- 1 root wheel 4199834048 14 Mai 2018 KNOPPIX
-r--r--r-- 1 root wheel 437434831 14 Mai 2018 KNOPPIX1
|
In diesen gepackten Dateien liegt Knoppix und wird beim Booten zusammengesetzt. Außerdem erfolgt einige HW-Erkennung und Festlegungen von Treibern und so weiter.
Das alles ist viel Arbeit und sehr kompliziert und dabei gibt es auch einige Ausgaben des Systems. Eine der allerersten ist eben das Laden des passenden Kernels und je nachdem vielleicht auch eine Angabe über UEFI oder eben nicht.
In vielen Systemen unterdrücken die Distributoren solche Systemmeldungen beim Start und zeigen lieber bunte Bilder. Ich mag die Meldungen, obwohl die heute ja so schnell durchlaufen, dass man nur wenig erkennen kann.
Das Laden eines Kernels steht übrigens immer ganz zu Anfang und nicht nur in Knoppix kann man sich die Verwendung unterschiedlicher Kernel vorstellen. Gerade in der Linux-Welt, wo die Kernel ja unabhängig vom System entwickelt werden, können die auch ausgetauscht werden. In einem Bootmenü kann man dann unter Umständen wählen, ob man den neuen Kernel will oder vielleicht doch noch mit dem alten arbeitet.
In Knoppix 7.7 hatte Klaus Knopper zusätzlich ein wenig mehr Information angezeigt. Diese Early-Konsole und decompress-Meldung ist zumindest bei 8.2 nicht mehr drin. Da kommt lediglich ein kleiner Hinweis, welcher Kernel geladen wird.