Multiboot -> OS nach Wochentag

Einen wunderschönen guten Tag,

nachdem ich nun den Server, FW und VLANs aufgesetzt habe, läuft mein System ganz gut und stabil.

Allerdings ist das Hauptziel, welches ich mit Linuxmuster habe, noch nicht erreicht.

Der Client hält 2 Windows 10-Installationen vor. Beide laufen korrekt und stabil.

Allerdings möchte ich, dass der Client automatisch und gezielt in das erste oder das zweite System startet, und das je nach Wochentag…

Gibt es da eine Möglichkeit, das zentral zu realisieren? Heißt, ich muss nicht an jeden Arbeitsplatz gehen?

Mit freundlichen Grüßen
Robert

Hallo Robert,

herzlich willkommen bei uns :slight_smile:

Ich lasse die Clients bei mir ind er Schule crontab Einträge starten.
Dazwischen sitzt das script
schultag.sh
von Jesko, das abprüft ob Schultag ist, oder nicht.
Ich denke, crontab kann auch „abwechselnde“ Tage machen.
Wobei das nicht das gleiche ist wie „an ungeraden Tagen“ … aber ich glaube, das meintest du eh anders, da ja bei Datumsangaben gerne mal zwei ungerade Tage aufeinander folgen: 31.1 und 1.2 …
Also eher: Montag, Mittwoch, Freitag → A
und Dienstag, Donnerstag → B
Und das kann die crontab.

Voraussetzung ist aber, dass die Geräte per linbo-remote und damit per Wake On Lan starten.
Bei mir funktioniert das seit vielen Jahren.

Gerade fällt mir aber auch noch ein: man kann mit
linbo-remote -p
(schau dir mal linbo-remote --help an)
auch einen linbo-remote Befehl „für den nächsten Start“ hinterlegen: das täte es ja auch …
(in Kombination mit crontab und ohne WakeOnLan).

LG

Holger

Hallo Robert,

es gibt Anforderungen, die sieht man nicht jeden Tag. Aber ich frage nicht nach, warum die beiden Betriebssystem abwechselnd starten sollen.

Von der Idee her kann man mit linbo-remote vom Server aus den Rechnern mitteilen, was sie beim nächsten Start machen sollen.

linbo-remote -r cora -p start:2

Beim nächsten Hochfahren starten alle Rechner im Raum „cora“ das 2. Betriebssystem.
Diese Befehle (also für die anderen Tage … start:1) könnte man beispielsweise in einen Cronjob packen.
Was passiert, wenn an einem Tag die Rechner nicht hochgefahren werden? Ich glaube, dann überschreibt der nächste linbo-remote Befehl mit der Option -p den letzten Befehl. Diese werden übrigens im Verzeichnis /srv/linbo/linbocmd rechnerweise abgelegt.

Ehrlich gesagt, interessiert es mich schon, warum du das so machen willst.

Herzlich willkommen bei linuxmuster.net
Viele Grüße
Christian

Hallo,

Das Ziel ist es, in einem Kabinett an verschiedenen Wochentagen mit unterschiedlichen AGs jeweils deren System mit deren Software und Daten zu starten.

Also gehen die Lösungen nur, wenn die Rechner per WoL starten?

Oder fragt der Client beim Start den Server, welches System er starten soll? Es werden nicht immer alle Rechner gestartet, wie du gesagt hast.

Also soll ich einfach einen crontab anlegen?

Viele Grüße
Robert

Hallo Robert,

jein. Es geht auch ohne WOL:

der Befehl linbo-remote -i hostname -p start:2 legt eine start-commando-datei an, die so lange gilt, bis der entsprechende PC diese Datei abgeholt hat.

Das Abholen macht er wiederum nur, wenn per PXE gestartet wird. (bitte korrigiert mich hier, wenn ich falsch liege).

Daher ist WOL nicht wichtig, aber PXE-Start ist wichtig.

Selbst wenn ich falsch liege mit PXE-relevanz, dann gilt die start datei eben nicht nur an dem ungeraden Tag, sondern - falls der PC nicht gestartet wurde - auch am nachfolgenden Tag - oder wann auch immer er das nächste Mal gestartet wird.

Wenn du allerdings konsequent an jedem relevanten Tag ein start-commando absetzt und evtl. am Ende des Tages alle start-commando-dateien löschst, kriegst du das auch zuverlässig hin, was du möchtest.

Wenn die offline starten sollten (z.B. Laptops), dann wird es mir der Methode schwierig.

VG, Tobias

Hi,

Die Lösungsvorschläge taugen bedingt :slight_smile:

Die remote-Befehle mit -p erzeugen eine Pipe (daher das p) und das ist vereinfacht ausgedrückt eine Datei, die beim Lesen verschwindet. Das bedeutet, dass ein Rechner, der nach dem gewünschten ersten Start von Nutzern ungeplant neu gestartet wird, keine Anweisung mehr erhält, was er tun soll.

Das könntest du abmildern, indem du den Cronjob an Schulvormittagen alle halbe Stunde ausführen lässt… dann wäre nur noch blöd, wenn der rechner inmerhalb der halben Stunde zweimal startet.

Oder (so würde ich es probieren, falls ich nicjt den Leuten die das haben wollen einen husten würde :wink:
Erzeuge dir zwei start.conf die beide den gewünschten Autostart drin haben und lass sie von Cron an den gewünschten Tagen an die richtige Stelle kopieren.
Dann starten Rechner die am Netz hängen zuverlässig ins korrelte System

LG Jesko

Nebenbei: du brauchst die Startbefehle von linbo-remote -p nicht zu löschen, das passiert beim Start oder wenn der nächste Befehl geschickt wird.

1 „Gefällt mir“

Hallo,

ich hatte Heute, beim Unterrichten der Referendare, eine noch viel einfachere Lösung (glaub ich).
Einfach per cronjob die Datei
/srv/linbo/boot/grub/GRUPPE.cfg
austauschen und da drin das Startverhalten regeln.

       Das Bootverhalten von linbo wird über Einträge in der /srv/linbo/boot/grub/<gruppe>.cfg gesteuert.
               In dieser Datei kann man das grafische Bootmenü von Grub 2 aktivieren: dieses erscheint dann beim Booten noch vor linbo und kann an dieser Stelle alles ermöglichen:
                • direkter Start eines BS ohne linbo vorher zu starten
                • gesyncter start eines BS durch booten von linbo und Übergabe eines Parameters
               
               VORSICHT: in der Datei <gruppe>.cfg gibt es eine Zeile:
	 # ### managed by linuxmuster.net ###
               Verändert man diese Zeile nicht, so setzt ein linuxmuster-import-devices die Änderungen wieder zurück! Am Besten macht man # ### NOT managed by linuxmuster.net ### daraus

Wichtig ist also: welche default Werte gibt es?

0 → Linbo starten (die normale Linbo Oberfläche erscheint und wartet auf Interaktion)

1 → starte erstes BS direkt (also an linbo vorbei)

2 → starte erstes BS ungesynct, aber boote vorher in linbo

3 → starte erstes BS gesynct (linbo startet, aber die normale Oberfläche wird nicht angezeigt)

4 → starte erstes BS neu+star (linbo startet, aber die normale Oberfläche wird nicht angezeigt)

5 → starte **zweites** BS direkt (also an linbo vorbei)

6 → starte **zweites** BS ungesynct, aber boote vorher in linbo

7 → starte **zweites** BS gesynct (linbo startet, aber die normale Oberfläche wird nicht angezeigt)

8 → starte **zweites** BS neu+star (linbo startet, aber die normale Oberfläche wird nicht angezeigt)

… kann es so einfach sein? :slight_smile:

LG

Holger

Hallöchen,

erstmal vielen Dank für die Antworten und Vorschläge.

Das Tauschen der cfg-Datei erscheint mir noch als einfachste Lösung.

Es werden ja nicht immer alle Rechner gestartet und somit werden nicht bei jedem OS-Wechsel-Zyklus die Parameter geändert, da teilweise Rechner offline/aus waren.

Ich werde das mal probieren.

Hab jetzt nur ein kleines Problem: seit letzten Mittwoch geht kein Internet mehr auf den Clients.
Der Server pingt alles mögliche problemlos an.
Aber von den Clients kann ich den Server anpingen, jedoch weder die FW noch etwas außerhalb des Netzwerkes…

Habt ihr das schonmal gehabt?

Schönes Wochenende noch

Hallo Robert,

normalerweise ist die Namensauflösung das Problem.
Kannst du Hostnamen am Cleint auflösen?
Also gibt
ping heise.de
eine IP zurück, auch wenn der Ping nicht funktioniert?

Kann der Server Namen auflösen (genauso mit ping testen).

Je nach dem müssen wir dann nachschauen, wo das klemmt. Hab erst letzten Dienstag an der Hotline bei einer Schule genau so ein Problem behoben (da war das Setup aber mit einem PiHole vor der OPNsense aber etwas komplizierter).

LG

Holger

Hallo Holger,

danke für deine schnelle Antwort.

Hab davor mal bei den Geräten in der Schulkonsole nachgesehen und entdeckt, dass mein Client irgendwie eine IP hatte, die zu einem anderen Client zugewiesen war.

Nach ipconfig /renew und statt nur IP mal einen Hostnamen (heise.de) angepingt habe, gings wieder.

Frag nicht, wieso. VIelleicht wegen unterschiedlicher IP und MAC-Adresse hats gesperrt.

Nächstes Problem: Ich wollte mal statt linux Windows auf einem Client installieren (mit linbo).

Die Anleitung von Linuxmuster ist zwar gut und schön, aber das Setup sagt mir, dass die Festplatte im GPT-Stil ist und es desswegen nicht geht…

Habt ihr dafür auch eine Erklärung?

Ganz schönes Projekt, dass ich mir hier zugemutet habe :-).

Schönen Sonntag euch noch

Edit:
Einfach mal in der Dokumentation nachlesen wäre auch zu einfach gewesen…
https://docs.linuxmuster.net/de/latest/clients/client_templates/os_installation/windows10clients/index.html#install-windows10-clients-label
Da steht in einem Kasten genau das beschrieben, was bei mir nicht ging…
Jetzt gehts wieder… Sorry :expressionless: