Wie erstelle ich ein initrd-Image unter OpenSuSE Linux?

7
/usr/src/linux-3.2.1 # make install
scripts/kconfig/conf --silentoldconfig Kconfig
sh /usr/src/linux-3.2.1/arch/x86/boot/install.sh 3.2.1-12-desktop arch/x86/boot/bzImage \
                System.map "/boot"
You may need to create an initial ramdisk now.

- -

/boot # mkinitrd initrd-3.2.1-12-desktop.img 3.2.1-12-desktop

Kernel image:   /boot/vmlinuz-2.6.34-12-desktop
Initrd image:   /boot/initrd-2.6.34-12-desktop
Kernel Modules: <not available>
Could not find map initrd-3.2.1-12-desktop.img/boot/System.map, please specify a correct file with -M.
There was an error generating the initrd (9)

Siehe den Fehler während des Befehls mkinitrd. Was ist der Punkt, den ich vermisse?
Was bedeutet das?Kernel Modules: <not available>

OpenSuse 11.3 64 Bit

EDIT1:

Ich habe "Module gemacht".
Ich habe die System.mapDatei aus dem /usr/src/linux-3.2.1Verzeichnis in kopiert. Der /bootjetzt ausgeführte initrdBefehl gibt den folgenden Fehler aus:

linux-dopx:/boot # mkinitrd initrd-3.2.1.img 3.2.1-desktop

Kernel image:   /boot/vmlinuz-2.6.34-12-desktop
Initrd image:   /boot/initrd-2.6.34-12-desktop
Kernel Modules: <not available>
Could not find map initrd-3.2.1.img/boot/System.map, please specify a correct file with -M.

Kernel image:   /boot/vmlinuz-3.2.1-12-desktop
Initrd image:   /boot/initrd-3.2.1-12-desktop
Kernel Modules: <not available>
Could not find map initrd-3.2.1.img/boot/System.map, please specify a correct file with -M.

Kernel image:   /boot/vmlinuz-3.2.1-12-desktop.old
Initrd image:   /boot/initrd-3.2.1-12-desktop.old
Kernel Modules: <not available>
Could not find map initrd-3.2.1.img/boot/System.map, please specify a correct file with -M.
There was an error generating the initrd (9)
Wassermann_Girl
quelle
Welche Distribution? Und der Kommentar sagt MAI, mit Gentoo mache ich mir keine Gedanken darüber, sie sind nicht notwendig .
BSD
@bdowning sorry, habe es bearbeitet. :)
Aquarius_Girl

Antworten:

8

Sie sollten verwenden mkinitramfs, nicht mkinitrd. Das eigentliche initrd-Format ist veraltet und heutzutage wird stattdessen initramfs verwendet, obwohl es immer noch als initrd bezeichnet wird. Besser noch, einfach benutzen update-initramfs. Außerdem müssen Sie ausführen make modules_install, um die Module zu installieren.

psusi
quelle
Übrigens, ich werde eine separate Frage für den Unterschied zwischen initrd und initramfs herausarbeiten, es wird eine gute Frage und Antwort geben :-)
Nikhil Mulley
mkinitramfsgibt einen Befehl, der bei Suse nicht gefunden wurde.
Aquarius_Girl
@ AnishaKaul, ich denke Suse hat ein anderes Werkzeug, um es zu bauen. Debian-basierte Distributionen verwenden das Paket initramfs-tools.
Psusi
1
Gelöst: Der Grund für diese Fehler war, dass ich vor dem Ausführen versucht habe, ein initrd-Image zu erstellenmake modules_install . Also, jetzt lief ichmake modules_installund initrd Image wurde automatisch in / boot erstellt .
Aquarius_Girl
SCHLUSSFOLGERUNG: Ab Kernel 3 müssen wir kein initrd-Image erstellen, es wird danach automatisch erstelltmake modules_install.
Aquarius_Girl
2

Mit OpenSUSE können Sie verwenden

yast2 sysconfig

Füllen Sie 'INITRD_MODULES' mit dem Modul aus, das Sie benötigen, und bewerben Sie sich.

Hieu
quelle