* Marcus Maul schrieb am 29.Apr.2000:
Meines wissens läuft der Bootvorgang des Systems doch so ab: - Bios startet Programm im MBR (Lilo oder Kernel); - Lilo startet Kernel - Kernel untersucht das System und läd die entsprechenden Module, falls angegeben. - root-Filesystem wird gemountet.
ro gemountet.
- Jetzt wird der init gestartet. Und hier ist das Problem. Wo, bzw. wie heißt dieser Prozeß und wo liegt seine Konfigdatei?
Der Prozeß heißt /bin/init. Man kann dem Kernel auch einen andern mitgeben, z.B /bin/bash. Aber das ist was anderes. Die Konfigdatei lautet /etc/inittab.
- Danach wird der rcp-Daemon gestartet und die rc.init Scripte laufen entsprechend runlevel.
Das wird alles in der /etc/inittab geregelt. init macht nichts anderes als in der inittab nachzusehen, welche Prozesse gestartet werden sollen. Die inittab besteht aus vielen Einträgen mit je vier, durch : getrennte Spalten. In der ersten steht ein eindeutiger Kennzeichner. in der zweiten der runlevel, bei dem die Zeile zur Anwendung kommt, in der dritten Spalte steht wann der Prozeß gestartet werden soll und in der vierten Spalte schließlich steht der Befehl, der ausgeführt werden soll. In der dritten Spalte kann unter anderem wait, once oder respawn stehen. Steht da wait, so wird, wenn der runlevel zu dem runlevel gewechselt wird, der in der zweiten Spalte steht, der Befehl in der vierten Spalte ausgeführt und so lange gewartet, bis der Befehl abgearbeitet ist. Steht da aber nicht wait, sondern once, so wird der Befehl ausgeführt und gleich mit der nächsten Zeile weitergemacht. Steht da respawn, so geschieht das Gleiche, nur daß der Befehl sofort wieder ausgeführt wird, wenn der zugehörige Prozeß sich beendet hat. Weiterhin gibt es noch bootwait, boot und bootrespawn, die verhalten sich gleich, aber nur nach einem booten und nicht nach einem runlevelwechsel. Es gibt darüberhinaus auch noch ein powerwait, usw. die werden ausgeführt, nach dem der Strom alle ist. Wichtig sind folgende Einträge: i:I:bootwait:/sbin/init.d/boot Beim booten wird /sbin/init.d/boot ausgeführt und solange gewartet, bis es fertig ist. l2:2:wait:/sbin/init.d/rc 2 und andere runlevel. Wird ein runlevelwechsel nach runlevel 2 gemacht, so wird /sbin/init.d/rc 2 ausgeführt und solange gewartet bis es fertig ist. Natürlich auch beim booten, da auch hier ein runlevelwechsel stattfindet. Aber auch wenn z.B von runlevel 3 auf runlevel 2 gewechselt wird. 2:123:respawn:/sbin/mingetty tty2 und andere ttys. Hier wird bei einem runlevelwechsel nach 1, 2 oder 3 ein mingetty ausgeführt. Ein mingetty gibt eine Eingabemaske auf die Konsole aus und wartet bis sich einer einloggt. Falls das geschieht wird aus dem mingetty ein Login und schließlich eine shell. Wird diese beendet, so merkt das init und startet erneut ein mingetty, da es respawn ist.
Bei mir ist halt nun das Problem, was versteckt /ist der init-Prozess. Der scheint direkt von Kernel her aufgerufen zu werden.
Ja wird er. Kann man LILO mitgeben, wenn man was anderes will, z.B. linux init=/bin/bash würde ich aber nicht tun. ;)
Was wird eigendlich alles unter root-Filesystem zusammengefaßt, wenn es gemounted wird. Bzw. Wo kann ich expilziet angeben, was wann gemountet wird.
Es wird nur das rootfilesystem ro gemountet. Alles andere geschieht in /sbin/init.d/boot, daß ja von init aufgerufen wird. Da steht dann auch, wie weiter gemountet wird. Ist ein einfaches shellskript. Bernd -- LILO funktioniert nicht? Hast Du /etc/lilo.conf verändert und vergessen, lilo aufzurufen? Ist Deine /boot-Partition unter der 1024 Zylindergrenze? Bei anderen LILO Problemen mal in der SDB nachschauen: http://localhost/doc/sdb/de/html/rb_bootdisk.html |Zufallssignatur 6 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com