Guten Morgen,
Wie sieht die grub.cfg aus. Bist Du sicher, daß genau die genommen wird vom Grub?
Ich schränke mich mal auf einen Eintrag ein, genügt das?
menuentry 'Debian GNU/Linux, with Linux 3.1.6' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(hd0,msdos2)' search --no-floppy --fs-uuid --set c9d2cdd1-d4c7-48f3-a381-2cd26977983a echo 'Loading Linux 3.1.6 ...' linux /boot/vmlinuz-3.1.6 root=/dev/sda2 ro quiet }
Sicher bin ich mir, da man im Bootloader mit "e" in den edit-Modus gelangt, wo der Eintrag genauso aussieht.
Ah, und woher kennt der Kernel das rootfs? Von seiner commandline, oder? Und ich glaube, dort kannst Du nur device-Namen, keine UUIDs oder ähnliches angeben. Jedenfalls nicht, wenn Du keine initrd hast, die diese in Gerätenamen umsetzt und dann das Device mounted.
Korrekt, im Bootloader steht als Parameter "root=UUID=xxx". Ihr meint also, der UUID und LABEL support kann nur mit initramfs funktionieren, da diese Code enthält, die UUID oder LABEL in /dev/irgendwas übersetzt, womit der Ken umgenehn kann. Wahrscheinlich stimmt das sogar, denn ein Distributionskern mit initrd hat auf dem betroffenen System kein Problem per UUID zu booten.
Ich kann also bei einem monolitischen Kernel (also ohne Modulsupport und ohne initrd) kein UUID oder LABEL verwenden. Ferner scheint also der USB-Treiber vor dem für SATA im Kern aufgerufen zu werden und somit könnte man mutmaßen, dass die USB-Platte /dev/sda wird und SATA nach hinten rutscht.
Die Frage ist nun kann man in meiner Art Kern den USB-Stack zeitlich hinter den SATA-Stack legen?
Wie sah es aus, wenn das Rootfilesystem mit der UUID-Methode nicht gefunden wurde? Auch Kernel Panic?
Ja. Egal ob UUID oder normales /dev/sda2 gibts das gleiche Verhalten.
Und Du bist sicher, daß er schon Treiber geladen hat? Auf der Konsole ist zu sehen, daß die Partitionen gefunden wurden?
Ich kann hier jetzt nicht folgen. Wer hat Treiber geladen, der Bootloader offenbar, denn er findet ja den Kern zum Starten. Der Kern wohl auch, weil es keine Module oder initrd gibt und ohne USB-Device bootet dieser ja anstandslos. Von welcher Konsole redest Du jetzt, zu welchem Zeitpunkt?
Wenn Du eh einen eigenen Kernel baust, dann kannst Du dafuer sorgen, dass der Support fuer USB-Storage und Firewire-Storage nicht fest im Kernel-Image drin ist.
Könnte, das will ich aber gar nicht. Keine Module, keine initrd.
Warum baust Du ueberhaupt einen eigenen Kernel?
Das sollte ich mir wohl mal frisch beantworten ... Ich mag keine Module, da die ja theoretisch nachträgliche Manipulation des Kernels ermöglichen. Ich will nur das, was ich wirklich benötige, nicht mehr, da ich mir so Fehlerpotential reduziert erwarte.
Offenbar gibt es noch eine UUID-ohne-initrd Lösung, hat die schon mal wer exerziert? http://www.linux-archive.org/gentoo-user/481167-mounting-root-partition-uuid...
Mit freundlichen Grüßen / Kind regards Ronny Seffner