Kernel kompiliert, beim booten wird rootfs nicht gefunden

Hi alle zusammen,

ich habe gestern das erste mal einen Kernel (v. 2.6.25) kompiliert.
Dafür habe ich die standard Konfiguration von Archlinux genommen die ich unter /proc/config.gz gefunden habe und diese abgespeckt.

Ich habe nur die Dinge entfernt von denen ich wusste das ich sie keinesfalls benötige.

Das kompilieren des Kernels wurde ohne Fehlermeldungen abgeschlossen. Als unterstützung habe ich dieses Tutorial verwendet: http://wiki.archlinux.org/index.php/Kernel_Compilation_From_Source

Dabei habe ich den im Artikel beschriebenen tradiotionellen Weg verwendet.

Hier die Fehlermeldung die ich beim booten bekomme:

Code:
Attemping to create root device '/dev/sda2'
ERROR: failed to parse block device name for '/dev/sda2'
unknown
ERROR: rootfs cannot be detected.
Try using the rootfstype= kernel parameter
Waiting for devices for settle ...
done

Root Device '/dev/sda2' doesn't exists attemping to create it
ERROR: Failed to parse block device name for '/dev/sda2'
ERROR: Unable to create/detect root device '/dev/sda2'
Dropping to a revocery shell ...
type 'exit' to reboot
NOTE: klibc contains no 'ls' binary use "echo *" instead
If the device '/dev/sda2' gets created while you are here, try adding 'rootdelay=8' or higher to the kernel command line

In der rescueshell habe ich nachgesehen und /dev/sda2 gibt es tatsächlich noch nicht. Wie kann ich nachträglich ein rootfilesystem einbinden? Oder kann ich zu diesem Zeitpunkt noch garnicht auf die Festplatten zugreifen?

Da ich vermute das ich Grub falsch konfiguriert habe, hänge ich die Grub Config auch mit an:

Code:
# (2) Arch Ghoulsen-Kernel
title Arch with Ghoulsenproofed-Kernel
root  (hd0,0)
kernel /vmlinuz-2.6.23-revision1 root=/dev/sda2
initrd /kernel26-revision1.img

bei Bedarf kann ich auch meine Kernel .config posten, nehme aber an das diese momentan den Rahmen sprengt.

Vielen Dank im voraus

gruss moveax1
 
Sind die Treiber für den Festplatten-Controller und das Dateisystem fest im Kernel oder als Modul? Wenn als Modul, sind sie dann auch im RAM-Disk-Image?
 
Serial und Parallel ATA wurde als Modul kompiliert.
ext2/3 support sind fest in den Kernel kompiliert

Habe mir gerade die manpage von mkinitcpio angeschaut, aber nicht herausgefunden, wie ich der Ramdisk Module hinzufügen kann.

Ist das das richtige command?

Selbst hinzugefügt habe ich das Modul der Ramdisk nicht

Danke für die schnelle Antwort
 
Ich hab nie Archlinux genutzt, aber zumeist heisst der Befehl mkinitrd und hat eine entsprechende Konfiguration irgendwo im /etc-Verzeichnis.
 
Ein bisschen OT: Inwiefern macht es eigentlich Sinn, Dinge wie Serial und Parallel ATA als Modul zu kompilieren?
 
Ich verstehe nie, warum man immer die ganzen Sachen als Modul einbindet. Ich pack den Kernel das rein, was ich für *meinen* PC brauche und sonst gar nichts. Dann hab ich auch keine Probleme mit einem aufgeblasenem Kernel.

Die Distributionen bieten allerdings immer einen allgemeinen Kernel an, der auf möglichst vielen Computern laufen soll. Deshalb wird alles als Modul gebaut und dann je nach Bedarf geladen.

Dinge wie die Wlan-Treiber oder so die man vielleicht nicht immer geladen haben will kann man natürlich auch als Modul nehmen.
Ich schätze, dass du ein besseres Ergbnis bekommst, wenn du erstmal mit einer leeren Config anfängst und dann die Dinge die du brauchst aktivierst. Muss man sich halt meistens die Beschreibungen durchlesen. Wenn man noch keine Ahnung hat kann es recht lange dauern bis man was brauchbares hat, aber man lernt ne Menge.
 
konnte das modul jetzt mit mkinitrd einbinden und er findet nun auch die festplatte,

ich glaub aber ich hab in der .config zuviel falsch angegeben, werde jetzt mal mit einer leeren config anfangen.

Danke fuer die Antworten
 
Original von xblax
Ich verstehe nie, warum man immer die ganzen Sachen als Modul einbindet. Ich pack den Kernel das rein, was ich für *meinen* PC brauche und sonst gar nichts. Dann hab ich auch keine Probleme mit einem aufgeblasenem Kernel.

Der modulare Aufbau hat den Vorteil, dass nicht der gesamte Kernel crasht, wenn es in einem Geräte-Treiber zu einem Fehler kommt, sondern nur das entsprechende Modul. Im Kernel 2.6 sind die Modulschnittstellen mittlerweile so sauber, dass ein crashendes Modul nicht den ganzen Kernel beeinflussen kann. Ist ein Treiber fest eingebunden, besteht dieser Schutz nicht. Die Vorteile von statischen Kerneln ohne Modul-Unterstützung sind lediglich im Server-Bereich spürbar, weil ohne Modul-Support natürlich auch keine Kernel-Trojaner u.ä. bei Angriffen verwendet werden können. Die Geschwindigkeitsvorteile sind auf heutigen Systemen kaum messbar.
 
Man sollte dazu ein Kernelimage, welches bei einer Sparc spizifischen Konfiguration um die 10 MB gross werden kann, aufgrund dessen z.B. lieber verkleiner wenn man den Kernel noch booten moechte.

In das Kernelimage gepackte Programme sind aber leicheter zu handhaben als Module.
 
Zurück
Oben