init startlevel per bootloader kommandozeile definieren?
init startlevel per bootloader kommandozeile definieren?
hallo hobbyfrickler !
kleiner scherz...
wie aus dem topic hoffentlich schon zu entnehmen ist , suche ich eine möglichkeit ,
möglichst mit GRUB (9x) , über einen befehl den startlvl als parameter in der kommandozeile
einzugeben . also unabhängig von bestimmten einträgen , als allgemeiner kommandozeilenbefehl . habe leider in der GRUB dokumentation nichts passendes gefunden , aber ich kann mir irgendwie nicht vorstellen und akzeptieren , dass es soetwas elementar wichtiges wirklich nicht geben sollte - beim besten willen nicht . ich wäre auch offen für andere bootloader , die mehr möglichkeiten bieten , habe eigentlich immer mit grub gearbeitet und war größtenteils zufrieden , bis auf mit der offziellen doku
es sollten nach möglichkeit auch die skripte für die standardstartlvl über nummern (z.b. init=3) als parameter aufgerufen werden , damit man nicht den villeicht geänderten skriptpfad für ein runlvl wissen muss .
mal abgesehen dass ich eine initlvl definition durch den bootloader für wichtig halte ,
würde ich damit auch gerne in einen textmodus starten , damit ich ein kaputtes X11 system reparieren kann , ohne dass ich das über ein externenes system machen muss...
mfg
kleiner scherz...
wie aus dem topic hoffentlich schon zu entnehmen ist , suche ich eine möglichkeit ,
möglichst mit GRUB (9x) , über einen befehl den startlvl als parameter in der kommandozeile
einzugeben . also unabhängig von bestimmten einträgen , als allgemeiner kommandozeilenbefehl . habe leider in der GRUB dokumentation nichts passendes gefunden , aber ich kann mir irgendwie nicht vorstellen und akzeptieren , dass es soetwas elementar wichtiges wirklich nicht geben sollte - beim besten willen nicht . ich wäre auch offen für andere bootloader , die mehr möglichkeiten bieten , habe eigentlich immer mit grub gearbeitet und war größtenteils zufrieden , bis auf mit der offziellen doku
es sollten nach möglichkeit auch die skripte für die standardstartlvl über nummern (z.b. init=3) als parameter aufgerufen werden , damit man nicht den villeicht geänderten skriptpfad für ein runlvl wissen muss .
mal abgesehen dass ich eine initlvl definition durch den bootloader für wichtig halte ,
würde ich damit auch gerne in einen textmodus starten , damit ich ein kaputtes X11 system reparieren kann , ohne dass ich das über ein externenes system machen muss...
mfg
Ob GRUB oder LILO: Den Runlevel kannst du einstellen, indem du an die Kernel-Kommandozeile (hinten an kernel= dranhängen bei GRUB, bzw. append=... bei LILO) eine 3 etc. dranhängst.
Alles, was der Kernel nicht versteht, (z.B. die 3) wertet er nicht aus. Die Kommandozeile ist nach dem Laden des Kernels und mounten von /proc unter /proc/cmdline auslesbar. Dort gucken init (und wenn du willst auch deine eigenen Skripte) nach, ob sie etwas finden, was sie verstehen.
Janka
Alles, was der Kernel nicht versteht, (z.B. die 3) wertet er nicht aus. Die Kommandozeile ist nach dem Laden des Kernels und mounten von /proc unter /proc/cmdline auslesbar. Dort gucken init (und wenn du willst auch deine eigenen Skripte) nach, ob sie etwas finden, was sie verstehen.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
danke für deine aufschlussreiche erklärung dazu , habe gestern noch durch zufall
das mit den initzahlen gesehen , aber jetzt ist es wenigstens klar , wie das abläuft - fast zumindest
weisst du zufällig noch , was es für prioritäten bei den skriptstartfolge gibt bzw
in welchem format/verzeichnissen die stehen müssen/dürfen ?
mfg
das mit den initzahlen gesehen , aber jetzt ist es wenigstens klar , wie das abläuft - fast zumindest
weisst du zufällig noch , was es für prioritäten bei den skriptstartfolge gibt bzw
in welchem format/verzeichnissen die stehen müssen/dürfen ?
mfg
SysV-Init (Linux-Standard) arbeitet beim Wechsel von einem Runlevel in den anderen (also beim Booten z.B. von 0 auf 3) /etc/init.d/rcX.d an, und schaut dort, welche Skripte ausgeführt werden sollen. Die Startskripte müssen Snn..., die Killskripte Knn... heißen. Sie werden einfach in der Reihenfolge der Zahlen nn ausgeführt.
Janka
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
Du kannst auf der Kernel-Kommandozeile keine Shellbefehle angeben, das ist ja schließlich keine Shell-Kommadozeile.
Bau dir ein eigenes Skript aus einer der Vorlagen in /etc/init.d/, in denen du /proc/cmdline auswertest, leg' das in /etc/init.d/ ab, verlinke es in /etc/init.d/rc3.d und /etc/init.d/rc5.d usw. passend. Schon wird es beim Hochfahren aufgerufen.
Wenn dein Skript ganz am Anfang von init aufgerufen werden soll, kannst du es auch in der /etc/inittab unter dem Label "si" ablegen. Allerdings ist dann nicht einmal /proc gemoutet, das musst du dann alles selbst machen.
Janka
Bau dir ein eigenes Skript aus einer der Vorlagen in /etc/init.d/, in denen du /proc/cmdline auswertest, leg' das in /etc/init.d/ ab, verlinke es in /etc/init.d/rc3.d und /etc/init.d/rc5.d usw. passend. Schon wird es beim Hochfahren aufgerufen.
Wenn dein Skript ganz am Anfang von init aufgerufen werden soll, kannst du es auch in der /etc/inittab unter dem Label "si" ablegen. Allerdings ist dann nicht einmal /proc gemoutet, das musst du dann alles selbst machen.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
Detail am Rande: Gibt einfach mal ein ein. Dort siehst Du die Parameter, die der Kernel beim Booten durch den Bootloader mitgegeben bekommen hat. Einige Distributionen mutzen diese Mittel, um eigene Boot-Optionen zu erstellen. Unter Gentoo bespielsweise kann man an der Bootzeile ein "gentoo=..." angeben, was einige Bootskripte dann parsen und darauf reagieren können. Das funktioniert, da der Kernel alle Argumente, die er nicht versteht, ignoriert. Daher auch die Möglichkeit, einen Runlevel am Bootprompt mit angeben zu können: Dem Kernel ist's egal, aber der init versteht's!
Jochen
Code: Select all
cat /proc/cmdline
Jochen
Die grösste Lüge der EDV? "Mal eben..."