Booten eines Linux-Kernels ohne initrd möglich?

4661
lang2

Kann man heutzutage einen Linux-Kernel (zB 2.6.35) ohne initrd booten? Ich scheine mich daran zu erinnern, dass dies früher möglich ist (Anfang 2.6.x und 2.4). Ich meine, theoretisch, wenn ein Kernel alle Hardware-Unterstützung (keine Module) enthält, braucht er keinen frühen Benutzerplatz, oder?

4
Sie könnten [zumindest 2007] (http://kerneltrap.org/node/7874) und [2008] (https://bbs.archlinux.org/viewtopic.php?id=52968). Ich würde sagen, solange Sie alle notwendigen Dateisystem- und Hardwaretreiber eingebaut haben. new123456 vor 12 Jahren 1
Wenn ich mich recht erinnere, habe ich Gentoo fine mit dem neuesten stabilen Kernel ohne Module oder initrd vor einigen Monaten gebootet, also sollte es jetzt auch funktionieren. AndrejaKo vor 12 Jahren 0
@AndrejaKo: Ich habe es versucht, aber der Kernel konnte kein / dev / sda1-Gerät finden, obwohl ich SATA-Unterstützung kompiliert habe. Wenn es keine initrd gibt (mdev oder udev), wer ist für die Erstellung dieser Geräte verantwortlich? lang2 vor 12 Jahren 0
@ lang2 Hast du auch Dateisystemtreiber kompiliert? Das habe ich immer bekommen, wenn ich sie vergessen habe. AndrejaKo vor 12 Jahren 0

1 Antwort auf die Frage

9
Paul

Ich benutze nicht initrd. Es muss lediglich geschehen, dass Sie über alle Treiber verfügen, die zum Booten Ihres Systems in den Kernel und nicht als Module erforderlich sind.

Wenn Sie gentoo verwenden, ist das Erstellen des Kernels und der Treiber Teil des Installationsprozesses. Es ist selbstverständlich, wenn Sie in Ihr System bootabhängige Hardware einbauen, wenn Sie den Treiber zuerst zum Kernel hinzufügen. Es ist auch eine Selbstverständlichkeit, alles zu deaktivieren, was Sie nicht brauchen - denn es macht keinen Sinn, eine Reihe von Treibern zu kompilieren, selbst wenn Sie keine Module verwenden.

Dieser Prozess ist auf einer Distribution wie Ubuntu konzeptionell schwieriger, wo der Kernel als Paket verwaltet wird und alles modularisiert ist (es muss, um auf vielen verschiedenen Systemen sofort funktionieren zu können). Es lohnt sich oft nicht.

Vielen Dank. Ich möchte in diesem Fall immer noch verstehen, wer die Gerätedatei / dev / sda erstellt. lang2 vor 12 Jahren 0
Der Kernel wird, vorausgesetzt er hat die richtigen Treiber für den Festplattentyp und das Festplattenmodell. Es muss der Kernel sein, da es nichts anderes gibt. Sobald der Kernel geladen ist, ist das erste, was er tun muss, der Zugriff auf inittab (abhängig von der Distribution) von / dev / sda1 (wenn dies die Root-Partition ist). Paul vor 12 Jahren 0