Re: Debian

OK, es hat funktioniert. Ich konnte Debian vollständig so wie sonst über GRUB-UEFI die Konsole laden

Das init in der dann folgenden (ash?) Konsole wurde nicht zum Erfolg. Es funktionierte nicht. Aber ich habe ich von dem Skript einiges übernommen.

Zunächst habe ich den Pfad zum eigentlichen Kernel angegeben. Und zum System zum Root-System

Wir müssen ja bedenken. Wir haben den Kernel zwei Mal. Und auch das initramd ist eigentlich nur eines : Es ist ein kleiner gepackter Teil, eine Abbildung des Root Verzeichnisses. Es existiert doppelt. Ein initramfs ist ein Abbild eines Dateisystems, das init steht dafür, dass es das init am Anfang betrifft.

Es ist gepackt und wird vom Kernel entpackt. Nun gibt es verschlüsselte Dateisysteme. Mit lvm. Überhaupt gibt es andere Dateisysteme.

Es gibt Module, die in den Kernel von Anfang an geladen werden können. Diese ermöglichen das Lesen eines Dateisystems schon zur Boot-Zeit. Doch: Eigentlich lässt sich ein Dateisystem erst lesen, wenn der Kernel gestartet ist.

Rein theoretisch ist jedes Dateisystem denkbar und rein theoretisch gibt es unendlich viele.

Es gibt Netzwerkdateisysteme und wir können unsere eigenen Schreiben, die irgendwie funktionieren. Wir müssen sie halt in den Kernel einbinden.

Das ist das berühmte mount. Dafür müssen wir dem Kernel eine Schnittstelle zur Verfügung stellen. Es gibt auch FTP, unter Linux lässt sich das Einbinden, wie alles andere

Nur, für den Kernel am Anfang geht das nicht. Es geht, deswegen gibt es: Module.

Nur, das ist was anderes. Das ist dafür da, dass der Kernel kann. Problem: der Kernel kann ein Dateisystem lesen, aber der Kernel muss ja erst da sein. Aus solchen Gründen gibt es ein initrd - ein initramfs. Nicht zu verwechseln mit initd - dem kernprozess, der alle anderen weiteren lädt.

Besonders blöd wird es, wenn es verschlüsselt wird. Deswegen gibt es eine Partition, neben initrd, indem sie das noch mal auftaucht, die garantiert lesbar ist, FAT32. Warum muss die nicht verschlüsselt sein?

Nun verschlüsselung bedeutet. Ich kann das Dateisystem nicht lesen. Den Kernel muss ich nicht verschlüsseln. Laden sie sich Linux runter, der Kernel ist immer dabei, da gibt es keine Geheimnisse.

Also, das init in der Konsole ash, die dann kam zeigte nicht die gewünschte Wirkung, aber schauen wir hier rein

 load_video
 insmod gzio
 if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
 insmod part_gpt
 insmod ext2
 search --no-floppy --fs-uuid --set=root 2ddb9013-cdc0-4dfe-b1a0-551ba99f3e7c
 echo 'Loading Linux 5.10.0-15-amd64 ...'
 linux /vmlinuz-5.10.0-15-amd64 root=/dev/mapper/git--vg-root ro  quiet
 echo 'Loading initial ramdisk ...'
 initrd /initrd.img-5.10.0-15-amd64

Ich habe dazu noch angegeben:

root=/dev/mapper/git--vg-root

Das ist wichtig. Und war wohl das ausschlagebende, aber auch:

 insmod gzio
 insmod part_gpt
 insmod ext2

Das versteht Grub. Ich weiss nicht, was von beiden jetzt wichtig war. Aber ich will es nicht ausprobieren.

Übrigens - die lieben Leute, ein Betriebssystem schreiben ist gar nicht so schwer. Klingt komisch. Aber: Zunächst mal, müssen sie wissen, dass sie auf ihren Computer hören müssen. Der Prozessor und die Hardware, sagt, was sie will.

Die Befehle des Prozessors sind wichtiger als man meint. Sie müssen nur ein Programm in Computerbefehlen schreiben, was den PC startet, und das ist relativ einfach, weil hier geben IBM und Intel den Ton an und dann sollte es gewisse Dinge können, wie auf die Festplatte schreiben und das vernünftig anordnen. Lassen sie sich inspirieren, machen sie ihre eigenen Versuche, wie, wo, was steht. Und dann sollte ihr OS noch eines können: Programme starten.

Dann hätten sie schon eines. Was die Leute sich im Nachhinein bei Grub dachten, ist ihre Idee - aber auch, das versteht man schnell

wer einen Überblick über das hat, was ein Betriebssystem ist, der wird auch schnell verstehen, was so ein Kernel tut. Da ist natürlich viel drin implementiert.

Image 20230928_234901
Image 20230928_234956
Image 20230928_235323
Image 20230928_235357
Image 20230928_235452
Image 20230928_235645
Image 20230928_235648