Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein ewiges Problem mit der initrd
Hallo!
Inzwischen beschäftige ich mich nun einige Zeit mit Linux und bin über die erste DAU - Phase hinausgewachsen. Jedoch gibt es ein Problem mit dem ich mich nun schon einige Zeit herumschlage und auch nach intensivem googeln keine Antwort finden:
Wie erstelle ich eine initrd?
Ich benutze kein Suse, sondern ein System mit Gentoo und ein anderes mit Debian. Unter Suse gab es den schönen und einfachen Befehl mk_initrd. Unter Debian/Gentoo gibt es zwar mkinitrd (ohne "_"), doch dieser scheint dem Anderen nicht zu ähneln, da die entsprechenden Parameter, bei denen man unter Suse das Kernel Image und die Ausgangsdatei angiebt, fehlen.
Also - wie erstelle ich eine initrd für einen Kernel? (Ich weiß das es auch andere Möglichkeiten gibt, möchte aber trotzdem eine initrd, ich weiß schon warum ;))
Danke im Voraus!
Für Debian z.B. mit
make-kpkg -revision=blah1.0 -initrd kernel_image
Erstmal Danke!! Ich hab das mal umgesetzt (das Revision ist doch der Zusatzanhang an die Version oder?), funktioniert leider nicht, es erscheint folgende Ausgabe:
wje@wjesys:/boot$ ls
config-2.4.27-1-386 grub initrd.img-2.4.27-1-386 System.map-2.4.27-1-386 vmlinuz-2.4.27-1-386 vmlinuz-2.6.9
wje@wjesys:/boot$ make-kpkg --initrd vmlinuz-2.6.9
Error: Unknown target vmlinuz-2.6.9
use --targets to display help on valid targets.
was hab ich falsch gemacht?
vmlinuz-2.6.9 ist kein gültiges Ziel, kernel-image war buchstäblich gemeint.
oops...
ja, jetzt funktioniert es! Eine Frage aber doch noch - wo finde ich die initrd nachdem ich sie mit make-kpkg erstellt habe?
make-kpkg erstellt im übergeordneten Verzeichnis ein .deb Paket; nach dessen Installation finden sich die zugehörigen Dateien in /boot wieder.
>Mein ewiges Problem mit der initrd
Genau, da stellt sich doch erstmal die Frage: wozu initrd überhaupt.
Die Frage geht Hand in Hand mit der Frage "wozu hochgradig modulare Kernel" (wobei insbesondere die Modularität beim Systemstart benötigter Subsysteme gemeint ist), die hier schon häufig diskutiert worden ist.
erstmal danke!
ich hab die initrd jetzt einfach weggelassen und die dateisysteme sowie die wichtigen treiber bzw. unterstützungen direkt in den kernel integriert. wenn ich den kompilierten kernel 2.6.9 nun versuche zu booten, erscheint folgende meldung:
VFS: Cannot open root device "hdb2" or unknown-block(0,0)
Please append a correct "root=" boot option
Das Dateisystem ist ReiserFS, die entsprechende Unterstützung integriert. Mit genau den gleichen Einstellungen in Grub lädt der 2.4er Kernel problemlos. Woran kann das liegen?
Offenbar hast Du nicht alle benötigten Treiber direkt in den Kernel integriert; stelle sicher, daß Du Unterstützung für IDE Festplatten eingebunden hast. Ansonsten wirst Du mit der Fehlermeldung als Suchbegriff sicherlich viele threads mit Hinweisen finden.
hab das selbe problem
so ich hab versucht nen neuen kernel zu backen unter Debian sarge
das komische ist unter debian-woody lief der kernel
jetzt hab ich die config und die gleiche source genommen, aber er geht nicht!
ich hab auch noch bissl rumgebastelt etc.
aber nix geht
hab ihn mit:
make-kpkg --initrd kernel_image gemacht
und mit
make-kpkg kernel_image gemacht
grub :
title <-- Debian 2.6.8 SELBST -->
# root (hd2,4)
kernel (hd2,4)/boot/vmlinuz-2.6.8 root=/dev/hda5 ro
# initrd /boot/initrd.img-2.6.8
# savedefault
# boot
beim booten mit inird sind die # weg und das (hd2,4) hinter kernel in der 2ten zeile
aber nix funzt, kimmt immer cannot mount root fs
obwohl er die platte als hda also meine 60gig maxtor erkennt, danach erkennt er die beiden sata platten
dann kommt kernelpanic
Meine Kernelconfig (http://zwenky.piranho.de/daten/kernel-268-test5.txt)
Meine Kernelconfig (http://zwenky.piranho.de/daten/kernel-268-test5.txt)
Offensichtlich:
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
CONFIG_BLK_DEV_SIIMAGE=y
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
Die solltest du mal alle aktivieren, so wie es die Default Configuration macht. (Es sei denn, du weißt ganz genau, dass du ein SII Controller hast.)
Das ist nicht unbedingt notwendig; das eigentliche Problem ist, daß CONFIG_BLK_DEV_IDEDISK nicht gesetzt ist.
hmm - eigentlich habe ich den IDE Treiber direkt eingebunden, und einen RAID Controller benutze ich auch nicht... Woran kann das sonst noch liegen?
devfs drin ? => rausschmeißen !
siehe auch:
http://www.linuxforen.de/forums/showthread.php?t=156751&highlight=devfs
wolfgang
Freekazonid
27.10.04, 07:43
/boot extra machen und als ext2 partitionieren - sollte man IMMER machen, dann gibts auch 0 probleme mit dem initrd *******.
hab hier wieder nen fall gehabt der hatte fc2 und /boot als ext3, und wir haben verzweifelt aufgegeben weils irgendwie nicht moeglich ist, trotzdem initrd gebastel und allen moeglichen ******* ausprobiert, aber nee...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.