Linbo aus der Ferne booten bei Single-Boot

Viele unserer Rechner laufen nur mit Ubuntu, d.h. beim Rechnerstart wird direkt in Ubuntu gebootet ohne erst Linbo zu starten.

Gibt es einen Weg, Linbo aus der Ferne zu starten? Wenn ich z.B. ein neues Image syncen möchte? Bisher muss ich da von Hand an jeden Rechner und erst Linbo booten. Ich habe hier schon gelesen, dass das manche zeitgesteuert machen und z.B. nachts Linbo bootet und am Tag direkt Ubuntu. Gibt es da noch eine andere Möglichkeit - z.B. das beim Booten geschaut wird, ob irgendeine Datei auf dem Server vorhanden ist und dann entschieden wird ob Linbo oder direkt Ubuntu gestartet wird?

vG

Lieber “Zefanja”,

meinst Du das ?
https://www.linuxmuster.net/wiki/anwenderwiki:linbo:linbo_remote

L.G.
Christoph Gü

Hi Christoph,

nein, ich meine, wenn man mit einem linbo-remote Befehl einen Rechner aufwacht, der normalerweise nicht in Linbo startet, sondern direkt nach Ubuntu.

vG

Hi,
naja, Du kannst:

  • linbo-remote dazu benutzen, lediglich einen Rechner aufzuwecken, da dort etherwake oder ein ähnliches tool aufgerufen wird

  • mit etherwake den Rechner aufwecken und dann etwas später mit ssh Befehle “nachschießen”, die auf dem Rechner dann dort ausgeführt werden.

Mir ist leider noch nicht ganz klar, was genau Du wozu benötigst - in jedem Fall kannst Du ja Linux-Rechner herrlich über den (passwortlosen, da schlüsselgebundenen) ssh-Zugang fernsteuern - per Script oder händisch.

L.G.
Christoph G.

Ok, vielleicht habe ich mich nicht ganz klar ausgedrückt. Ich versuch’s noch mal ausführlicher :slight_smile:

Ich habe einen Rechner, den ich mit LINBO verwalte. Auf diesem Rechner läuft nur unser Standard-Ubuntu Image. Wenn ich den Rechner starte (ohne Anpassungen), dann startet zuerst Linbo und dann kann ich Ubuntu auswählen. Er bootet neu und startet Ubuntu.

Um das abzukürzen kann man Ubuntu auch direkt starten lassen, ohne das Linbo vorher gestartet wird. Das spart einiges an Zeit. (Siehe hier)

Das Problem an dieser Konfiguration ist, dass Linbo nicht mehr startet (will ich ja so), allerdings ist das ein Problem, wenn ich ein neues Image verteilen will. Dann möchte ich gern, dass Linbo statt Ubuntu startet.

Dafür suche ich eine Lösung. Am besten eine, die ich mit linbo-remote auslösen kann.

vG

Startest du die Rechner PXE oder bootest du lokal?

Beides - je nach Verlässlichkeit der Netzwerkverbindung :slight_smile:

Hallo Stephan,

… ich hab darüber nachgedacht, aber ich weiß nur einen Weg wie man das
umsetzen könnte: und der geht nicht über linbo, da du mit deinem “ubuntu
direkt ungesynct starten” ja linbo aus der bootreihenfolge und damit aus
dem Einfluss herausgenommen hast.

Dass ich nie vor dem Problem stand liegt daran, dass bei mir alle
Clients immer gesynctstarten: was ich auch noch immer nur empfehlen
kann, da man so auch das VOllaufen des Cleints verhindert.
Etwaige Bootzeitprobleme, dass es zu lange dauert, verhindere ich auf
zwei Arten:

  1. SSD einbauen -> Ubuntu Sync dauert unter 60 Sekunden
  2. geplantes wecken der Rechner durch cron an Schultagen um 7:20 Uhr

Wenn das beides keine option für dich ist, dann schildere ich mal, wie
ich glaube, dass man das hinbekommen könnte: es ist komplex

Du müßtest ein script in ubuntu umsetzen, dass eine Datei auf dem Server
(in /var/linbo/ mount bar als //server/linbo-remote ) ausliest und je
nach dem den grub neu schreibt.

linbo hat einen solchen Mechanismus der greift, wenn man linbo bootet.
Es erkennt eine Änderung der Datei /var/linbo/boot/grub/.cfg und
schreibt dann den grub lokal neu.
Diesen Mechanismus mußt du in ubuntu nachbilden: dann kannst du durch
editieren der genannten Datei auf dem Server das bootverhalten ändern.

unten meine unfertige Anleitung für die Datei.

Viele Grüße

Holger

## ## ## ##

Man geht so vor:
man editiert die Datei /var/linbo/boot/grub/.cfg
zuerst macht man auc

### managed by linuxmuster.net

diese Zeile

### NOT managed by linuxmuster.net

damit ein import_workstations nicht die Änderungen wieder weg macht.

Dann paßt man die folgenden Zeilen an.
Bei mir:

edit to your needs

set default=2
set timeout=3
set fallback=1

Dabei ignoriere ich set_fallback (hab ich nie gebraucht).

set_default hat folgende Werte:
0: linbo
1: erstes BS ungesynct
2: erstes BS gesynct
3: erstes BS foramt+sync
4: zweites BS ungesynct
5: zweites BS gesynct
6: zweites BS neu + start

Danach muß man am Client einmal linbo booten: es wird nicht ganz
starten, weil es vorher einen reboot macht, da linbo beim booten
bemerkt, dass die grub2.cfg Datei seiner Gruppe geändert wurde, schreibt
die Änderungen auf die Platte und startet neu.
Danach gilt die grub.cfg: egal ob on oder offline

Hallo,

genau davon dürfte es abhängen. Wenn Du vom Netz bootest, wird die Grub-Konfiguration auf dem Server verwendet, die kann linbo-remote überschreiben. Beim Start von der Festplatte könntest Du allenfalls Ubuntu booten und dann per SSH auf den Clients die Grub-Konfiguration auf dem Client anpassen.

Viele Grüße

Jörg

Hallo,

Mein Vorschlag:

Client boot Reihenfolge: 1.net 2. Hdd

Client Mbr sichern

Schulkonsole/workstations client pxe AUS

Dann versucht der client kurz übers Netz zu booten, bekommt nix, geht dann direkt in ubuntu

zum syncen pxe EIN, syncen remote oder lokal,

Mbr zurück schreiben

Gruß Claus

Hallo @jrichter,

Wie genau bekomme ich das hin? Ich habe linbo lokal auf der Festplatte, boote aber vom Netz. Egal welche Optionen ich bei linbo-remote verwende, er nutzt immer die lokale grub.conf, d.h. er bootet in Ubuntu und nicht in Linbo.

vG Stephan

Hi!

Wenn der Rechner per PXE bootet, holt er sich immer die grub.cfg vom Server.

VG, Thomas

Hi Thomas,

danke für deine Rückmeldung. Ich mache da scheinbar irgendetwas falsch oder habe es noch nicht verstanden.

Ich habe mehrere Rechner, auf denen nur Ubuntu läuft. Um Zeit beim Booten zu sparen, starten alle direkt nach Ubuntu ohne vorher in Linbo zu booten (ich habe die entsprechende gruppe.cfg bearbeitet).

Wenn ich jetzt diese Rechner per PXE boote (manuell oder per WOL) holt er sich vom Server die entsprechende grub.cfg (bzw. gruppe.cfg, oder?). Diese ist ja identisch zur lokalen grub.cfg.

Meine Frage: Wie kann ich erreichen, dass nicht die gruppe.cfg vom Server geholt wird, sondern eine andere (sodass ich Linbo booten kann)?

vG Stephan

@thomas: Ist das richtig so?

Meine Frage bleibt (siehe letzter Post).

Hallo Stephan,

Du musst die grub.cfg (also genauer die Datei /var/linbo/boot/grub/gruppe.cfg) editieren und in der Zeile set default = x den gewünschten Wert eintragen, z. B. 0 für Linbo booten und 2 für erstes OS gesynct

Wenn Du jetzt den Rechner per PXE startest, wird diese Konfiguration zum Booten verwendet.

Beste Grüße

Jörg

Hallo Jörg,

ja, das ist mir bekannt. Toll wäre es, wenn linbo-remote das übernehmen kann bzw. temporär eine grub config per PXE anbietet.

vG Stephan

Ich habe mir darüber auch auch schon Gedanken gemacht. Wir benutzen die Zeitgesteuerte Variante, die aber sehr unbequem ist, wenn es innerhalb der Unterrichtzeit etwas zu “linboen” gibt.

Meine Gedanke (aber ohne fertige Lösung) ist, nur via WOL über PXE zu booten. Dafür bieten die Bios meist eine Einstellung. Nur dann sollte Grub eine IP-Adresse haben. Und irgendwie sollte sich diese Abfragen lassen: Wenn IP vorhanden, dann default=0 ansonsten default=1. Würde also ein Anwender den PC anschalten, würde er lokal booten, damit keine IP haben und deshalb direkt Ubuntu booten. Würde ein Admin den PC via WOL booten, würde damit Linbo gestartet.

Wäre nur noch das Wort “irgendwie” zu füllen. Für die zeitgesteuerte Variante sieht es so aus:

if [ $TIME -ge 530 -a $TIME -lt 1400 ]; then
set default=1
fi

If-Abfragen gehen also mit Grub grundsätzlich. Ein paar Variablen stehen in https://www.gnu.org/software/grub/manual/grub/html_node/Network.html

In der Idee könnte so etwas gehen:

set default=1
if [ net_default_ip > “” ]
then
set default=0
fi

Aber ausprobiert habe ich es nicht.
Gruß
Frithjof

Hi @frithjof,

an so etwas habe ich auch schon gedacht (z.B. dhcp extension path oder eben auch die IP). Mit der IP könnte es funktionieren.

Mich würde noch interessieren, wie und wo entschieden wird, welche grub.cfg geholt wird, wenn man per PXE startet.

vG Stephan