initrd modifizieren

Software besorgen und anwenden
Post Reply
Message
Author
Gogogo

initrd modifizieren

#1 Post by Gogogo »

Hi,

ich möchte meine initrd modifizieren (einen Treiber hinzufügen, der zum Bootzeitpunkt geladen werden muss) was allerdings nicht klappt. Meine Schritte:

initrd.img nach initrd.img.gz umbenennen und entpacken
mkdir tmp
mount -o loop initrd.img /path/to/tmp

Dann bekomme ich diese Fehlermeldung:

mount: Sie müssen den Dateisystemtyp angeben

Was geht hier schief?

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#2 Post by jochen »

Ganz einfach: Deine initrd ist aller Wahrscheinlichkeit nach kein Filesystem-Image mehr, sondern ein CPIO-Archiv. Auspacken geschieht mittels

Code: Select all

cpio -ivd <ungezippte-initrd
Allerdings würde ich auf die Distributionsmittel für diesen Zweck greifen. Normalerweise reicht es, in eine Datei wie /etc/modules die zu ladenden Module einzutragen und dann ein update-initrd (Debian/*buntu) bzw. mkinitrd (RH/SuSE) auszuführen. Unter SuSE oder RedHat würde ich auch noch mal unter /etc/sysconfig nachsehen, da müsste man auch dafür sorgen können, dass bestimmte Module immer in der initrd laden & beim Boot geladen werden.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Gogogo

#3 Post by Gogogo »

Hm, und wie kann ich bei der Methode und einem neuen Kernel überprüfen ob in einer bestimmten initrd jetzt schon das Modul aus /etc/modules drin ist? Ich würde den server jetzt nämlich ungern ohne die passende initrd neustarten und dann im Regen stehen...

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#4 Post by jochen »

Wenn Du schon eine funktionierende initrd hast: Sichere diese :). Einfach unter /boot unter dem Namen "initrd-safe" o.ä. ablegen. Mit grub kannst Du am Bootprompt den Eintrag mittels "e" editieren und bei Fehlversuch als initrd die initrd-safe angeben.

Weiterhin kannst Du die neu erstellte initrd mit dem o.a. cpio-Kommando natürlich auch auspacken und auf das benötigte Modul hin checken. Wenn Dir die Liste der Datein im Archiv reicht, dann lautet das Kommando

Code: Select all

cpio -itv <ungezippte-initrd-datei
Natürlich sollte man aber den Rechner suchen lassen statt selbst zu kramen:

Code: Select all

cpio -itv <ungezippte-initrd-datei | fgrep meinmodul.ko
Wird das Modul aufgelistet, steckt es im Archiv.

Ich hoffe, das hilft weiter.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Post Reply