Wenn Sie sich fragen, ob Sie einen Kernel einfach "über" ein vorhandenes System installieren oder aktualisieren können, ohne eine Reihe anderer Programme zu installieren?
Der Linux-Kernel ist eine Binärdatei, die normalerweise vmlinuz-x.x.x-x-name
im boot
Verzeichnis (das normalerweise eine separate kleine Partition am Anfang der Festplatte ist) genannt wird, wobei die x eine Versionsnummer sind. "name" ist nur ein gewählter Name für den Kernel, der zur Kompilierungszeit festgelegt werden kann. Sie können ihn verwenden, um den Typ der Maschine oder Architektur, für die der Kernel ist, oder einen anderen Grund zu bestimmen.
Es wird zur Startzeit von einem Bootloader geladen, der normalerweise GRUB
über den Bootcode im MBR aufgerufen wird, der vom BIOS-ROM aufgerufen wird. Sobald es geladen ist, wird es nicht "offen gehalten" oder speziell geschützt. Sie können diese Datei also durch einen anderen funktionierenden Kernel ersetzen. Hat GRUB
aber eine coole Funktion, mit der Sie mehrere Kernel zum Booten auswählen können. Es ist also ziemlich klug, Ihren zusätzlichen Kernel zu dieser Liste hinzuzufügen, aber den ursprünglich bekannten Kernel für den Fall, dass etwas schief geht, beizubehalten.
Ich glaube, fast alle Distributionen machen einen "modularen" Kernel, in dem sich die Gerätetreiber in separaten Dateien befinden. Daher benötigen die meisten Kernel ein Dateisystem mit Treibern, die beim Booten zur Verfügung stehen, und dafür ist ein "initrd" (anfänglicher RAM-Datenträger) oder "initramfs" gedacht. GRUB
Lädt den Kernel an einem Speicherort und die initrd an einem anderen Speicherort und springt zum Kernel, der angibt, wo sich die initrd befindet, und startet Linux.
Treiber können auch in den Kernel "eingebaut" werden und werden daher automatisch geladen und sind verfügbar, wenn der Bootloader das vmlinuz
Image lädt . Kernel, die auf verschiedenen Systemen (wie z. B. den meisten Distributionen) funktionieren sollen, minimieren in der Regel die in den Kernel eingebauten Komponenten, da die verfügbare Hardware später im Startprozess gescannt wird und nur Module geladen werden, die die vorhandene Hardware repräsentieren.
Es gibt Tools zum Ändern und Erstellen von initrds. Debian hat nette Werkzeuge und ich kann mir vorstellen, dass dies auch bei anderen Distributionen der Fall ist.
Wenn Sie also einen neueren Kernel von kernel.org herunterladen und ihn kompilieren, um ein neues Kernel-Binär-Image zu erstellen, müssen Sie eine initrd mit Treibern erstellen oder aktualisieren, die mit diesem Kernel funktionieren. Die alte initrd funktioniert nicht, da die Treiber mit der Version des laufenden Kernels übereinstimmen müssen.
Die initrd-Datei hat einen initrd.img-x.x.x.x-name
ähnlichen Namen wie der Kernel und kann nach dem Booten wie der Kernel ersetzt werden. Best Practice besagt, dass Sie eine bekannte funktionierende initrd erst dann löschen, wenn Sie wissen, dass Sie Ihren neuen Kernel + initrd erfolgreich booten können.
Ich hoffe, das bietet einen gewissen Kontext.
Wenn Sie nach einer "Barebones" -Linux-Installation suchen, auf der nur wenige oder gar keine zusätzlichen Programme installiert sind, hat meine Lieblingsauswahl immer das Debian- netinst
Image installiert . Ziemlich viel Sie haben nur die grundlegendsten Werkzeuge, die benötigt werden, um eine Befehlszeilentextkonsole und nano
als Texteditor auszuführen .