Patchen des Kernels, um das Booten ohne initrd zu ermöglichen

Patchen des Kernels, um das Booten ohne initrd zu ermöglichen

Die erste Antwort von 'Warum verwendet Linux beim Booten eine Initial Ram Disk?' besagt, dass das initrd/initial ram-Dateisystem verwendet wird, um Treiber zum Mounten des echten Root-Dateisystems bereitzustellen. Es heißt auch, dass esmöglichum diese Treiber in den Kernel zu patchen, sodass initrdkein oder ein anfängliches RAM-Dateisystem erforderlich ist, gab aber keine Erklärung dazu. Wie kann ich den Kernel (neueste Version) patchen, um ein EXT4-Dateisystem im Stammverzeichnis ohne die Hilfe von zu mounten initrd, und wird diese Lösung unterstützen UUIDs?

Antwort1

Sie müssen nichts patchen. Sie müssen den Kernel nur selbst konfigurieren und kompilieren. Dies ist eine fortgeschrittene Aufgabe und daher nichts für Anfänger. Der Trick besteht darin, den Kernel so zu konfigurieren, dass er nur Ihre Hardware unterstützt und alles innerhalb des Kernels und nicht als Modul kompiliert (zumindest die zum Booten erforderlichen Treiber: Festplattencontroller, Dateisystem usw.).

Es gibt viele Tutorials, wie Sie Ihren Kernel konfigurieren und kompilieren

Also googeln Sie einfach „Kernel-Kompilierung {Ihre Distribution}“. Es ist wichtig, das richtige Tutorial für Ihre Distribution zu verwenden. Die von Ihnen verwendete Distribution erwartet möglicherweise, dass einige Funktionen nur im „Distro“-Kernel und nicht im „Vanilla“-Kernel verfügbar sind. Das richtige Tutorial verweist Sie auf die richtigen Quellen.

Sie können UUIDs in /etc/fstabGRUB verwenden, nachdem Sie initrd/initramfs entfernt haben.

Ich verwende beispielsweise Gentoo und habe initrd/initramfs noch nie verwendet. Jedes Mal, wenn der neue Kernel verfügbar ist, muss ich ihn selbst konfigurieren und kompilieren. Ich verwende Grub mit root=/dev/sdb4Kernel-Parametern, aber in fstab verwende ich UUIDs.

verwandte Informationen