PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kernel auf diskette mit ext3 + usb - will das rootfs auf usb-disk nich mounten :|



d@tenmaulwurf
22.01.07, 23:44
Moin!

Ich habe eine Diskette wo ein Kernel mit allen notwendigen Sachen compiled in drauf ist. Von dieser wird gebootet. Am USB-Anschluss hängt eine Festplatte auf welcher sich das rootfs befindet (ext3, sda1).
Dem Kernel gebe ich via bootloader den string "append root=/dev/sda1" mit.
Wenn der Rechner bootet sehe ich wie der usb-kram erkannt wird - sogar die via USB angeschlossene Festplatte sehe ich (usb-storage, new full speed USB device, etc.) - die hdd wird also erkannt am USB-Port.

Dann erscheint aber folgendes:



VFS: Cannot open root device "sda1" or unknown-block(0,0)
Please append a correct "root=" boot option
kernel panic [...]


Für mich sieht das so aus, als wenn an der Stelle /dev/sda1 einfach das sda1-device nicht liegt bzw. das blocknod bisher noch nicht angelegt wurde.

Wie mounte ich nun das rootfs auf der externen Platte?

Vielen Dank,

d@tenmaulwurf

\\EDIT:

CONFIG_BLK_DEV_SD ist auf "y" gesetzt.

hp_tux
23.01.07, 00:33
Hallo,


CONFIG_BLK_DEV_SD ist auf "y" gesetzt.
nun, da müssen wohl noch ein paar mehr Konfiguratonsoptionen auf "y" gesetzt sein, wenn Du keine initrd hast.

Gruß

hp_tux

d@tenmaulwurf
23.01.07, 08:00
Hallo,


nun, da müssen wohl noch ein paar mehr Konfiguratonsoptionen auf "y" gesetzt sein, wenn Du keine initrd hast.

Gruß

hp_tux

Es wäre schön zu wissen welche :)

MiGo
23.01.07, 08:16
Es wäre schön zu wissen welche
* Die Treiber für deinen USB-Controller
* CONFIG_USB_EHCI_HCD
* mass-storage
* Dateisysteme (klar :))

Fällt sonst noch einem was ein?

d@tenmaulwurf
23.01.07, 10:24
* Die Treiber für deinen USB-Controller
* CONFIG_USB_EHCI_HCD
* mass-storage
* Dateisysteme (klar :))

Fällt sonst noch einem was ein?

Dateisystem ext2 + ext3 : drin
USB-storage : drin (sonst würde die Platte beim Booten nicht erkannt werden (Hersteller, USB/ATA-bridge, Größe, etc.)
USB-Treiber : drin (siehe vorherigen Punkt)

Weiß auch nichts mehr :|

d@tenmaulwurf
23.01.07, 16:23
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y

alles compiled in.

MiGo
24.01.07, 09:20
Poste doch mal die Ausgabe von "grep USB /usr/src/linux/.config", vielleicht bringt das ja Licht ins Dunkel.
Und ein "lspci" wäre auch nicht schlecht :)

Stephanw
24.01.07, 13:24
Es ist sehr wahrscheinlich, dass dass SCSI-Subsystem die devices (sda, sda1) noch nicht registriert hat, wenn der Kernel versucht, das root-Filesystem zu mounten. Versuche folgendes:

-Es gibt einen Parameter "rootdelay". Ich weiss nicht, ob es den bei jedem Kernel gibt (ich hatte mal das Gefühl, das wäre nicht so). Gebe dem Kernel ein "rootdelay=10" mit. Achte insbesondere auch darauf, ob der Kernel dem Stick ein Device-Node gibt.

-Wenn das nichts hilft, musst du entweder den Kernel mit einem Patch versehen, der das rootdelay implementiert oder eine Initrd bauen. Innnerhalb dieser initrd erzeugt du ein Script /linuxrc und stellt dort ein "sleep 5" (6..7..8?) herein.

-Selbstverständlich ist das oben gesagte irrelevant, wenn tatsächlich noch ein Treiber fehlen sollte. Das SCSI-Subsystem muss natürlich auch vorhanden sein.

Gruß Stephan

d@tenmaulwurf
24.01.07, 17:27
Wow - geil - daran lags echt!

rootdelay hilf :D

Vielen, vielen Dank!

Stephanw
24.01.07, 20:40
Keine Ursache!

DerAufgeklUser
27.10.07, 11:52
Morjen!

Ich versuche mich grad am gleichen Problem. Was muss ich denn Grub noch alles mitgeben?
Bisher habe ich es folgendermaßen versucht:

root (fd0)
kernel /kernel root=/dev/sda1
Allerdings sagt mir Grub dann, dass es die Partition nicht mounten kann.
Ist damit die Diskette gemeint?

d@tenmaulwurf
27.10.07, 12:18
Wie in dem Thread halt diskutiert die Option rootdelay (nimm vorerst 10 als Wert - damit müsstes auf jeden Fall gehen - dann kannste ja langsam runtergehen)

DerAufgeklUser
27.10.07, 12:30
Hatte ich ja versucht. Wenn die USB-Platte das Problem wäre, würde doch zumindest erstmal der Kernel von der Diskette geladen werden, oder nicht?