No init found?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

No init found?

Beitrag von toaster » 14.04.2007 19:05:00

Hallo Leute,

ich habe hier folgende Kernel panic (abgeschrieben):

Code: Alles auswählen

....
NET: Registered protocol family 1
NET: Registered protocol family 17
Using IPI Shortcut mode
RAMDISK: Compressed image found at block 0
Time: tsc clocksource has been installed.
VFS: Mount root (ext2 filesystem).
Frring unused kernel memory: 136k freed
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
Er kann init nicht finden, sehe ich das richtig? Nun, was soll ich sagen init liegt an seinem Platz, die lib's auch (bis auf die neue linux-gate.so). Ich vermute es stimmt irgendetwas an dem inirrd nicht. Stimmt da irgendetwas mit dem fs type vom initrd nicht?

Benutzeravatar
OliverDeisenroth
Beiträge: 499
Registriert: 27.07.2003 22:34:31
Wohnort: Schwalmstadt
Kontaktdaten:

Beitrag von OliverDeisenroth » 14.04.2007 21:52:14

Hast du den Kernel selber gebaut? Aktiviere mal 'File systems ---> Miscellaneous filesystems ---> Compressed ROM file system support (cramfs)' in der Konfiguration und bau Ihn neu, vielleicht hilft dir das weiter ;)
Dies sind die Abenteuer des Betriebssystems Debian, das unterwegs ist, um in fremde Logdateien vorzustoßen, die noch nie ein Mensch vorher gesehen hat! 8)
Meine persönliche Homepage (läuft mit Ubuntu-Server)
...when apt is outdated, it is sometimes better to change the running system...!

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 15.04.2007 12:53:11

Hallo Oliver_D,

ich verstehe nicht ganz, warum cramfs ON sein sollte (habs auch mal erfolglos getestet ;) ). Es liegt auch nicht am Kernel, denn der 'gleiche' Kernel startet mit einem anderen initrd. Ich habe jetzt schon mehrfach den Zeitstempel des Kernels geprüft, und sogar ein diff sagt: die beiden Kernel sind gleich. Es muss also an der Ramdisk liegen :?: :!: :?:

Aber an dieser hat sich eigentlich auch nicht viel geändert. Ich bin hier irgendwie ratlos. Habe jetzt mal ein Image nur mit init erstellt:

Code: Alles auswählen

dd if=/dev/zero of=/tmp/testrd bs=1k count=65536
losetup /dev/loop0 /tmp/testrd
mke2fs -m 0 -N 20000 /dev/loop0
mount -t ext2 /dev/loop0 /mnt/
cd /mnt
mkdir sbin
cp /sbin/init sbin
chmod -R 755 sbin
cd
sync
umount /mnt
losetup -d /dev/loop0
gzip /tmp/testrd
Die Bootparameter:
append vga=773 initrd=linux/testrd.gz init=/sbin/init ramdisk_size=65536 root=/dev/ram0 devfs=mount,dall rw --

Der gleiche Fehler :( Der Kernel ruft doch direkt init auf oder? WENN er also init findet ... sollte doch eine andere Meldung kommen. Was genau macht der Kernel zu dem Zeitpunkt eigentlich? Er kennt sein RootFS und übergibt init nun das Kommando ... Module und alles weitere oder?

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 15.04.2007 13:10:13

ups sorry, ich sehe gerade daß die Fehlermeldung doch etwas anders ist:

Code: Alles auswählen

....
NET: Registered protocol family 1
NET: Registered protocol family 17
Using IPI Shortcut mode
RAMDISK: Compressed image found at block 0
Time: tsc clocksource has been installed.
VFS: Mount root (ext2 filesystem).
Freeing unused kernel memory: 136k freed
*** NEW ***
Warning: unable to open an initial console.
Failed to execute /sbin/init. Attempting defaults...
*** NEW END ***
Kernel panic - not syncing: No init found. Try passing init= option to kernel. 
Das bedeutet also, das bis zum Laden von init alles oki ist und nur init noch einiges benötigt?

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 15.04.2007 13:43:02

Code: Alles auswählen

Warning: unable to open an initial console. 
In /dev muss /dev/console existieren bevor von udev ein tmpfs an /dev mountet.

Benutzeravatar
Teddybear
Beiträge: 3163
Registriert: 07.05.2005 13:52:55
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Altomünster
Kontaktdaten:

Beitrag von Teddybear » 15.04.2007 13:46:00

Moin

Kann es unter umständen sein, das er die falsche Festplatte als root einbindet, aus irgendwelchen gründen?

Weil in deiner Abschrift ist noch zu lesen, das er eine Platte/Partition mit ext2 mountet... dann will er init von seinem frisch eingebunden root filesystem laden, und findet es aber nicht (weil dort wohl nicht dein System auf dieser Platte zu finden ist)

Aber versuch erstmal eine gescheite ramdisk mit mkinitramfs zu erstellen (Ich geh mal davon aus das du einen Kernel 2.6.18 oder so dort hast)

Greetz Sascha
Versuchungen sollte man nachgeben. Wer weiß, ob sie wiederkommen!
Oscar Wilde

Mod-Voice / My Voice

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 15.04.2007 15:24:22

@Spasswolf:

Ja, das device ist auch normalerweise da - wie alles andere auch. Das funktionierte ja auch alles unter sarge. Ich kann nur die Meldung nicht verstehen:

Code: Alles auswählen

Kernel panic - not syncing: No init found. Try passing init= option to kernel.
Ich würde ja mal ein ls -lR posten. Wie war die Adresse für lange postings?

@Sascha:
Nein, ich boote über pxelinux. Beide Dateien (kernel und initrd) werden auch zum client übetrtragen. Nun weiß ich auch, dass der Kernel an init übergeben möchte ... was aber nicht funzt. Demzufolge kennt er seine root - Wurzel - oder sehe ich da was falsch?

mkinitramfs kann ich nicht verwenden, da man dort keinen Kernel auswählen kann (es wird immer der laufende verwendet und das ist noch ein 2.6.8er). Wie gesagt, ich würde ja gern mal ein ls posten.

Irgendwie ist das alles komisch. Das einzige was hier ab etch anders ist, ist die fehlende linux-gate.so - das sagt mir zumindest ein ldd. Kann das miteinander zusammenhängen?

EDIT:
Die Datei "fehlt" nicht ;) sorry. Aber kann es sein, das dafür noch eine "Unterstützung" in den Kernel rein muß?
Zuletzt geändert von toaster am 15.04.2007 15:33:22, insgesamt 1-mal geändert.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 15.04.2007 15:32:25

Welcher Kernel lief denn vorher und welcher jetzt ?
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 15.04.2007 15:48:14

Mit dem Image läuft ein 2.6.18er. Ich erstelle das alles nur auf einem Rechner mit einem 2.6.8er.

Hintergrund:
Ich habe hier einen Rechner A. Auf dem läuft noch ein 2.6.8er Kernel. Alle anderen Recher booten über pxe und haben ein mini OS (mit einem 2.6.18er). Diese Clients verbinden sich dann per X-Export mit Rechner A.

Es lief und laüft auf dem Problemrechner ein 2.6.18er Kernel, wobei ich die Kernelsourcen noch mal mit den etch sourcen aktualisiert habe.

Ich wollte eigentlich nur die Clients um xorg erneuern - zwecks Auflösung und so ;) Der 2.6.18er Kernel für die Wks ist noch immer der gleiche. Ich habe "nur" ;) die Ramdisk erneuern wollen.

Mein Problem ist eigentlich nur, das ich die Kernelpanik nicht deuten kann. Ich habe da keinen Ansatzpunkt.

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 15.04.2007 16:27:58

Sorry, wenn das alles ein wenig verwirrend klingt - ich bin schon reichlich verwirrt ;)

Also ich habe den Link für lange Postings wiedergefunden (hatte ich bisher noch nie verwendet). Der 'normale' Inhalt meines initrd's ist etwas aufgebläht, da ich z.Bsp. einfach alles aus /bin und /sbin verwende. Dieses Image bringt den geposteten Fehler. Dazu verwende ich einen 2.6.18er Kernel. Dieser läuft mit einer 'alten' Ramdisk problemlos. Alt heißt dabei, das dort noch sarge bin's drin sind. An dem Script, welches das initrd erstellt, hat sich ebenfalls (fast) nix geändert - nur ein paar Symlinks.

Ich möchte den ganzen Kram auch niemandem zumuten ;) Aber die Kernelpanik - Meldung ist doch komisch ! Für mich klingt das so, als könnte der Kernel init nicht ausführen - es ist (nach meinem Verständniss) noch keine init Meldung.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 15.04.2007 18:24:50

Da wird wohl das Problem sein. Zwischen Kernel 2.6.8 und 2.6.18 hat sich einiges getan. Zum Beispiel ist das devfs aus dem Kernel rausgeflogen. Genauer schon ab 2.6.13/2.6.14 . Das führt auch zur Konsequenz das mkinitrd bei allen Kernel nach 2.6.12 nicht mehr funktioniert. Um für diese Kernel eine Initrd zu erstellen benötigt man enweder die initramfs-tools oder auch yaird. Wenn mich jetzt nicht alles täuscht setzen beide ein laufendes udev und sysfs voraus. Auch wird die Initrd nicht mehr im cramfs format ertstellt. Was allerdings eigentlich auch funtionieren müßte.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 16.04.2007 10:30:09

Hallo KBDCALLS,

sorry, ich habe mich unverständlich ausgedrückt. Ich habe und verwende einen 2.6.18er Kernel. Ich nutze weder die initramfs-tools noch yaird; möchte und *kann* dies auch nicht.

Ich habe hier einen Kernel (2.6.18 ) und zwei RamDisk's (alt und neu). Der selbe Kernel funktioniert mit der RD-alt, bringt jedoch den Fehler mit der RD-neu. Die Unterschiede der beiden RD's sind minimal. Alt hat sagre bin's und xfree86 drin, neu dagegen etch bin's mit xorg.

Die Unterschiede der beiden RD's sind also doch nicht soo minimal ;). Die Frage ist doch, was es für Ursachen geben kann, wenn der Kernel init nicht ausführen kann:

Code: Alles auswählen

....
Freeing unused kernel memory: 136k freed
Failed to execute /sbin/init. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
Ich habe noch mal zwei Listen erstellt:
1. nur das rootfs und die Kernelmodule (lib/modules/2.6.18c20/..)
2. inclusive /bin und /sbin (nicht aussortiert) und der zugehörigen libs

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 18.04.2007 19:09:29

@toaster: mach mal folgendes:

Code: Alles auswählen

# alle daten fürs image nach /tmp/initrd-dir
cd /tmp/initrd-dir
find . | cpio --create -H newc | gzip > /tftpboot/initrd.gz
natürlich solllte das initrd alle benötigten daten enthalten, ausserdem wird ein symlink benötigt: /init -> /sbin/init

selbst getestet -> funzt

[/code]
gruss pischti
debian stable

toaster
Beiträge: 63
Registriert: 21.10.2004 21:54:03
Wohnort: Dresden

Beitrag von toaster » 19.04.2007 09:40:02

Hallo Pischti,

ja, mit einem cpio Archiv geht es bei mir auch. Die eigentliche Ursache, warum die ext2 Struktur nicht mehr funktioniert, kann ich jedoch noch nicht erklären ;)

pischti hat geschrieben: # alle daten fürs image nach /tmp/initrd-dir
In diesem Zusammenhang finde ich das Listenformat von /usr/src/linux/usr/gen_init_cpio recht interessant.[/quote]

Antworten