PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GRUB-Fehlermeldung: initrd gibt es nicht und es läuft trotzdem?????



b52
09.01.04, 20:22
Hallo,

kann es sein, dass es unter SUSE 8.1 keine initrd gibt? Kann SUSE 8.1 ohne leben?
Bisher war ich immer der Meinung dass das nicht geht, aber so langsam zweifle ich etwas, nachdem ich das komplette System nach der initrd abgesucht habe.

Folgendes Problem:
Nach dem Anstellen der Maschine findet er beim Booten die beiden Festplatten und das CD-ROM. Dann gibt er mir den Bootloader als grafische Oberfläche mit den folgenden Optionen:
* Linux
* Floppy
* linux - Safe Settings

Nach der Auswahl der Option
* Linux
ergibt sich die folgende Fehlermeldung:

***********************************************
Fehlermeldung
_______________________________________________

kernel (hd0,0)/vmlinuz root=/dev/hda2
[Linux-bzImage, setup=0x1400, size=0x1078c4]
initrd (hd0,1)/initrd

Error 15: File not found
Press any key to continue...
***********************************************

Die Betätigung einer Taste führt mich zur Kommandozeile von GRUB (Version 0.92) mit den folgenden Optionen:
* linux
* floppy
* failsafe
Um den Bootvorgang abzuschliessen muss ich die Bootoptionen editieren und die GRUB-Zeile
<initrd /hd0,1)/initrd>
entfernen und mit <b> booten. Dann erst kann der Bootvorgang vollständig durchgeführt werden.


Zur Orientierung habe ich die Dateien:
* </boot/grub/menu.lst>
* mtab
* fstab
beigelegt.

Viele Grüsse und herzlichen Dank fuer den einen oder anderen Tipp im Voraus

b52



***********************************************
</boot/grub/menu.lst>
_______________________________________________

gfxmenu (hd0,0)/message
color white/blue black/light-gray
default 0
timeout 8

title linux
kernel (hd0,0)/vmlinuz root=/dev/hda2
initrd (hd0,1)/initrd

title floppy
root (fd0)
chainloader +1

title failsafe
kernel (hd0,0)/vmlinuz.shipped root=/dev/hda2 ide=nodma apm=off acpi=off vga=normal nosmp maxcpus=0 disableapic 3
initrd (hd0,1)/initrd.shipped

***********************************************
mtab
_______________________________________________

/dev/hda2 / ext2 rw 0 0
proc /proc proc rw 0 0
devpts /dev/pts devpts rw,mode=0620,gid=5 0 0
/dev/hda1 /boot ext2 rw 0 0
/dev/system/home /home reiserfs rw 0 0
/dev/system/srv /srv reiserfs rw 0 0
/dev/system/tmp /tmp reiserfs rw 0 0
/dev/system/var /var reiserfs rw 0 0
shmfs /dev/shm shm rw 0 0
capifs /dev/capi capifs rw,mode=0666 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
***********************************************


***********************************************
fstab
_______________________________________________

/dev/hda2 / ext2 defaults 1 1
/dev/hda1 /boot ext2 defaults 1 2
/dev/system/home /home reiserfs defaults 1 2
/dev/system/srv /srv reiserfs defaults 1 2
/dev/system/tmp /tmp reiserfs defaults 1 2
/dev/system/var /var reiserfs defaults 1 2
/dev/hdb1 swap swap pri=42 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
proc /proc proc defaults 0 0
usbdevfs /proc/bus/usb usbdevfs noauto 0 0
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/fd0 /media/floppy auto noauto,user,sync 0 0
***********************************************

christophwth
10.01.04, 13:47
Hi

normalerweise , braucht suse die initrd.
wenn du aber deinen kernel selbst kompiliert hast und dabei auf die initrd-unterstützung verzichtet hast wird sie nicht mehr benötigt.

sie wird gebraucht wenn dein root datei system auf einer ext3 oder reiserfs partition
ist (und diese fs-unterstützungen als module in den kernel integriert sind) . ext2 ist meines wissens noch fest in den susekernel integriert das bedeutet
auch wenn deine root partition auf einer ext2 partition liegt kannst du auf die
initrd verzichten. ( es gibt weitere beispiele die eine initrd erfordern würden )

wie die initrd ( vom filennamen her ) lautet kann du in der /boot/grub/menu.lst
erkennen ( initrd , initrd.shipped ) unter /boot sollten diese
dateien zu finden sein sind nicht da , dann wurden sie warscheinlich im zuge einer
aktualisierung gelöscht.

wenn die initrd also nicht benötigt wird dann lösche einfach die einträge
der initrd in der menu.lst

deiner liste entnehme ich, dass du / auf einer ext2 partition hast und damit die
initrd meines wissens überflüssig ist


gruss
christoph

b52
12.01.04, 21:58
Hallo Christoph,

vielen Dank für Deine Antwort. :) :D


wenn du aber deinen kernel selbst kompiliert hast und dabei auf die initrd-unterstützung verzichtet hast wird sie nicht mehr benötigt.
Den Kernel habe ich nicht selbst kompiliert. Dieser Effekt ist direkt nach der Installation aufgetreten, bei der ich / auf die ext2-Partition gepackt habe.


ext2 ist meines wissens noch fest in den susekernel integriert das bedeutet auch wenn deine root partition auf einer ext2 partition liegt kannst du auf die initrd verzichten.
Was ich dabei nicht verstehe: Eigentlich dürfte SUSE 8.1 diese GRUB-Zeile dann ja gar nicht erst schreiben...


( es gibt weitere beispiele die eine initrd erfordern würden )
Kennst Du dazu eine Quelle um etwas nachzulesen?

Vielen Dank für Deine Hilfe.

Grüße
Christian

MiGo
13.01.04, 09:42
Die initrd kannst du auch einfach selber erstellen :
Als root in der Konsole
# uname -r
--> Gibt dir den aktuellen Kernelnamen
# ls /lib/modules/<kernelname>
-->Da sollten jetzt die modulverzeichnisse aufgelistet werden, wenn da was kommt :
# mkinitrd /boot/initrd <kernelname>
--> Erstellt die /boot/initrd mit den Modulen aus dem laufenden Kernel


Vielleicht solltest du aber vorher überprüfen, ob die /boor/initrd nicht schon vorhanden ist und nur anders heisst (initrdXYZ).


Gruss,
MiGo