# [GELÖST] VFS: Cannot open root device

## bierbauchangsthase

Hallo. Ich brauche Rat!

Der hier hat vielleicht ein ähnliches Problem:https://forums.gentoo.org/viewtopic-t-706760-highlight-syncing.html

Warum ich trotzdem poste, kommt gleich.

Weil genkernel mir nie den richtigen Wlan-Treiber gibt, habe ich wieder einmal einen Versuch mit manueller Kernel-Konfiguration gemacht.

Das ist nicht das erste Mal, und bisher haben meine Kernel auch immer gebootet.

"sda11" mit ext3 ist korrekt mein Root-Verzeichnis. Jetzt kommt aber:

```
VFS: Cannot open root device "sda11" or unknown-block(0,0) 

Please append a correct "root=" boot option; here are the available partitions:

Kernel panic - not syncing: VFS: unable to mount root fs on unknown-block (0,0)
```

Ich habe make menuconfig noch einmal in der chroot-Umgebung gestartet, und es war bei Ext3 alles angekreuzt. (Da bleibt anscheinend immer die vorherige Konfiguration voreingestellt.)  

Ich habe auch schon bei root= das "sda11" gegen "hd0,10" ersetzt. Nix. Deswegen poste ich trotzdem.

 Die Festplatte ist

```
description: ATA Disk

product: FUJITSU MJA2500B
```

ATA disksupport und generic ATA/ATAPI Disk support sind angekreuzt ("*").

Gentoo-Failsafe, mit dem genkernel, startet weiterhin, weswegen ich nicht glaube, daß was kaputt ist.

Ich würde mich über Beratung sehr freuen, weil das jetzt des Anfängers erster Schritt in die Nutzung der großen Vorteile von Gentoo wird.

DankeLast edited by bierbauchangsthase on Tue Jul 21, 2009 5:19 am; edited 1 time in total

----------

## manuels

ersetz mal das sda11 durch /dev/sda11.

Und bitte lass das beim nächsten mal die Leerzeilen im Post weg. Das verschlechtert nur die Lesbarkeit.

----------

## bierbauchangsthase

Danke. "/dev" steht leider schon drin. (Antwort in einer Zeile.) Trotzdem danke!

----------

## Josef.95

Hi

ich vermute fast du hast den Treiber deiner IDE / SATA Controller nicht fest (build in) "*"im Kernel gesetzt.

Starte doch noch mal deinen anderen lauffähigen kerrnel das System und schaue zb mit einem 

```
# lspci -k
```

 welche Treiber für welchen Contoller genutzt werden.

Alternativ schaue auch mal hier

http://kmuto.jp/debian/hcl/

eine weitere recht gute Info (zZt leider nicht ganz Aktuell) zum kernel bauen findet sich hier

http://de.gentoo-wiki.com/wiki/Kernel/Manuell_kompilieren

Viel Erfolg

----------

## Schorchgrinder

aloha

IHMO setzt genkernel doch keine module.

Das muss genau wie bei make menuconfig/xconfig eingestellt werden, heißt auch man muss wissen welches Modul man für seine Hardware benötigt.

Genkernel erleichtert nur das anlegen, also models_install mkinit usw.

Wie schon angesprochen kann es am festeinkompilierten Modul liegen das fehlt, zB für VIA usw.

mfg

Schorchgrinder

----------

## bierbauchangsthase

@Schorchgrinder:

Ich stelle mir das so vor: Genkernel speichert einen Haufen Module bzw. legt sie bereit, scant dann die Hardware und lädt dann, was nötig ist aus der bereitgelegen Auswahl. Bei mir wäre der ath5k Wlan-Treiber nötig. Den finde ich aber auch mit dem genkernel nicht in der Liste, aus der man dann Module für den "autoload" wählen könnte. Ich stelle mir das dann so vor, daß der bootende Genkernel-Kernel den dann auch nicht finden kann. Leider habe ich keine Manipulationsmöglichkeit für genkernel gefunden, im Sinne von "mach alles wie sonst, aber nimm noch den ath5k mit!".

(Ich hatte ein ähnliches Problem mit meinem eth-Treiber. Eth lief bei meinen Kerneln immer nicht, mit genkernel lief es "out of the box". Deswegen denke ich schon, daß Genkernel module lädt - aber halt nicht "einkompliert")

@Josef.95 und @Schorchgrinder:

Das mit dem Controler wird wohl stimmen. Ich habe blos gerade nicht Zeit und Nerv für diese Untersuchung. Ich melde mich wieder, wenn ich es ausprobiert habe!

Danke!

----------

## musv

Versuch mal den Genkernel wegzulassen. Die Hardwaretreiber kriegst du über diese Seite raus:

http://kmuto.jp/debian/hcl/index.rhtmlx

Alternative Idee zum Bootproblem:

In meiner Kiste hängt eine Platte am IDE-Controller, eine ist SATA. Während die Syscrescue-CD die IDE-Platte als sda und die SATA-Platte als sdb erkennt, ist es in meinem Gentoo genau andersrum. 

Nächste Fehlerquelle:

Hast du die notwendigen Dateisysteme eingebunden?

Dritte Fehlerquelle:

Mit der Umstellung auf Kernel-2.6.30 konnte man das Packformat für die Initrd festlegen. Ich hatte bis dato ein Hintergrundbild als Bootsplash in einer Initrd (gzip). Im Kernel nutze ich seit 2.6.30 bzip2. Natürlich konnte der Kernel dann nichts mit der initrd anfangen. Fehlermeldung war: "Konnte Dateisystem nicht finden." Da musste ich erstmal ganz schön lange suchen, bis ich die Initrd als Fehlerquelle ausmachen konnte. Und dass wegen eines Bootsplash der ganze Kernel hängenbleibt, hätte ich bis dahin auch nicht vermutet.

Anmerkung zum Link:

Debian nutzt scheinbar noch die alten IDE-Treiber. Ich würde Dir empfehlen, weiterhin bei den SATA/PATA-Treibern zu bleiben, sofern du noch IDE-Devices in Deiner Kiste hast.

----------

## Dasharteei

Ich kann dir leider nicht helfen, ich hab selbst ein Problem:

Ich habe Gentoo mit der Syscrescue-CD installiert. Dort musste ich unter /dev/sda auf meine Platte zugreifen. Nach dem ersten booten kam dann die Meldung, dass /dev/sda3 nicht gefunden wird oder so ähnlich. Nachdem ich dann in grub.conf und fstab /dev/sda durch /dev/hda ersetzt hatte lief es.

Seit dem ersten Kernel update bekomme ich nun aber folgende Meldung beim hochfahren:

```

mount: mounting /dev/hda3 on /newroot failed: Invalid argument

!! Could not mount specified ROOT, try again

!! Could not find the root block device in .

```

Die Meldung kommt auch, wenn ich den alten Kernel boote. Ich kann linux nun nicht mehr hochfahren.

----------

## bierbauchangsthase

Mir dämmert, glaube ich, was los ist. Bei meinen ersten manuellen Konfigurationen war fast alles goldrichtig voreingestellt, bis auf den eth-Treiber, weswegen ich genau damit einige Schwierigkeiten hatte und dann genkernel entdeckt habe. Aber ich hatte bereits bemerkt, daß die Konfiguration von Mal zu Mal gespeichert und modifiziert wird. Mit dem Genkernel-Kernel war ich jetzt ja auch eine Weile zufrieden.

Die neueren manuellen Kernel-Konfigurationen, also die, welche nicht booten, sind die ersten nach der Genkernel-Installation. Ich habe jetzt gezielt nach den Schwachstellen gesucht und gemerkt, daß wirklich alles anders eingestellt war als früher! Das heißt ich bastele jetzt am Genkernel herum, oder? Das heißt, ich muß das Initramfs freigeben usw.!

Vielleicht gibt es ja irgendwo Backups meiner früheren Konfigurationen.

Übrigens: die Idee, einen alten, laufenden, manuell konfigurierten Kernel rauszukramen und von innen zu untersuchen, war schon gut. Aber das ist ja eben der Kernel, der mir kein eth gegeben hat, weswegen ich auch all die schönen Diagnosebefehle wie lspci usw. noch nicht erteilen konnte, weil ich sie noch nicht installiert hatte. (Im Handbuch wird jetzt übrigens vorweg "emerge pciutils" empfohlen. Das finde ich gut.) Hier hat es jetzt jedenfalls wieder nicht geklappt.

----------

## bierbauchangsthase

Meine Versuche, richtig zu kompilieren, sind in gecrashte Gentoo- und Gentoorescue-Bootprozesse gemündet.   :Evil or Very Mad: 

Damit ich wieder eine Ausgangssituation habe, habe ich halt nochmal einen Genkernel-Kern machen lassen.   :Embarassed: 

Wenn ich nun die /etc/modules.autoload.d/kernel mit ath5k oder ath9k beschrifte, kommt beim Boot "cannot load" und iwconfig zeigt nichts.

Ich habe aber definitiv eine Ausgabe von lsmod abgespeichert, die zu einem Genkernel-Kern gehört, und die ath9k enthält!   :Shocked: 

Wie habe ich das da reinbekommen?   :Question:   Ich kann mir nur vorstellen, daß ich mit make menuconfig an der genkernel-Konfiguration rumgemurkst habe. Dann geht das also doch! make menuconfig lädt also die aktuelle, gegebenenfalls von Genkernel angelegte,  .config, ist das richtig? Dann könnte ich den Treiber auf diese Weise wieder reinmachen?

Das wäre die erste Strategie. Nichts für Puristen.

Ich habe tatsächlich eine uralte .config gefunden. Wenn ich da reinschaue sehe ich noch nicht, ob es eine von genkernel oder eine hausgemachte ist. Zweite Strategie: diese Datei in die menuconfig laden und daran basteln. Ich habe vorhin mal so einen alten, selbstgemachten Kernel booten lassen und war dann wieder in der Welt ohne Xserver und ohne Ethernet. Nein danke.

EDIT: Leider ist die alte .config auch eine von Genkernel. Sieht zumindest so aus. Ich hoffe jetzt mal daß  make menuconfig neutral startet, wenn keine .config vorliegt. Ich verstecke sie also

----------

## bierbauchangsthase

Klappt alles nicht. Wenn ich vom genkernel-Setting ausgehe, finde ich im Menü die Treiber alle nicht.

Ich möchte das menuconfig-Menü in seinen Urzustand versetzen. (Den Zustand aus dem stage3-tarball, nehme ich an)l

Wie geht das? 

DANKE !

----------

## Josef.95

Moin

mache bitte mal ein 

```
# update-pciids
```

und

poste dann die Ausgaben von 

```
# lspci

und

# lspci -n
```

kann auch von einem Ubuntu oder Ähnliches sein.

/edit

 *bierbauchangsthase wrote:*   

> Ich möchte das menuconfig-Menü in seinen Urzustand versetzen. 

 

```
cd /usr/src/linux

make mrproper

make menuconfig
```

Info

"make mrproper" macht wie der Name schon andeutet gründlich sauber, sprich:es wird annähernd der Uhrzustand wieder hergestellt.

Achtung! auch .config wird dabei gelöscht!

----------

## bierbauchangsthase

Moin. Heute sind wir aber früh dabei. Danke für den Tip mit mrproper. Danke auch für den Warnhinweis auf der Flasche. Man weiß ja nie!

Mit dem spiegelsauberen .config-Menü kann ich jetzt da weitermachen, wo musv mich hinschickt: manuelle Konfiguration. 

Übrigens ist das alles ganz entspannt zu sehen. Ich habe mir jetzt extra einen dritten Gentoo-Boot ins Grub geschrieben, um zu basteln.

Es booten also noch das laufende Gentoo und das Rescue-Gentoo. Aus Fehlern wird man klug.  

```
lspci

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)

00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07)

00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)

00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)

00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)

00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)

00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)

00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)

00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)

00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03)

00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)

00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)

00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)

00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)

00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)

00:1f.0 ISA bridge: Intel Corporation ICH9M LPC Interface Controller (rev 03)

00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03)

00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)

01:04.0 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)

01:04.2 SD Host controller: O2 Micro, Inc. Integrated MMC/SD Controller (rev 02)

01:04.3 Mass storage controller: O2 Micro, Inc. Integrated MS/xD Controller (rev 01)

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

05:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)

07:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)

lspci -n

00:00.0 0600: 8086:2a40 (rev 07)

00:01.0 0604: 8086:2a41 (rev 07)

00:1a.0 0c03: 8086:2937 (rev 03)

00:1a.1 0c03: 8086:2938 (rev 03)

00:1a.2 0c03: 8086:2939 (rev 03)

00:1a.7 0c03: 8086:293c (rev 03)

00:1b.0 0403: 8086:293e (rev 03)

00:1c.0 0604: 8086:2940 (rev 03)

00:1c.1 0604: 8086:2942 (rev 03)

00:1c.2 0604: 8086:2944 (rev 03)

00:1c.3 0604: 8086:2946 (rev 03)

00:1d.0 0c03: 8086:2934 (rev 03)

00:1d.1 0c03: 8086:2935 (rev 03)

00:1d.2 0c03: 8086:2936 (rev 03)

00:1d.7 0c03: 8086:293a (rev 03)

00:1e.0 0604: 8086:2448 (rev 93)

00:1f.0 0601: 8086:2919 (rev 03)

00:1f.2 0106: 8086:2929 (rev 03)

00:1f.3 0c05: 8086:2930 (rev 03)

01:04.0 0c00: 1217:00f7 (rev 02)

01:04.2 0805: 1217:7120 (rev 02)

01:04.3 0180: 1217:7130 (rev 01)

04:00.0 0200: 10ec:8168 (rev 02)

05:00.0 0200: 168c:001c (rev 01)

07:00.0 0300: 10de:0649 (rev a1)

```

 :Idea: 

Wenn ich schon mal dabei bin, schau mal, wie hier die Treiber geladen wurden: (Achtung: nicht mehr aktuell!) EDIT:   :Idea:   ich glaube, ich bin dahintergekommen: Nach der genkernel-Installation lief wohl irgenwann mal eine manuelle Installation mit make modules-install. Wahrscheinlich habe ich dann den Genkernel-Kern per modules.autoload.d auf diese Treiber verwiesen.  :Idea: 

```
lsmod

 :idea:  :idea: 

Module                  Size  Used by

ipv6                  198496  14 

ath9k                 296608  0 

...

ath5k                 110096  0 

---
```

Ich schwöre Dir Stein auf Bein, daß da ein Genkernel lief, an dem ich irgendwas manipulieren konnte!

Im Ubuntu kriege ich das Wlan übrigens auch nicht an. Es scheint am Sendeverhalten und am Treiber zu liegen. Man rät mir zu kompilieren. Die Kandidaten sind dort übrigens der ath5k und madwifi. Am Ende habe ich in Gentoo vielleicht sogar die besseren Karten ...

Da fällt mir ein: ich habe ja jetzt wieder einen Boot und ich glaube, den Fehler gefunden zu haben: inkonsistente Kombination von gemurkstem Kernel+Grub+Initramfs. Ursache: Bierbauchangsthase ist ein DAU. Insofern ist dieser Thread eigentlich gelöst. 

Natürlich freue ich mich weiter über Support. Auch hier.

Danke für das Interesse!

----------

## bierbauchangsthase

Mein selbstkonfigurierter Kernel bootet.

Noch finde ich aber den Treiber der Nvidia-Karte nicht. Das Suchprogramm in make menuconfig (mit "/")  zeigt mir da eine Stelle an, wo ich ihn leider nicht finde.  

Aber vielleicht kann man da was machen. Mit nachladen oder so. Immerhin findet genkernel den Treiber ja auch.

Ich hätte aber doch noch ein kleines Problem:

Wenn ich den selbstgebauten Kernel, welcher kein Initramfs braucht, booten lasse (was derzeit mit funktionierendem Linux  ohne Grafik endet), ist danach die Grafikkarten-Unterstützung auch bei meinen Genkernel-Boots weg. 

Das mit dem Test-Kernel-Boot klappt daher nicht so ganz. Ich glaube, es tritt erst auf, wenn der selbstgebaute Kernel einmal gebootet hat. Vielleicht täusche ich mich da aber und die Treiberauswahl ist beim Selbstbau wirklich überschrieben worden.

Wie könnte ich denn das verhindern?

Danke für die Hilfe. Ihr habt mich schon recht weit gebracht!

----------

## bbgermany

Hi,

 *bierbauchangsthase wrote:*   

> Mein selbstkonfigurierter Kernel bootet.
> 
> Noch finde ich aber den Treiber der Nvidia-Karte nicht. Das Suchprogramm in make menuconfig (mit "/")  zeigt mir da eine Stelle an, wo ich ihn leider nicht finde.  
> 
> Aber vielleicht kann man da was machen. Mit nachladen oder so. Immerhin findet genkernel den Treiber ja auch.
> ...

 

Welchen NVidia Treiber? Den Framebuffer NVidia Treiber? Ich denke den solltest du nicht nutzen, da sonst iirc X nicht gut bzw. garnicht mit dem nvidia Xorg Treiber arbeitet.

MfG. Stefan

----------

## musv

 *bierbauchangsthase wrote:*   

> Noch finde ich aber den Treiber der Nvidia-Karte nicht. Das Suchprogramm in make menuconfig (mit "/")  zeigt mir da eine Stelle an

 

Du musst hier zwischen X und Framebuffer unterscheiden. Die Treiber für xorg sind nicht im Kernel. Und für Framebuffer würde ich Dir Vesa oder uvesafb empfehlen, da die grakaspezifischen Treiber häufig Probleme im Zusammenspiel mit X bereiten. 

Die Treiber für X findest du unter /usr/portage/x11-drivers. In Deinem Fall sind das xf86-video-nv oder nvidia-drivers. Letzterer ist zu bevorzugen.

 *bierbauchangsthase wrote:*   

> Wenn ich den selbstgebauten Kernel, welcher kein Initramfs braucht, booten lasse (was derzeit mit funktionierendem Linux  ohne Grafik endet), ist danach die Grafikkarten-Unterstützung auch bei meinen Genkernel-Boots weg.

 

Hä?

 *bierbauchangsthase wrote:*   

> Vielleicht täusche ich mich da aber und die Treiberauswahl ist beim Selbstbau wirklich überschrieben worden.

 

Die Kernelkonfiguration steht in /usr/src/$Deine_Kernelversion/.config

Die Kernelkonfiguration (sofern im Kernel selbst aktiviert) kannst du mit:

```
zcat /proc/config.gz
```

abfragen. 

Ein guter Anfang zum Probieren, wenn du gar nicht weiterkommst, ist z.B. auch:

1. Live-CD nehmen.

2. zcat /proc/config.gz >> /irgendwo/.config

3. cp .config /mnt/gentoo/usr/src/linux

4. chroot in Gentoo

5. cd /usr/src/linux && make oldconfig

6. make menuconfig

Damit bekommst du zumindest schon mal einen lauffähigen Kernel. Natürlich enthält der alle möglichen Module, da der Kernel einer Live-CD überall funktionieren muss. Musst du dann halt noch anpassen. Mit Genkernel hab ich noch nie zu tun gehabt. Ich trau dem Ding aber irgendwie nicht über den Weg.

----------

## bierbauchangsthase

 *Quote:*   

> Hä?

 

Ich habe in der Grub drei Möglichkeiten:

1. Gentoo

2. Gentoo-Rescue

3. Gentoo-Testkernel

1. und 2. verwenden (noch) denselben Genkernel (die Mutterbrust sozusagen, von der ich ja weg will) und dasselbe Initramfs. (Ich sollte sie noch verschieden belegen. Wozu sonst "Rescue"!? Aber das nur am Rande.)

3. dies ist der selbstgemachte Kernel.

Ich bin gerade in der Arbeit und kann es nicht genauer analysieren:

Nach dem Erstellen des Testkernels probiere ich ihn natürlich zuerst aus. Er bootet, halt ohne Grafik.

Irgendwann danach lasse ich, weil 3. noch nicht so toll läuft, 1. oder 2. booten.

Dann kommen ein Haufen Fehlermeldungen mit nvidia-Modulen (konnte nicht geladen werden oder so). Dann habe ich die Kommandozeile.

 *Quote:*   

> bierbauchangsthase hat Folgendes geschrieben:
> 
> Vielleicht täusche ich mich da aber und die Treiberauswahl ist beim Selbstbau wirklich überschrieben worden.
> 
> Die Kernelkonfiguration steht in /usr/src/$Deine_Kernelversion/.config
> ...

 

1. und 2. ist der Genkernel. Der hat ja die Treiber nicht einkompiliert, nehme ich an, sondern scannt und lädt dann die eingerichteten, kompilierten Module aus seiner Auswahl. Ich glaube, daß ein make && make modules_install danach diese Auswahl plattmacht. Diese Auswahl kann man ja nicht als Datei einsehen , sondern nur mit 

```
find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
```

Deswegen durchschaue ich das noch nicht.

Danke für die Tips. Kann jetzt nichts machen, da in der Arbeit.

----------

## Finswimmer

make modules_install killt dir die Kernelmodule, die du z.b via "emerge nvidia-drivers" installierst.

Diese musst du dann neu-emergen.

Tobi

----------

