LM v7 Walkthrough

Hallo,

Ich habe einen neuen Client hinzugefügt. Der bootet auch fein Linbo,
bleibt dann aber nach „Initilizing hardware …“ hängen. Wo kann ich suchen?

ist das ein echter Client?

Was für eine Grafikkarte?

Steht „initializing Hardware“ in weiß auf schwarzem HIntergrund?

LG

Holger

Was ist ein „echter“ Client - oder: wie kann ein Client „unecht“ sein? :wink:

Ja. Im log von tftp sieht man (wenn man verbose einschaltet) auch den Client zugreifen. Dann kommt ein Linbo-Splash-Screen mit Fehlermeldungen (ich habe auf dem Server tftp gestoppt, darum der Timeout in der 6. Zeile, dann kann man die sehen):

Danach käme der schwarze Bildschirm mit der Meldung „Initi…“ und nichts geht mehr.

Könnte eine „schwierige“ sein, also nicht Intel (Nvidea?), müßte ich schauen. Ubuntu läuft aber prima 'drauf.

Hallo,

ist das ein echter Client?

Was /ist/ ein „echter“ Client - oder: wie kann ein Client „unecht“ sein?
:wink:

ein virtualisierter wäre für mich nicht „echt“ … aber das war
missverständlich ausgedrückt.

Steht „initializing Hardware“ in weiß auf schwarzem HIntergrund?

Ja. Im log von tftp sieht man (wenn man verbose einschaltet) auch den
Client zugreifen. Dann kommt ein Linbo-Splash-Screen mit Fehlermeldungen
(ich habe auf dem Server tftp gestoppt, darum der Timeout in der 6.
Zeile, dann kann man die sehen):

s
https://ask.linuxmuster.net/uploads/default/original/2X/5/5cfc3d2658ba11c51dbcd22fc4d094c1edead938.jpeg

Danach käme der schwarze Bildschirm mit der Meldung „Initi…“ und nichts
geht mehr.

baumhof:

Was für eine Grafikkarte?

Könnte eine „schwierige“ sein, also nicht Intel (Nvidea?), müßte ich
schauen. Ubuntu läuft aber prima 'drauf.

die Grafikkarte etscheidet, welcher Kernelparameter die GUI an dem
Client erscheinen läßt.

Mach doch mal
lspci
unter ubuntu.

Ist der Client schon aufgenommen, oder ist er es noch nicht?
Welche IP bekommt er den (kannst du auf dem Server in /var/log/syslog
auslesen)

LG

Holger

Ja, es ist ein bare-metal Client, ein Dell Notebook.

Gibt’s da eine Doku? Wo trage ich die ein, ich nehme an, in der entsprechenden start.conf? Und wenn ja, welche? (Der Tip mit lspci hilft nicht, weil ich gerade nachhause gefahren bin, sonst wäre ich konkreter geworden :wink: )

Ja, der Client ist aufgenommen, nicht aufgenommen bekam er die .101 (da ich eine andere MAC für 100 konfiguriert hatte, das habe ich dann ersetzt), aufgenommen bekommt er nun die konfigurierte .100. Was mich übrigens auch irritiert: Warum läßt der Server wildfremde Clients Linbo booten?

Ich nutze übrigens immer erst die Suche unter wiki und docs, bekomme aber immer „Nichts gefunden.“ oder andere Themen. So habe ich zB auch dump/vampire nicht gefunden. :frowning: Was mach’ ich falsch?

Es gibt einen kleinen IP-Bereich (dhcp), der zur Aufnahme von Clients reserviert ist. Zunächst können solche Clients also nur per PXE booten, erhalten eine gültige IP-Adresse aus diesem Pool – sind aber bis dahin in keiner Hardwareklasse (HWK) eingetragen (und können somit auch nichts weiter anrichten).

Ich gehe hier aber (seit Jahren / aus Zeitgründen) „umgekehrt“ vor: Booten, Mac-Adresse notieren, Client direkt wieder stoppen, MAC in die devices.csv aufnehmen, linuxmuster-import-devices laufen lassen, Client nochmal booten, so dass er direkt in der richtigen HWK ist. Dann bis zur Linbo-Oberfläche booten. In diesem Moment kann man sich dann entscheiden, ob man das Partitionieren und Befüllen des Caches direkt am Client oder lieber am Server mit linbo-remote vornimmt. Mal ist ersteres mal zweiteres gerade bequemer.

Wenn es ein „unechter“ (virtualsierter) Host ist, kannst du den ja ggf auch remote wieder hochfahren. Die Parameter kannst du auch mit linbo-remote abfragen oder auch hier direkt unter LINBO → Konsole. Da funktionieren die wichtigsten, grundlegenden Befehle auch…

Ich denke: nichts :thinking: … ist alles noch zu neu, als dass die Doku schon soweit wäre. Leider muss man im Moment an mehreren Stellen schauen … diese Erfahrung musste ich auch schon machen.

Zur Meldung oben „no such device cache“ – schick doch mal die entsprechende start.conf.<hardwareklasse>
Schönen Gruß,
Michael

Nachtrag: das Kapitel zur Migration ist bereits in der offiziellen Doku, und zwar hier:
http://docs.linuxmuster.net/de/v7/systemadministration/maintenance/migration.html

Hallo,

Gibt’s da eine Doku? Wo trage ich die ein, ich nehme an, in der
entsprechenden |start.conf|? Und wenn ja, welche? (Der Tip mit |lspci|
hilft nicht, weil ich gerade nachhause gefahren bin, sonst wäre ich
konkreter geworden :wink: )

die Kernelparameter für linbo müssen in die
/srv/linbo/start.conf.

Nach der Rechneraufnahme mußt du selbst dort eine start.conf hinlegen:
z.B. von Hand durch runterkopieren aus /srv/linbo/examples/

Jede Änderung der start.conf sollte durch ein
linuxmuster-import-devices
„importiert“ werden: vor allem Änderungen bei der KernelOptions Zeile,
die das bootverhalten von linbo steuern.
Diese Änderungen werden durch den import in die Datei
/srv/linbo/boot/grub/.conf
eingetragen und dann beim booten von linbo verwendet.

Für dich relevante Kernelparameter wären:
AMD GraKa: nomodeset
Intel GraKa: i915.alpha_support=1

Aber wahrscheinlich ist bei dir das „im DHCP Lease befinden“ das
Problem: siehe unten.

Ja, der Client ist aufgenommen, nicht aufgenommen bekam er die .101 (da
ich eine andere MAC für 100 konfiguriert hatte, das habe ich dann
ersetzt), aufgenommen bekommt er nun die konfigurierte .100. Was mich
übrigens auch irritiert: Warum läßt der Server wildfremde Clients Linbo
booten?

der Bereich 10.0.0.100 bis 10.0.0.200 dient zur Rechneraufnahme: das ist
der DHCP Lease.
Die IP die du nach der Rechneraufnahme einem Client gibst, darf nicht in
diesem Lease liegen (dass du ihm die .100 gegeben hast, deutet aber
darauf hin).
Also ändere die IP in der Datei
/etc/linuxmuster/sophomorix/default-school/devices.csv
und ruf danach
linuxmuster-import-devices
auf.
Danach den Client wieder booten.

LG

Holger

# LINBO start.conf, example for ubuntu
# DON'T EDIT THIS FILE! MAKE A COPY AND ADAPT THE VALUES TO YOUR NEEDS!
# operating system on partition 1
# cache on partition 2
# swap on partition 3
# data on partition 4

[LINBO]                             # global section
Server = 10.16.1.1                   # linbo server ip address
Group = bionic
# IMPORTANT: server and group will be automatically set during device import!
Cache = /dev/sda2                   # cache partition
RootTimeout = 600                   # logout from admin console after 600 secs
AutoPartition = no                  # no partition repair during LINBO startup
AutoFormat = no                     # no formatting of all partitions during LINBO startup
AutoInitCache = no                  # no initial cache setup during LINBO startup
DownloadType = torrent              # image download method (torrent|multicast|rsync)
BackgroundFontColor = white         # font color of status section (default: white)
ConsoleFontColorStdout = lightgreen # console font color (default: white)
ConsoleFontColorStderr = orange     # console error font color (default: red)
SystemType = bios64                 # possible values: bios|bios64|efi32|efi64 (default: bios)
KernelOptions = quiet splash     # linbo kernel options, space separated
#KernelOptions = quiet splash modprobe.blacklist=radeon        # needed for AMD Graphics
#KernelOptions = acpi=noirq irqpoll # linbo kernel options example for use with acpi problems
#KernelOptions = server=10.0.0.5    # different pxe server ip, (needs device import to be activated)

[Partition]          # partition section (operating system)
Dev = /dev/sda1      # device name of the partition
Label = ubuntu       # partition label
Size = 35G           # partition size 30G, will use kiB if no unit (M, G or T) is set
Id = 83              # partition id (83 = linux)
FSType = ext4        # filesystem ext4
Bootable = yes       # set bootable flag yes

[Partition]          # partition section (cache)
Dev = /dev/sda2      # device name of the partition
Label = cache        # partition label
Size = 18G           # partition size 30G
Id = 83              # partition id (83 = linux)
FSType = ext4        # filesystem ext4
Bootable = yes       # set bootable flag yes

[Partition]          # partition section (swap)
Dev = /dev/sda3      # device name of the partition
Label = swap         # partition label
Size = 3G            # partition size 8G
Id = 82              # partition id (82 = swap)
FSType = swap        # filesystem swap
Bootable = no        # set bootable flag no

[Partition]          # partition section (data)
Label = data         # partition label
Dev = /dev/sda4      # device name of the partition
Size =               # partition size (no value = remaining space of the disk)
Id = 83              # partition id (83 = linux)
FSType = ext4        # filesystem ext4
Bootable = no        # set bootable flag no

[OS]                          # os section
Name = Ubuntu                 # os name
Version =                     # version (not used)
Description = Ubuntu 18.04    # detailed description of os
IconName = ubuntu.png         # icon filename in /srv/linbo/icons
Image =                       # filename of differential image (extension .rsync, optional)
BaseImage = lmn-bionic.cloop      # filename of main image (extension .cloop)
Boot = /dev/sda1              # boot partition (not used, identical with root partition)
Root = /dev/sda1              # root partition of the os
Kernel = vmlinuz              # relative path to kernel
Initrd = initrd.img           # relative path to initrd
Append = ro splash            # kernel append parameters
StartEnabled = yes            # show start button
SyncEnabled = yes             # show sync+start button
NewEnabled = yes              # show new+start button
Autostart = no                # automatic start of os (yes|no)
AutostartTimeout = 5          # timeout in secs for user to cancel automatic start
DefaultAction = sync          # default action on automatic start: start|sync|new
RestoreOpsiState = no         # restore opsi product state after sync (yes|no)
ForceOpsiSetup =              # comma separated list of opsi product ids, which are forced
                              # to setup after sync (e.g. mozilla.firefox,mozilla.thunderbird)
Hidden = yes                  # hide os tab (unused option, leave it at yes)

Aha! Das war’s - habe ihm die .99 gegeben und nun bootet er ins Linbo, allerdings ist das Fenster (Im Reiter unter „Start“) leer.

Die „error: no such device:“ Fehler sind noch da, die sind wohl normal? Sucht der auf der lokalen Platte (die ist ja jungfräulich)?

… also wenn LINBO bootet, kannst du den Client dort partionieren und auch den Cache befüllen lassen. Danach sollten die Meldungen weg sein. Solange der Client nur mit un-partitionierter Platte via PXE gebootet hat, kann er ja lokal nichts finden. Die Meldungen sollten also nach dem nächsten Schritt ebenfalls verschwinden.

Wie geht das? Im Reiter „Imaging“ sind ein paar dieser Funktionen auf Knöpfen verfügbar, aber sie führen zu roten Meldungen, dass kein Fehler passiert sei. Sie kehren aber so schnell zurück, dass ich nicht annehme, das dahinter etwas passiert…

Wenn das nur alles erklärt wäre. Ich lese linbo wo alle Screens, die ich auf dem Client sehe, abgebildet sind. Aber da steht zB „Sobald der Client registriert wurde“ aber es wird nicht gesagt, ab wann er das ist.

Nirgends wird da auf Dateien auf dem Sever eingegangen. Wie hängen diese zusammen? Wann wird welche Datei warum genutzt? Wann gilt ein Client als „registriert“ (in der /etc/linuxmuster/sophomorix/default-school/devices.csv ist er drin und linuxmuster-import-devices lief nach der letzten Änderung)? Wo finde ich logs, was auf dem Server passiert? Gibt es dazu Doku?

Hm – normalerweise geht das so:
Zunächst die Platte partitionieren. Dazu auf Imaging (Passwort vom Admin angeben), Partitionieren. Dann ist die lokale Platte schon mal gemäß der start.conf.<hwk> formatiert.
Anschließend sollt ein Klick auf den roten Button neu + start das cloop-Image vom Server holen, lokal in den Cache packen und es dann von dort aus auf die entprechende Partition entpacken.

Ein Client gilt in dem Moment als registriert, sobald er in der devices.csv erfasst wurde und linuxmuster-import-devices durchgelaufen ist. Das könnte in der Doku evtl etwas deutlicher formuliert werden.

Log-Dateien werden normalerweise vom Client zum Server geschickt und liegen auf dem Server unter
/var/log/linuxmuster/linbo – falls du wissen willst, wie die Cache-Partition auf dem Client aussieht, kannst du unter LINBO folgendes machen:

Console -->
mount 
fdisk -l
mount /dev/sda2 /cache
cd /cache
ls

Da liegen dann alle Dateien, die (bereits) vom Server geholt wurden und sich schon synchron auf dem Client befinden. Beim normalen Start via PXE wird die Cache-Partition nicht von LINBO gemountet – das geschieht erst, wenn sich der Client synchronisiert und etwas vom Server holen muss. Daher die o.g. Befehle.

Hallo,

das Registrieren geht meist in zwei Schritten:

  1. Über Imaging und dort Daten eintragen (nur beim ersten Client muss alles eingetragen werden. Bei allen weiteren werden nur noch Rechnername und IP-Adresse automatisch gesetzt)
  2. Importieren über die Konsole, oder aus der Weboberfläche (Webui)

alternativ:

gleich alles über die Webui (ist m.E. aber arbeitsintensiver und fehlerbehafteter, weil z.B. die MAC-Adresse falsch eingetragen werden kann).

Siehe auch: https://docs.linuxmuster.net/de/v7/getting-started/add-computer.html

Gruß

Alois

Nein, das habe ich natürlich probiert aber die Platte enthält immer noch den alten Inhalt.

Habe ich gemacht (beides) - dennoch: leeres Fenster.

Für einen Newbie wie mich würde ein identisches Bezeichnen helfen, ja :slight_smile:

das ist leer.

Dann muss ich den Client 3 mal eintragen:

  1. in /etc/linuxmuster/sophomorix/default-school/devices.csv und linuxmuster-import-devices
  2. über die Web-UI
  3. in Linbo auf dem Client

? Ich dachte der erste Schritt reicht? Mein „Gerät“ ist jedenfalls in der Web-UI bereits gelistet.

Ich dachte Eintragen von Geräten entspricht ändern der devices.csv und das „Save&Import“ in der Web-UI ist linuxmuster-import-devices? Aber was genau passiert, wenn ich den „Register“-Knopf in Linbo auf dem Client drücke?

Nochmal der Hinweis: Den Artikel „add-computer“ habe ich nicht gefunden, vielleicht wären mehr Links gut :wink:

Die Doku tendiert auch dazu, zuerst die Sonderfälle zu dokumentieren und den Standard und die Konzepte zu vernachlässigen. Ich fände es einfacher zu verstehen, wenn die Dokumentation andersherum vorginge.

Das sollte nicht sein. Deine start.conf sieht aber auf den ersten Blick richtig aus. Eine Frage habe ich dann aber doch: Ist die Server-Adresse bei dir 10.16.1.1 oder bist du bei den neuen defaults 10.0.0.1 geblieben? Dann wäre diese Einstellung in der start.conf falsch…

Die neue Adresse ist 10.0.0.1, die andere ist die IP des alten Servers. Ich hab die falsche, die aus dem lmn-bionic-1119 paket geschickt, die genutzte hat die richtige IP (und das ist der einzige Unterschied).

du kannst es auch vom Server auch versuchen —> linbo-remote --help

Zeigt mir das irgendwie, was mit dem client passiert ist, dass er ein leeres Fenster zeigt? Ich würde ja ungern jeden Client vom server aus manuell installieren, dies hab ich probiert:

root@server:~# linbo-remote -l
root@server:~# linbo-remote -i 10.0.0.99 -p partition
###
### linbo-remote (23447) start: Fr 14. Feb 08:23:42 CET 2020
###

Preparing onboot linbo tasks:
 10.0.0.99 ... Done.

###
### linbo-remote (23447) end: Fr 14. Feb 08:23:42 CET 2020
###

Der zweite Befehl zeigt keinen Fehler aber auf dem Client passiert nichts. Ich habe nochmal den Knopf „Partitionieren“ gedrückt, der sofort fertig ist und meldet:

Executing linbo_cmdpartition
Command executed with exit value 0Exit status: The process exited normally.

Die Partitionen sind danach nicht angelegt.

Dann ist etwas faul. Was ist das für Hardware? Wurde die Festplatte von LINBO erkannt? Das müsste oben rechts so ähnlich aussehen wie hier:
Screenshot_20200214_084347

Warum nicht? Langfristig geht das sogar schneller, wenn du keine Turnschuh-Administration machen musst …

Naja, ich stell den Rechner irgendwo ja auf, dann starte ich den ins PXE und sag, er soll sich installieren (habe ich mit dem LMv6 hier immer so gemacht). Fertig. Turnschuh machst du ja immer dann, wenn du an die HW mußt :wink:

Ja, wenn der Rechner aber schon irgendwo steht und du ihn evtl sogar per WOL aufwecken kannst, wäre es per linbo-remote oder aber die Schalter zur automatischen Installation in der start.conf.<hwk> schneller … aber es ist auch ein bisschen Geschmackssache.

Wurde die HDD denn nun erkannt? Oder ist das evtl eine nvme ssd, die andere Partitionsbezeichnungen als /dev/sda1 … benötigt?

Sorry, das hatte ich garnicht beantwortet. Und du hast recht, da stehen nur zwei Minuszeichen. Bei „Cache“ auch. Nanu? Der Rechner ist eigentlich nichts besonderes, die Platte ist /dev/sda. Ich kann die auch mounten, wenn ich im Linbo ein Terminal öffne.

Und Client IP ist „Offline“ und MAC auch :confused: