Re: "Trying to mount root from ufs"

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 21 Jun 2006 14:47:44 +0200 (CEST)

Nicola Tiling <nt(at)w4w.net> wrote:
> Nö - das ist es leider nicht. Wenn ich die erweiterte Protokollierung beim
> booten einschalte wird nach dem "Trying to mount..." noch "sbin/init" auf
> den Schirm geworfen - und dann ist bis zum Login Schluss auf dem Schirm, nur
> an der seriellen Schnittstelle wird weiter angezeigt. Ich verstehe nicht wie
> es gerade an der Stelle umschalten kann. boot.conf und loader.conf sind doch
> da schon längst abgearbeitet (?)

Das ist leider schlecht bis gar nicht dokumentiert (bzw.
teilweise sogar in irreführender Weise). Das Problem ist,
daß verschiedene Dinge als »Console« bezeichnet werden.

Die Low-Level-Console: Hier landen die printf(9)-Ausgaben
des Kernels (bei der VGA-Ausgabe meist an einer helleren
Schrift zu erkennen). Sie werden von einem sehr einfachen
"Treiber" erledigt, der direkt auf die Hardware (EGA/VGA
bzw. serielle Schnittstelle) zugreift. Genaugenommen ist
es kein Treiber, sondern nur ein Stück nackter Code, denn
er muß bereits ganz zu Beginn funktionieren, wenn noch gar
kein Treiber die Hardware untersucht und attached hat. Auf
dieses Stück Code wirken die Optionen "-D" und "-h".

Die High-Level-Console: Die Ausgaben von init(8), Single-
user-mode, /etc/rc usw. sowie Zugriffe auf /dev/console
landen hier (bei der VGA-Ausgabe an einer etwas dunkleren
Schrift zu erkennen). Dies ist sozusagen die »richtige«
System-Console. Welche das ist, kannst Du mit dem Komman-
do conscontrol(8) (oder auch »sysctl kern.console«) nach-
gucken; in Deinem Fall is es vermutlich ttyd0 (der erste
serielle Port). Die Angabe "consolectl" meint die syscons-
Console (genaugenommen wäre das eigentlich ttyv0, aber bei-
de Devices haben eine gemeinsame tty-Struktur im Kernel).

Der Login-Prompt schließlich, den Du im Multi-user-mode er-
hältst, hat gar nichts mit der Console zu tun. Er wird nur
durch einen entsprechenden Eintrag in /etc/ttys aktiviert,
so daß init(8) auf dem entsprechenden Terminal ein getty(8)
startet, was einen Login-Prompt produziert.

Siehe auch die conscontrol(8)-manpage.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
(On the statement print "42 monkeys" + "1 snake":)  By the way,
both perl and Python get this wrong.  Perl gives 43 and Python
gives "42 monkeys1 snake", when the answer is clearly "41 monkeys
and 1 fat snake".        -- Jim Fulton
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 21 Jun 2006 - 14:49:42 CEST

search this site