[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kernel 2.6 bootet nicht. Initrd?



Bertram Scharpf schrieb:

> unter einem laufenden 2.4 habe ich einen Kernel 2.6
> kompiliert. Bisher war kein 2.6er installiert, also habe ich
> von keiner funktionierenden Konfiguration abgeschrieben,
> sondern fange mit dem an, was `make menuconfig'
> voreingestellt hat.
> 
> Leider erhalte ich folgende Meldung:
> 
>   VFS: Cannot open root device "hdaX" or unknown-block(0,0)
>   Please append a correct "root=" boot option
>   Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Der Kernel kann nicht auf das Root-Device zugreifen. Zu diesem frühen
Zeitpunkt können nur fest eincompilierte oder Treiber aus der initrd
verwendet werden.

> In der `menu.lst' (Grub) steht dasselbe `root="/dev/hdaX"'
> wie beim funktionierenden 2.4er.
> 
> Hängt das zusammen mit einem fehlenden Initrd? Leider kriege

Je nachdem.

> ich davon auch keines erzeugt. Nach einem `mkinitrd' finde
> ich nirgends eine neue Datei und ein `make-kpkg ... --initrd
> ...' baut mir auch nichts, was mit `initrd*' gefunden wird.

PEBCAK.

Die initrd wird beim Laden des Kernelimage-Pakets erstellt und
liegt dann in /boot.

> Ich finde auch nirgends eine gescheite Anleitung, was
> `mkinitrd' genau macht; naiv vermuten würde ich mal, daß er

Das hängt von der Konfiguration ab. Die Variable ROOT und ggf. eine
selbst erstellte Liste von zu ladenden Modulen sind die primäre
Konfiguration, wenn eine initrd nicht funktioniert und neu erstellt
werden muss.

man mkinitrd
man mkinitrd.conf
zcat /usr/share/doc/initrd-tools/NEWS.Debian.gz

> eine Datei `vmlinuz-...' liest und eine Datei `initrd-...'
> erzeugt. In der `mkinitrd.conf' steht eine Zeile "ext3".

Darunter kann ich mir exakt gar nichts vorstellen. In dieser Datei
werden die in der zugehörigen man page erklärten Variablen definiert.

> Kann mich da mal jemand wenigstens soweit aufklären, daß ich
> die richten Suchbegriffe eingebe?

Wenn du nicht einen wirklich guten Grund hast, eine initrd zu bauen,
lasse es bleiben. Eine initrd erhöht die Anzahl möglicher Fehler-
quellen und verursacht oft zusätzliche Arbeit.

Gute Gründe können sein:
- universell einsetzbarer Kernel
- zwingende Reihenfolge der zu ladenden Module
- Lernen


Ciao
Walter



Reply to: