Kernel bootet nicht (Error 15: File not found)

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
warhammer
Beiträge: 92
Registriert: 17.12.2008 07:51:40

Kernel bootet nicht (Error 15: File not found)

Beitrag von warhammer » 01.03.2009 10:37:43

Hallo,

ich habe mir einen neuen Kernel gebaut und installiert.

make menuconfig
dpkg -i linux-image-2.6.26_2.6.26-10.00.Custom_amd64.deb

grub> root (hd1,1)
grub> setup (hd0)


-> Soweit so gut, aber wenn ich nun versuche den neuen Kernel zu booten bekomme ich als Fehlermeldung:
Error 15: File not found



So sieht der entsprechende Eintrag in der menu.lst aus:

title Debian GNU/Linux, kernel 2.6.26
root (hd1,1)
kernel /vmlinuz-2.6.26 root=/dev/md3 ro noapic
initrd /initrd.img-2.6.26

Zum vergleich ein funktionierender Eintrag:
title Debian GNU/Linux, kernel 2.6.26-1-amd64
root (hd1,1)
kernel /vmlinuz-2.6.26-1-amd64 root=/dev/md3 ro noapic quiet
initrd /initrd.img-2.6.26-1-amd64


hostvm:~/linux-2.6-2.6.26# ls -l /boot/vmlinuz-2.6.26
-rw-r--r-- 1 root root 1673072 28. Feb 23:24 /boot/vmlinuz-2.6.26
hostvm:~/linux-2.6-2.6.26# ls -l /boot/initrd.img-2.6.26
-rw-r--r-- 1 root root 8011813 1. Mär 07:08 /boot/initrd.img-2.6.26

-> Die Dateien sind also vorhanden.

Damit nehme ich an das das Problem daran liegt das root und boot auf einem raid1 liegen.

Folgendes habe ich schon probiert, weiss aber nicht wie ich überprüfen kann obs funktioniert hat:

# List of modules that you want to include in your initramfs.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
raid1
ahci


hostvm:/etc/initramfs-tools# update-initramfs -u -k all
-> Die Timestamps der initrds sehen so aus als wären sie aktualisiert worden.



Muss ich da noch irgendwas beachten?

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von cirrussc » 01.03.2009 13:31:08

http://www.gnu.org/software/grub/manual/html_node/Stage2-errors.html hat geschrieben:15 : File not found
This error is returned if the specified file name cannot be found, but everything else (like the disk/partition info) is OK.
warhammer hat geschrieben: kernel /vmlinuz-2.6.26 root=/dev/md3 ro noapic
initrd /initrd.img-2.6.26
Es wird ganz einfach keine vmlinuz-2.6.26 geben!
Trage also den wirklichen Dateinamen der betreffenden vmlinuz ein, mit ls -l /boot/ sollte der zu bekommen sein.
"/" ist also die für Grub die /boot Partition?


http://www.gnu.org/software/grub/manual ... rrors.html
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

warhammer
Beiträge: 92
Registriert: 17.12.2008 07:51:40

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von warhammer » 01.03.2009 18:53:12

<copy from first posting>
hostvm:~/linux-2.6-2.6.26# ls -l /boot/vmlinuz-2.6.26
-rw-r--r-- 1 root root 1673072 28. Feb 23:24 /boot/vmlinuz-2.6.26
hostvm:~/linux-2.6-2.6.26# ls -l /boot/initrd.img-2.6.26
-rw-r--r-- 1 root root 8011813 1. Mär 07:08 /boot/initrd.img-2.6.26
</copy>

... sagt doch eigentlich das die Datei vorhanden ist. War auch meine Idee...


Da ein funktionierender Eintrag auch mit /<Dateiname> funktioniert sollte das wohl so funktionieren...


Ich habe wie gesagt das Gefühl das es daran liegt das sowohl boot auf einem RAID1 liegt und Grub darauf nicht zugreifen kann. Da es mit anderen Einträgen auch geht, vermute ich die initrd als fehlerhaft.
Da muss mir aber leider jemand auf die Sprünge helfen. :(

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von cirrussc » 01.03.2009 19:02:59

warhammer hat geschrieben:<copy from first posting>
hostvm:~/linux-2.6-2.6.26# ls -l /boot/vmlinuz-2.6.26
-rw-r--r-- 1 root root 1673072 28. Feb 23:24 /boot/vmlinuz-2.6.26
hostvm:~/linux-2.6-2.6.26# ls -l /boot/initrd.img-2.6.26
-rw-r--r-- 1 root root 8011813 1. Mär 07:08 /boot/initrd.img-2.6.26
</copy>
warhammer hat geschrieben:Da ein funktionierender Eintrag auch mit /<Dateiname> funktioniert sollte das wohl so funktionieren...
Ahh alles klar hier liegt der Fehler.
Ich bin davon ausgegangen, das Du eine separate Bootpartition hast, sonst wäre eine /vmlinuz ... einfach falsch.
Gib also den absoluten Pfad an, das ist sicher:

Code: Alles auswählen

kernel /boot/vmlinuz-2.6.26 root=/dev/md3 ro noapic


edit: Ach doch eine separate Partition?
Sollte die initrd fehlerhaft sein (aber warum), musst Du sie nat. neu packen

Code: Alles auswählen

update-initramfs -u -k 2.6.26
ps:
warhammer hat geschrieben:<copy from first posting>
Code in code Tags sieht man einfach besser :wink:
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von habakug » 01.03.2009 19:05:48

Hallo!
root=/dev/md3
Ich glaube so kann das nicht gehen. Wie soll grub denn zu diesem frühen Zeitpunkt dein Raid zusammensetzen, zumal (wie du weißt) die Module eigentlich in einer Datei auf dem Raid liegen?

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

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

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von Spasswolf » 01.03.2009 19:19:50

Doch das funktioniert so. Entweder die Raidtreiber sind fest im Kernel und der Kernel setzt das Raid selbst zusammen, oder die Raidmodule und mdadm liegen auf der Initramdisk.

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von habakug » 01.03.2009 19:30:41

Hallo!

@Spasswolf
Ja klar funktioniert das so. Aber bei ihm nicht.

Du solltest mal mit grub nach deinem Kernel und der initrd suchen:

Code: Alles auswählen

grub> find /boot/initrd.gz
find /boot/initrd.gz
 (hd2,0)
Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

warhammer
Beiträge: 92
Registriert: 17.12.2008 07:51:40

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von warhammer » 02.03.2009 06:44:54

Hallo,

also das RAID1 und Grub sich (eigentlich) vertragen weiss ich (siehe auch der funktionierende Eintrag).

Also Raid Modul habe ich ja nur RAID1 in die initrd eingetragen. Muss da noch ein anderes Modul hin?
Wie bekomme ich mdadm in die initrd?
... und vor allem, wie kann ich überprüfen was alles in der initrd ist?

Ich verstehe an der Stelle allerdings die grub Einstellung root (hd1,1) nicht wirklich.
Wie wird das gezählt?
Ich habe zwei phy. Platten: sda und sdb. Sollten die nicht hd0 und hd1 sein? Damit würde für die RAID Sachen ja eher hd2 zutreffen...
Ich habe md2 (boot), md3 (/) ... . Damit sollte nach meiner Logik doch eher (hd2,0) richtig sein, oder? -> Aber warum funktioniert dann der andere Eintrag???

warhammer
Beiträge: 92
Registriert: 17.12.2008 07:51:40

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von warhammer » 02.03.2009 08:05:39

Code: Alles auswählen

grub> find vmlinuz-2.6.26
find vmlinuz-2.6.26

Error 15: File not found
-> Was mach ich bloß falsch. :(

Athlux
Beiträge: 543
Registriert: 16.05.2004 22:15:56

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von Athlux » 02.03.2009 12:51:42

warhammer hat geschrieben: Ich habe zwei phy. Platten: sda und sdb. Sollten die nicht hd0 und hd1 sein?
Das ist korrekt. Der zählt von 0 einfach hoch.
Damit würde für die RAID Sachen ja eher hd2 zutreffen...
Ich habe md2 (boot), md3 (/) ... . Damit sollte nach meiner Logik doch eher (hd2,0) richtig sein, oder? -> Aber warum funktioniert dann der andere Eintrag???
(hd2,0) wäre eine bei dir nicht vorhandene dritte Platte. Das RAID ist ja nur eine Aufteilung deiner Festplatten.

Code: Alles auswählen

grub> root (hd1,1)
grub> setup (hd0)
Der Eintrag müsste eigentlich oben (hd0,1) sein. Der x Wert bei (hd0,x) zählt die Partitionen von 0 an hoch. also sda1 = (hd0,0) die bei dir /boot ist und sda2 = (hd0,1) als root Partition.

Warum bei dir root (hd1,1) setup (hd0) geht ist ganz einfach. Du hast ja ein RAID1 welches beide Platten spiegelt.
Das Problem daran ist leider das du grub sagst: Meine root ist auf der 2ten Platte aber installiere den Bootsektor auf die erste Platte.
Besser ist es bei RAID1 den Bootsektor auf jede einzelne Platte zu schreiben und die jeweilige root Partition anzugeben. Dann bootet das System nämlich auch wenn eine der Platten einen Abgang gemacht hat.

Code: Alles auswählen

grub> find vmlinuz-2.6.26
find vmlinuz-2.6.26

Error 15: File not found
Eigentlich fehlt da vorne der / oder findet er so auch den anderen Kernel. Du kannst bei grub auch mal die TAB-Taste versuchen bei find.

EDIT: Kannst du mal die Ausgabe von cat /proc/mdstat posten?
Gruß Athlux

warhammer
Beiträge: 92
Registriert: 17.12.2008 07:51:40

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von warhammer » 02.03.2009 13:09:51

Ok, da mein /boot auf sda2 und sdb2 und mein / auf sda3 und sdb3 liegt, also hd(0,2) als root. Das mit dem setup ist mir soweit auch klar.

Ein generelles Problem habe ich mit der Frage woher grub weiss wo es sich den Kernel herholen soll. Ich gebe ja immer nur root an und nirgendwo den Speicherort von initrd und kernel. Soweit ich das noch aus meiner lilo Zeit in Erinnerung habe muß der Kernel ja nicht unter /boot/ liegen. Damit fällt auch die Möglichkeit über die fstab nachzusehen wo boot liegt aus...

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von habakug » 02.03.2009 13:41:43

Hallo!

"(hd2,0)" ist die Ausgabe auf meiner Maschine. Das war nur ein Beispiel, wie man mit grub nach Dateien sucht.
Du kannst dir aber ausgeben lassen auf welchen Partitionen grub installiert ist:

Code: Alles auswählen

fdisk -l 2>/dev/null | egrep "Disk /|/dev/" | sed "s#^/dev/#Part /dev/#" | awk '{print $2}' | sed 's/://' | xargs -n1 -iX sh -c "dd if=X  bs=1 count=512 2>/dev/null | grep GRUB > /dev/null && echo Grub gefunden: X || echo Kein Grub: X"
Poste auch mal "fdisk -l".

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Athlux
Beiträge: 543
Registriert: 16.05.2004 22:15:56

Re: Kernel bootet nicht (Error 15: File not found)

Beitrag von Athlux » 02.03.2009 14:37:43

warhammer hat geschrieben:Ok, da mein /boot auf sda2 und sdb2 und mein / auf sda3 und sdb3 liegt, also hd(0,2) als root. Das mit dem setup ist mir soweit auch klar.
Fast richtig. Falls ich es noch nicht gesagt habe: root ist immer da wo sich grub befindet. In deinem Fall ist das (hd0,1) weil sda2 die /boot Partition ist.
Ein generelles Problem habe ich mit der Frage woher grub weiss wo es sich den Kernel herholen soll. Ich gebe ja immer nur root an und nirgendwo den Speicherort von initrd und kernel. Soweit ich das noch aus meiner lilo Zeit in Erinnerung habe muß der Kernel ja nicht unter /boot/ liegen. Damit fällt auch die Möglichkeit über die fstab nachzusehen wo boot liegt aus...
Genau das gibt man mit dem root(hd0,1) an. Erste Platte und 2te Partition. Deshalb ist auch der Pfad nicht /boot/vmlinuz... sondern lautet bei einer extra boot Partition /vmlinuz....

Da der Bootloader aber problemlos lädt und auch den vorherigen Kernel startet liegt dein Problem nicht unbedingt an der Installation von grub.
Gruß Athlux

Antworten