Binden Sie initramfs in den vorhandenen Kernel ein

1176

Ist es möglich, ein initramfs-Image in den vorhandenen Kernel einzubetten, ohne das Ganze neu kompilieren zu müssen? Ich habe keine Ressourcen dafür.

4
Ich glaube nicht Warum brauchen Sie die initramfs in Ihrem Kernel? Ich kann mir vorstellen, dass Sie bereits die Option in menuconfig gesehen haben, ein Quellverzeichnis anzugeben, das die initramfs während der Kompilierung in den Kernel einbeziehen würde. Wenn Sie "Einbetten" sagen, nehme ich an, Sie haben die Initramfs und den Kernel in einer einzigen Datei, richtig? Vielleicht ist es "möglich", aber ich würde sagen, dass es nicht machbar ist. Sie würden das Kernel-Binärprogramm hacken und müssen zunächst noch die initramfs erstellen. Ich bezweifle, dass es funktionieren würde. Jacob Margason vor 8 Jahren 0
@ JakobMargason Ich möchte EFIstub booten und habe meine initramfs auch signiert. vor 8 Jahren 0
(1) Ein initramfs ist nicht dasselbe Dateisystem wie eine * "Initial Ramdisk" * oder Initrd. Hierbei handelt es sich um zwei verschiedene Schemata, um die gleiche Funktionalität zu implementieren, sie sind jedoch nicht zu 100% austauschbar. (2) Das initramfs muss mit dem Kernel verbunden sein und existiert als ein einzelnes Bild. Initrd ist normalerweise ein vom Kernel getrenntes Image und muss zum Booten mit dem Kernel geladen werden. Welches von Ihnen, Initramfs oder Initrd, verwenden Sie tatsächlich? Siehe https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt sawdust vor 8 Jahren 0
@sawdust korrigiert vor 8 Jahren 0
Das initramfs muss mit dem Kernel verbunden sein. Es kann jedoch mit einem "externen initramfs-Abbild" (einem cpio.gz-Archiv, das wie eine initrd geladen wird) erweitert werden, sofern der Kernel mit initramfs-Unterstützung erstellt wurde. Hat Ihr Kernel also bereits die Initramfs-Unterstützung aktiviert? sawdust vor 8 Jahren 0
@sawdust Es tut, ich lade initramfs derzeit mit grub. vor 8 Jahren 0
* "Ich lade initramfs derzeit mit grub." * - Dann müssen Sie die Funktion "externes initramfs-Image" verwenden. Lesen Sie das Kernel-Dokument (ich habe den Link oben bereitgestellt) über "external initramfs image". Wenn Sie die vorhandenen initramfs in Ihrem Kernel ersetzen möchten, müssen Sie den Kernel erneut verknüpfen. Dies ist kein vollständiger Build, aber ich habe es nur in einer Kernel-Build-Umgebung getan. sawdust vor 8 Jahren 0
@sawdust Ich weiß deine Hilfe wirklich zu schätzen, aber ich habe nichts gefunden, was die Neuverknüpfung des Kernels angeht. Ich nehme an, ich muss in erster Linie einen vollständigen Build machen, um das Image in der Build-Umgebung ersetzen zu können. vor 8 Jahren 0

0 Antworten auf die Frage