From 99cad424b7c5f55d20368762cad714218c26db38 Mon Sep 17 00:00:00 2001 From: cweikl Date: Sun, 19 Jul 2026 21:40:48 +0200 Subject: [PATCH 01/29] changed initil version of linuxmuster.net on index --- source/about/about.rst | 2 +- source/about/what-is-new.rst | 10 +++++----- source/index.rst | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/about/about.rst b/source/about/about.rst index 279898dc..e55829ee 100644 --- a/source/about/about.rst +++ b/source/about/about.rst @@ -198,7 +198,7 @@ Bestehende Firewall Es kann auch eine bestehende Firewall weiter genutzt und vollständig in linuxmuster.net integriert werden. Da diese Intergration von deren verwendeten Betriebssystem abhängt und unterschiedliche Schritte erfordert, können wir nicht eine datailierte Anleitung hier aufzeigen. Geben aber Hinweise dazu im Kapitel `Anpassbar`_. -Selbstheilende Arbeitsstationen durch LINBO 4.3 +Selbstheilende Arbeitsstationen durch LINBO 7.4 +++++++++++++++++++++++++++++++++++++++++++++++ .. image:: media/structure_of_version_7_client.svg diff --git a/source/about/what-is-new.rst b/source/about/what-is-new.rst index c0c39810..edefd741 100644 --- a/source/about/what-is-new.rst +++ b/source/about/what-is-new.rst @@ -2,13 +2,13 @@ .. _`what-is-new-label`: =================== -Was ist neu in 7.3? +Was ist neu in 7.4? =================== .. sectionauthor:: `@cweikl `_, `@MachtDochNix `_ -Linuxmuster.net 7.3 ist das Release-Update der linuxmuster.net v7.2. Es erfolgt eine Aktualisierung der bisher eingesetzten Ubuntu LTS Version auf die Ubuntu Server LTS Version 24.04. Die Kernpakete der linuxmuster.net Lösung erhalten alle ein Update und stellen viele Verbesserungen und neue Features bereit. +Linuxmuster.net 7.4 ist das Release-Update der linuxmuster.net v7.3. Es erfolgt eine Aktualisierung der bisher eingesetzten Ubuntu LTS Version 24.04 auf die Ubuntu Server LTS Version 26.04. Die Kernpakete der linuxmuster.net Lösung erhalten alle ein Update und stellen viele Verbesserungen und neue Features bereit. Neue Funktionalitäten --------------------- @@ -19,10 +19,10 @@ Verbesserte Skalierbarkeit * Moderne Bereitstellung zusätzlicher IT-Dienste der Schule innerhalb der Schullösung Moderne Betriebssystembasis und Steuerung - * Aktuelle Betriebssysteme für die Server (Ubuntu Server 24.04 LTS) - * **Optionale** Firewall OPNsense |reg| ab v25.1 + * Aktuelle Betriebssysteme für die Server (Ubuntu Server 26.04 LTS) + * **Optionale** Firewall OPNsense |reg| ab v26.1 * Verbesserung der Performance des Samba-Dateiservers durch automatische Verlagerung der Shares auf eine zweite VM, die nur den Dateiserver aufnimmt. Nutzung von DFS als Dateisystem. - * Mit LINBO 4.3: aktuellste Linux-Kernels für aktuelle Hardware, differentielle Images, ntfs3 Kernel-Treiber, VNC-Server, mit neuem Namensschema zur einheitlichen Partitionierung + * Mit LINBO 7.6: aktuellste Linux-Kernels für aktuelle Hardware, differentielle Images, ntfs3 Kernel-Treiber, VNC-Server, mit neuem Namensschema zur einheitlichen Partitionierung * Webbasierte Steuerung der pädagogischen Funktionen mit einem **responsive design** (passt sich an alle Bildschirmgrößen und -auflösungen an). * WebUI mit vielen neuen administrativen Möglichkeiten wie die Verwaltung von Schulpersonal und Eltern * Bereitstellung von linuxmuster-tools, linuxmuster-api und linuxmuster-cli mit erweiterten Möglichkeiten zur Administration und Anbindung externer webbasierter Systeme diff --git a/source/index.rst b/source/index.rst index b90f28f8..f39f641e 100644 --- a/source/index.rst +++ b/source/index.rst @@ -2,7 +2,7 @@ Einführung ========== -Herzlich Willkommen zur Dokumentation von linuxmuster.net v7.3! +Herzlich Willkommen zur Dokumentation von linuxmuster.net v7.4! Diese beschreibt alle wichtigen Schritte ... @@ -32,7 +32,7 @@ Installation from Scratch ------------------------- Diese Dokumentation führt Dich durch eine Installation von Grund auf. Dies bedeutet, dass zunächst -die Vorbereitung der Virtualisierungslösungen - hier Proxmox - dokumentiert wird. Auf dem Virtualisierer sind sog. Virtuelle Maschinen (VM) anzulegen, um linuxmuster.net 7.3 installieren zu können. Hierzu gehört die spezifische Einrichtung des Netzwerks, des Speichers sowie die Vorbereitung der VMs. +die Vorbereitung der Virtualisierungslösungen - hier Proxmox - dokumentiert wird. Auf dem Virtualisierer sind sog. Virtuelle Maschinen (VM) anzulegen, um linuxmuster.net 7.4 installieren zu können. Hierzu gehört die spezifische Einrichtung des Netzwerks, des Speichers sowie die Vorbereitung der VMs. Weitere Hilfe ------------- @@ -46,7 +46,7 @@ Informationen zum Telefon-Support gibt es auf unser Projektseite ` Date: Sun, 19 Jul 2026 22:03:09 +0200 Subject: [PATCH 02/29] version for docs v7.4 beta indicated, minor setup fixes for flyout menue --- source/conf.py | 6 +++--- source/guided-inst.subst | 2 +- source/setup/setup.rst | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/conf.py b/source/conf.py index ddd074f3..b9ae8571 100644 --- a/source/conf.py +++ b/source/conf.py @@ -71,7 +71,7 @@ def setup(app): # General information about the project. project = u'linuxmuster.net' -copyright = u'2017-2025, linuxmuster.net' +copyright = u'2017-2026, linuxmuster.net' author = u'linuxmuster.net' # The version info for the project you're documenting, acts as replacement for @@ -79,9 +79,9 @@ def setup(app): # built documents. # # The short X.Y version. -version = u'latest' +version = u'v7.4' # The full version, including alpha/beta/rc tags. -release = u'latest' +release = u'v7.4 beta' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/source/guided-inst.subst b/source/guided-inst.subst index 9d62859c..a2f8517e 100644 --- a/source/guided-inst.subst +++ b/source/guided-inst.subst @@ -31,7 +31,7 @@ .. Hier Ersetzungen die sich bei Versionsänderungen angepasst werden sollen -.. |lts_version| unicode:: 24.04 .. LTS Versionsnummer +.. |lts_version| unicode:: 26.04 .. LTS Versionsnummer .. Hier feststehende Konstanten: diff --git a/source/setup/setup.rst b/source/setup/setup.rst index 2e312ef2..a160ee1f 100644 --- a/source/setup/setup.rst +++ b/source/setup/setup.rst @@ -2,7 +2,7 @@ .. _setup-label: ======================= -Setup v7.3 AD/DC Server +Setup v7.4 AD/DC Server ======================= .. sectionauthor:: `@cweikl `_, From d552aed95ca1dbf148fa1de7a25d4d8b506b7c8c Mon Sep 17 00:00:00 2001 From: cweikl Date: Tue, 21 Jul 2026 20:04:17 +0200 Subject: [PATCH 03/29] chapter migration from v7.3 to v7.4 updated --- source/migration/index.rst | 20 +++---- source/migration/upgrade.rst | 110 +++++++---------------------------- 2 files changed, 29 insertions(+), 101 deletions(-) diff --git a/source/migration/index.rst b/source/migration/index.rst index 19190ec6..0eb4ed71 100644 --- a/source/migration/index.rst +++ b/source/migration/index.rst @@ -3,23 +3,17 @@ .. _migration-label: =============================== - Migration auf linuxmuster 7.3 + Migration auf linuxmuster 7.4 =============================== .. sectionauthor:: `@cweikl `_ -Um auf die linuxmuster 7.3 zu migrieren: - -1. linuxmuster 7.1 wird noch eingesetzt: Migriere zunächst auf linuxmuster v7.2 und migriere anschliessend die bisherigen Linbo 2.4 Images auf Linbo 4. -2. Führe für linuxmuster v7.2 ein Update auf die aktuellsten Pakete durch. -3. Falls Du OPNsense |reg| als Firewall einsetzt, aktualisiere diese auf Version > v25.1. -4. Führe danach das Release-Upgrade durch. - -.. hint:: - - Der Fileserver für inuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbidnung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis grösseren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. - - Grundsätzlich kann linuxmuster.net 7.3 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. +Um auf die linuxmuster 7.4 zu migrieren: +1. Führe ein Update Deiner bisherigen linuxmuster.net Version auf linuxmuster v7.3 mit den aktuellsten Paketen durch. +2. Falls Du OPNsense |reg| als Firewall einsetzt, aktualisiere diese auf Version >= v26.1. +3. Für die OPNsense |reg|: Die bestehenden Firewall-Regeln werden bei einem Upgrade der OPNsense |reg| mitgenommen. Nach dem Update müssen diese unbedingt + in das neue Format für die Firewall-Regeln migriert werden. Dies erfolgt nach folgendem Vorgehen: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration +4. Führe danach das Release-Upgrade durch. Falls erforderlich führe nach dem Upgrade einen Neustart der Server durch. diff --git a/source/migration/upgrade.rst b/source/migration/upgrade.rst index 1e372b73..23ae2376 100644 --- a/source/migration/upgrade.rst +++ b/source/migration/upgrade.rst @@ -1,19 +1,19 @@ .. include:: /guided-inst.subst -.. _upgrade-from-7.2-label: +.. _upgrade-from-7.3-label: ===================== -Upgrade v7.2 auf v7.3 +Upgrade v7.3 auf v7.4 ===================== .. attention:: - Vor dem Upgrade auf linuxmuster.net v7.3 solltest Du unbedingt Snapshots Deiner VMs anlegen (Server und Firewall). + Vor dem Upgrade auf linuxmuster.net v7.4 solltest Du unbedingt Snapshots Deiner VMs anlegen (Server und Firewall). Ablauf ------ -1. Bringe zuerst den lmn7.2 Server auf den aktuellsten Paketstand. +1. Bringe zuerst den lmn7.3 Server auf den aktuellsten Paketstand. Führe dazu in der Konsole folgende Befehle aus: @@ -22,9 +22,11 @@ Führe dazu in der Konsole folgende Befehle aus: sudo apt update sudo apt dist-upgrade -2. Falls Du OPNsense |reg| als Firewall einsetzt, aktualisiere diese zunächst auf eine Version > 25.1. +2. Falls Du OPNsense |reg| als Firewall einsetzt, aktualisiere diese zunächst auf eine Version >= 26.1. -3. Führe das Upgrade auf die linuxmuster.net v7.3 - wie nachstehend beschrieben - durch. +3. Hast Du die OPNsense |reg| aktualisiert, werden Deine bisherigen Firewall-Regeln mitgenommen. Diese musst Du nun unbedingt auf das neue Format für Firewall-Regeln migrieren. Dies erfolgt wie hier beschrieben: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration + +4. Führe das Upgrade auf die linuxmuster.net v7.4 - wie nachstehend beschrieben - durch. Upgrade ------- @@ -35,17 +37,19 @@ Nachdem Du als Benutzer ``linuxadmin`` angemeldet bist, wechselst Du zum Benutze sudo -i -**a) Upgrade auf lmn73 durchführen** +**a) Upgrade auf lmn74 durchführen** -Für das Upgrade von linuxmuster.net v7.2 auf die Version v7.3 findest Du ein Upgrade Skript, das Ubuntu Server von 22.04 auf 24.04 LTS aktualisiert, neue Paketquellen für linuxmuster.net einträgt und danach linuxmuster.net auf die Version 7.3 bringt. +Für das Upgrade von linuxmuster.net v7.3 auf die Version v7.4 findest Du ein Upgrade-Skript, das Ubuntu Server von 24.04 LTS auf 26.04 LTS aktualisiert, neue Paketquellen für linuxmuster.net einträgt und danach linuxmuster.net auf die Version 7.4 bringt. Rufe das Skript wie folgt auf: .. code:: - /usr/sbin/linuxmuster-release-upgrade | tee /root/migration-to-lmn73.log + /usr/sbin/linuxmuster-release-upgrade + +.. attention:: -Auf diese Weise siehst Du die Rückmeldungen des Upgrade Skriptes und es wird parallel eine Log-Datei mitgeschrieben. + Falls Du Dich via SSH auf dem Server anmeldest, stelle sicher, dass Du als user ``root`` eine tmux-Session startest, damit das Upgrade nicht die SSH-Verbindung unterbricht. Das Upgrade dauert eine ganze Zeit. Du erhälst zu Beginn auf der Konsole den Hinweis, dass Du vor dem Upgrade einen Snapshot Deiner VM anlegen solltest. Zum Start des Upgrades musst Du dann den in der Konsole angezeigten Text eingeben und dies mit ENTER bestätigen. Danach startet das Upgrade. @@ -53,19 +57,23 @@ Prüfe während des Upgrades, ob Fehler ausgegeben werden. Im Nachgang kannst Du .. code:: - less /root/migration-to-lmn73.log + less /var/log/linuxmuster/linuxmuster-release-upgrade.log **b) Firewall & Server neu starten** Starte nach dem Upgrade sowohl die Firewall als auch den Server neu. -Melde Dich am Server an, Du solltest den Hinweis auf linuxmuster.net 7.3 sehen: +Melde Dich am Server an, Du solltest den Hinweis auf linuxmuster.net 7.4 sehen: + +.. todo:: + + Screenshot erneuern .. figure:: media/02-login-lmn-7.3.png :align: center - :alt: linuxmuster.net v7.3 Pakete an der Anmeldung. + :alt: linuxmuster.net v7.4 Pakete an der Anmeldung. - linuxmuster.net v7.3 + linuxmuster.net v7.4 Prüfe nun, ob alle Dienste korrekt gestartet wurden. @@ -75,80 +83,6 @@ Prüfe nun, ob alle Dienste korrekt gestartet wurden. Du siehst ggf. einen Hinweis auf `quotaon.service`, der sich allerdings nur auf die Root-Partition bezieht, für die keine Quota gesetzt werden kann. Dies entspricht dem erwarteten Verhalten. -**c) auf dem Server die Datei school.conf ergänzen** - -Beim Update wird die Datei ``/etc/linuxmuster/sophomorix/default-school/school.conf`` nicht verändert, um eigene Eintragungen in dieser Datei nicht zu überschreiben. - -Bitte ergänze jetzt diese Datei wie nachstehend beschrieben, um die neuen Rollen zur Verfügung zu stellen: - -.. code:: - - # bis hierin gibt es bereits Eintragungen - [role.schooladministrator] - QUOTA_DEFAULT_GLOBAL = 1506 - ... - # danach folgende Rollen eintragen - [role.parent] - QUOTA_DEFAULT_GLOBAL = 1506 # eigenen Wert eintragen - QUOTA_DEFAULT_SCHOOL = 1506 # eigenen Wert eintragen - MAILQUOTA_DEFAULT = 156 # eigenen Wert eintragen - CLOUDQUOTA_PERCENTAGE = 100 # eigenen Wert eintragen - WEBUI_PERMISSIONS = - MAILDOMAIN = # ggf. eigenen Wert eintragen - MAIL_LOCAL_PART_SCHEME = - MAIL_LOCAL_PART_MAP = - [role.staff] - QUOTA_DEFAULT_GLOBAL = 1506 # eigenen Wert eintragen - QUOTA_DEFAULT_SCHOOL = 1506 # eigenen Wert eintragen - MAILQUOTA_DEFAULT = 156 # eigenen Wert eintragen - CLOUDQUOTA_PERCENTAGE = 100 # eigenen Wert eintragen - WEBUI_PERMISSIONS = - MAILDOMAIN = # ggf. eigenen Wert eintragen - MAIL_LOCAL_PART_SCHEME = - MAIL_LOCAL_PART_MAP = - # danach folgt wieder - [type.adminclass] - ... - [userfile.extrastudents.csv] - ... - # danach fügst Du folgende Angaben für die CSV-Dateien noch vor [devicefile.devices.csv] ein - [userfile.parents.csv] - FILTERSCRIPT = --- - ENCODING = UTF8 - ENCODING_FORCE = yes - SURNAME_CHARS = 8 - FIRSTNAME_CHARS = 3 - SURNAME_FIRSTNAME_REVERSE = yes - RANDOM_PWD = yes - PWD_LENGTH = 10 - TOLERATION_TIME = 0 - DEACTIVATION_TIME = 0 - CLASSNAME_SLASH_TO_HYPHEN = FALSE - MAILDOMAIN_BY_GROUP = - [userfile.staff.csv] - FILTERSCRIPT = --- - ENCODING = UTF8 - ENCODING_FORCE = yes - SURNAME_CHARS = 3 - FIRSTNAME_CHARS = 2 - SURNAME_FIRSTNAME_REVERSE = yes - RANDOM_PWD = yes - PWD_LENGTH = 10 - TOLERATION_TIME = 0 - DEACTIVATION_TIME = 0 - CLASSNAME_SLASH_TO_HYPHEN = FALSE - MAILDOMAIN_BY_GROUP = - -Speichere diese Ergänzungen in der Datei ``/etc/linuxmuster/sophomorix/default-school/school.conf`` ab und starte die WebUI neu mit: - -.. code:: - - systemctl restart linuxmuster-webui.service - -Ab sofort kannst Du nun mit den neuen Benutzerrollen in der WebUI arbeiten. - -.. hint:: - Falls Du das Upgrade ohne Rückmeldungen und manuellen Reboot durchführen möchtest, nutze `/usr/sbin/linuxmuster-release-upgrade --force --reboot`. Achte darauf, dass nach dem Reboot des Servers ebenfalls die Firewall neu zu starten ist. From 198a39c3f34a1bd57066a7aba98aec6517a155bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Wed, 22 Jul 2026 01:04:34 +0200 Subject: [PATCH 04/29] Fix v7.4 doc inconsistencies: stale legacy kernel version, LINBO version typo, broken KernelOptions reference - use_linbo4/index.rst: legacy kernel channel example still said 5.15, but the channel was updated to 6.1.x (see linuxmuster-linbo7 changelog) - what-is-new.rst: LINBO 7.6 -> LINBO 7.4 to match the package version used everywhere else - use_linbo4/index.rst: KernelOptions_ was an unresolved Sphinx hyperlink reference with no matching target --- source/about/what-is-new.rst | 2 +- source/clients/use_linbo4/index.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/about/what-is-new.rst b/source/about/what-is-new.rst index edefd741..71ea03fc 100644 --- a/source/about/what-is-new.rst +++ b/source/about/what-is-new.rst @@ -22,7 +22,7 @@ Moderne Betriebssystembasis und Steuerung * Aktuelle Betriebssysteme für die Server (Ubuntu Server 26.04 LTS) * **Optionale** Firewall OPNsense |reg| ab v26.1 * Verbesserung der Performance des Samba-Dateiservers durch automatische Verlagerung der Shares auf eine zweite VM, die nur den Dateiserver aufnimmt. Nutzung von DFS als Dateisystem. - * Mit LINBO 7.6: aktuellste Linux-Kernels für aktuelle Hardware, differentielle Images, ntfs3 Kernel-Treiber, VNC-Server, mit neuem Namensschema zur einheitlichen Partitionierung + * Mit LINBO 7.4: aktuellste Linux-Kernels für aktuelle Hardware, differentielle Images, ntfs3 Kernel-Treiber, VNC-Server, mit neuem Namensschema zur einheitlichen Partitionierung * Webbasierte Steuerung der pädagogischen Funktionen mit einem **responsive design** (passt sich an alle Bildschirmgrößen und -auflösungen an). * WebUI mit vielen neuen administrativen Möglichkeiten wie die Verwaltung von Schulpersonal und Eltern * Bereitstellung von linuxmuster-tools, linuxmuster-api und linuxmuster-cli mit erweiterten Möglichkeiten zur Administration und Anbindung externer webbasierter Systeme diff --git a/source/clients/use_linbo4/index.rst b/source/clients/use_linbo4/index.rst index a0046456..266f0ba9 100644 --- a/source/clients/use_linbo4/index.rst +++ b/source/clients/use_linbo4/index.rst @@ -1027,7 +1027,7 @@ Auf dem Server befindet sich unter ``/etc/linuxmuster/linbo/custom_kernel.ex`` e Kopiere die Datei Vorlage ``/etc/linuxmuster/linbo/custom_kernel.ex`` nach ``/etc/linuxmuster/linbo/custom_kernel``. Editiere diese Datei nun so, dass der gewünschte Kernel auf dem Client gebootet wird. Sind in der Datei alle Zeilen auskommentiert, dann startet der Client einen letzten stable Kernel. -- Es kann alternativ der **5.15er Kernel (legacy)** genutzt werden. Dazu müssen einfach in der Datei ``/etc/linuxmuster/linbo/custom_kernel`` die folgenden Zeilen eingetragen werden. Es ist nur das Kommentarzeichen für die zweite Zeile zu entfernen. +- Es kann alternativ der **6.1er Kernel (legacy)** genutzt werden. Dazu müssen einfach in der Datei ``/etc/linuxmuster/linbo/custom_kernel`` die folgenden Zeilen eingetragen werden. Es ist nur das Kommentarzeichen für die zweite Zeile zu entfernen. .. code:: @@ -1132,7 +1132,7 @@ Kernel-Options verwenden ------------------------ Auf dem Server findet sich pro Hardwareklasse eine start.conf Datei unter: ``/srv/linbo/start.conf.`` -Um Besonderheiten einzelner Hardwareklassen anzupassen, gibt es den Eintrag **KernelOptions_**. +Um Besonderheiten einzelner Hardwareklassen anzupassen, gibt es den Eintrag **KernelOptions**. .. code:: From 5341742d56a5661347367811a9023423e58ae5ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Wed, 22 Jul 2026 01:22:48 +0200 Subject: [PATCH 05/29] Fix spelling/grammar in v7.4 doc changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rechtschreib-/Grammatikfehler in den seit v7.3 geänderten Kapiteln korrigiert (Tippfehler, Verbkonjugation, Adjektivendungen, ein defekter Link mit Komma statt Punkt in einer URL, PIECELEN-Variablenname und linbo-torrent-Dateiname korrigiert). --- source/about/about.rst | 18 +++++------ source/about/what-is-new.rst | 2 +- source/classroom/access-control.rst | 6 ++-- source/classroom/exam-and-transfer.rst | 18 +++++------ source/classroom/webui-basics/index.rst | 22 +++++++------- .../os_installation/linux-clients/index.rst | 12 ++++---- source/clients/use_linbo4/index.rst | 30 +++++++++---------- source/external-services/unifiwlan/index.rst | 18 +++++------ source/index.rst | 4 +-- .../basis_file_server.rst | 6 ++-- .../install-from-scratch/basis_server.rst | 12 ++++---- .../install-from-scratch/lmn_pre_install.rst | 14 ++++----- source/installation/proxmox/index.rst | 20 ++++++------- source/migration/index.rst | 2 +- source/migration/upgrade.rst | 2 +- source/setup/setup-file-server.rst | 8 ++--- source/setup/setup.rst | 2 +- .../network/radius/index.rst | 28 ++++++++--------- .../printer/configure-ad-group.rst | 4 +-- 19 files changed, 114 insertions(+), 114 deletions(-) diff --git a/source/about/about.rst b/source/about/about.rst index e55829ee..98645294 100644 --- a/source/about/about.rst +++ b/source/about/about.rst @@ -10,14 +10,14 @@ Was ist linuxmuster.net? linuxmuster.net ist eine Komplettlösung für den digital unterstützten Unterricht für Schüler:innen und Lehrer:innen einer zeitgemäßen Bildungseinrichtung. -Die langjährigen Erfahrungen aller Beteiligten aus der linuxmuster.net Gemeinde haben gezeigt, dass sich ein Firnmennetzwerk fundamental von den Anforderungen an ein -heutige Schulnetz unterscheiden. +Die langjährigen Erfahrungen aller Beteiligten aus der linuxmuster.net Gemeinde haben gezeigt, dass sich ein Firmennetzwerk fundamental von den Anforderungen an ein +heutiges Schulnetz unterscheidet. Die Entwicklung von linuxmuster.net greift all diese Anforderungen auf und stellt eine modulare Lösung für ein Schulnetz zur Verfügung. Diese kann von einer Ein-Server-Lösung (mit drei virtuellen Maschinen - VMs) bis hin zu einer Mehr-Server-Lösung mit Cloud-Anbindung und BYOD-Integration und mehreren physikalischen Servern skaliert werden. -Die Anforderungen, die heute an ein Schulnetz gestellt werden, erklären wir im nachfolgenden Abschnitten detailliert. Im Anschluss zeigen wir auf, wie linuxmuster.net diese umsetzt. +Die Anforderungen, die heute an ein Schulnetz gestellt werden, erklären wir in den nachfolgenden Abschnitten detailliert. Im Anschluss zeigen wir auf, wie linuxmuster.net diese umsetzt. Schulnetzwerk vs. "normales" Netzwerk ===================================== @@ -68,13 +68,13 @@ Im Prinzip gibt es vier große Merkmale, die auffallen: Zum Schuljahreswechsel verlässt eine große Anzahl an Schüler:innen die Einrichtung und neue Schüler:innen müssen in das System eingepflegt werden. Die Zusammensetzung der Klassen, Kurse und Arbeitsgruppen werden zu großen Teilen neu formiert, so dass Änderungen an bestehenden Schüler:innen erforderlich sind. - Solch ein administrativen Aufwand ergibt sich in einer Firma selten. + Solch ein administrativer Aufwand ergibt sich in einer Firma selten. 4. Der Umgang mit den Arbeitsmitteln Schüler:innen teilen sich ein und dasselbe Arbeitsmittel im schulischen Alltag. Dabei ist es für die nächste Unterrichtseinheit entscheidend, dass zum Start immer eine einheitliche und funktionsfähige Umgebung auf den Rechnern vorhanden ist. Die zeitliche Taktung zwischen den Wechseln kann sehr kurz sein. - Dies ist in einer Firma so nicht gegeben. Wenn ein User seinen Rechner verlässt, findet er ihn der Regel immer genauso wieder. + Dies ist in einer Firma so nicht gegeben. Wenn ein User seinen Rechner verlässt, findet er ihn in der Regel immer genauso wieder. Aus diesen Gründen sprechen wir von einem @@ -99,7 +99,7 @@ Unser Anspruch liegt dabei auf der Bereitstellung eines Systems, das folgende Pu :name: structure-over-all :alt: gesamte Struktur -Ein Augenmerk liegt dabei auf der Unabhängigkeit eingesetzter Hard- und Software. Dieses wird unter anderem an dem Umfang der unterstützten Betriebssysteme für die Arbeitsstationen erkennbar. +Ein Augenmerk liegt dabei auf der Unabhängigkeit eingesetzter Hard- und Software. Dies wird unter anderem an dem Umfang der unterstützten Betriebssysteme für die Arbeitsstationen erkennbar. Proprietäre Betriebssysteme, |zb| aus dem Hause Microsoft |reg|, können aufgrund der Lizenzpolitik der Hersteller nicht von uns vorbereitet ausgeliefert werden. Diese lassen sich aber ebenso leicht in unsere Infrastruktur integrieren, wie solche, die als Open-Source erhältlich sind. @@ -141,7 +141,7 @@ Die Benutzer- und Gruppenverwaltung orientiert sich an den Bedürfnissen, die de * Schüler:innen bekommen mit der Einschulung ihren persönlichen Benutzer-Account. * Dieser bleibt ihnen bis zum Ende ihrer Laufbahn an der Schule erhalten. - * Die Gruppenzugehörigkeit der einzelnen Schüler:innen werden in Klassen, Kursen und Projekten abgebildet. + * Die Gruppenzugehörigkeit der einzelnen Schüler:innen wird in Klassen, Kursen und Projekten abgebildet. * Zu Beginn eines Schuljahres können diese Daten und Abhängigkeiten aus der Schulverwaltung mittels Import der Daten eingespielt bzw. fortgeschrieben werden. Gleiches gilt selbstverständlich auch für Veränderungen während eines laufenden Schuljahres. * Für Lehrer:innen gilt dies ebenso. @@ -195,7 +195,7 @@ Für weitergehende Informationen `siehe opnsense.org `_. Bestehende Firewall ^^^^^^^^^^^^^^^^^^^ -Es kann auch eine bestehende Firewall weiter genutzt und vollständig in linuxmuster.net integriert werden. Da diese Intergration von deren verwendeten Betriebssystem abhängt und unterschiedliche Schritte erfordert, können wir nicht eine datailierte Anleitung hier aufzeigen. Geben aber Hinweise dazu im Kapitel `Anpassbar`_. +Es kann auch eine bestehende Firewall weiter genutzt und vollständig in linuxmuster.net integriert werden. Da diese Integration von deren verwendeten Betriebssystem abhängt und unterschiedliche Schritte erfordert, können wir nicht eine detaillierte Anleitung hier aufzeigen. Geben aber Hinweise dazu im Kapitel `Anpassbar`_. Selbstheilende Arbeitsstationen durch LINBO 7.4 @@ -216,7 +216,7 @@ Das Konzept der Selbstheilenden Arbeitsstationen (SheilA) ermöglicht einheitlic * Möglichkeit sich via VNC auf den LINBO-Client aufzuschalten. * mit sogenannten Postsync-Scripten kann der Administrator für einzelne, raumweite oder für alle Geräte notwendige Konfigurationsänderungen beim Systemstart einpflegen. -Nähere Information sind im Kapitel "Clientverwaltung" beschrieben. +Nähere Informationen sind im Kapitel "Clientverwaltung" beschrieben. Integration unterschiedlicher Geräte (BYOD) +++++++++++++++++++++++++++++++++++++++++++ diff --git a/source/about/what-is-new.rst b/source/about/what-is-new.rst index 71ea03fc..7ddf6f34 100644 --- a/source/about/what-is-new.rst +++ b/source/about/what-is-new.rst @@ -58,7 +58,7 @@ Selbstheilende Arbeitsstationen * Weitere Neuerungen in LINBO sind u.a.: * Aktuelle Linux-Kernel ab 6.12.* und einem nativen NTFS-Kernel Treiber - * Neues einheitliches Partitionsschema mit neuem Namenschemata + * Neues einheitliches Partitionsschema mit neuem Namensschema * Konsolidierung der Start-Parameter * VNC-Server auf den Clients für Remote-Zugriff * Inventarisierung der Clients mit hwinfo diff --git a/source/classroom/access-control.rst b/source/classroom/access-control.rst index 8f346a30..c7ada996 100644 --- a/source/classroom/access-control.rst +++ b/source/classroom/access-control.rst @@ -7,7 +7,7 @@ In einer Klasse und einem Kurs kann einzelnen Personen oder dem gesamten Kurs / der Klasse die Berechtigung zu Drucken oder der Zugriff auf WLAN und Internet gegeben oder genommen werden. Voraussetzung für diese Funktionen ist die :ref:`Aufnahme des Schülers ` in einen Kurs. -Öffne in der Schulkonsole unter ``KLASSENZIMMER -> Kurse`` wähle die geünschte Klasse oder den gewünschten Kurs. +Öffne in der Schulkonsole unter ``KLASSENZIMMER -> Kurse`` wähle die gewünschte Klasse oder den gewünschten Kurs. .. figure:: media/webui-teachers-select-session.png :align: center @@ -15,7 +15,7 @@ In einer Klasse und einem Kurs kann einzelnen Personen oder dem gesamten Kurs / Wähle die Klasse / Gruppe aus -Es wird Liste mit Schülern des Kurses bzw. der Klasse angezeigt. +Es wird eine Liste mit Schülern des Kurses bzw. der Klasse angezeigt. .. figure:: media/webui-teachers-list-session.png :align: center @@ -36,7 +36,7 @@ Für jeden einzelnen und für alle Schüler können folgende Funktionen aktivier Spalten mit den zu-/abschaltbaren Funktionen pro Schüler -Soll eine Funktion für alle Schüler aktiviert werden, klickst Du nur auf das Symbol des Spaltenkopfen (z.B. WLAN). +Soll eine Funktion für alle Schüler aktiviert werden, klickst Du nur auf das Symbol des Spaltenkopfes (z.B. WLAN). .. figure:: media/webui-teachers-session-columns-wlan-activated.png :align: center diff --git a/source/classroom/exam-and-transfer.rst b/source/classroom/exam-and-transfer.rst index 205fdb3c..9344c48c 100644 --- a/source/classroom/exam-and-transfer.rst +++ b/source/classroom/exam-and-transfer.rst @@ -24,7 +24,7 @@ in einen Kurs/Klasse. Starte die Session für die Klasse -Hast Du einen Kurse / eine Klasse ausgewählt, wird Dir die Liste mit Schülern des Kurses / der Klasse angezeigt. +Hast Du einen Kurs / eine Klasse ausgewählt, wird Dir die Liste mit Schülern des Kurses / der Klasse angezeigt. .. figure:: media/webui-teachers-session-members.png :align: center @@ -34,7 +34,7 @@ Hast Du einen Kurse / eine Klasse ausgewählt, wird Dir die Liste mit Schülern Du kannst den Prüfungsmodus entweder für alle zusammen über das Prüfungssymbol im Spaltenkopf aktivieren. -Alternativ kannst Du für einzelne Prüflingen den Prüfungsmodus starten, indem Du in der Zeile des Prüflings das Prüfungssymbol klikcst. +Alternativ kannst Du für einzelne Prüflingen den Prüfungsmodus starten, indem Du in der Zeile des Prüflings das Prüfungssymbol klickst. .. figure:: media/exam-icon.png :align: center @@ -116,7 +116,7 @@ Danach erscheint eine Rückfrage zur Bestätigung: Bestätige das Beenden des Prüfungsmodus -Du erhälst ein Fenster mit der Nachfrage, ob Du den Prüfungsmodus wirklich beenden möchstest. Hast Du alle gewünschten Daten der Prüflinge zuvor eingesammelt, bestätige diesen Vorgang mit ``PRÜFUNGSMODUS BEENDEN``. +Du erhältst ein Fenster mit der Nachfrage, ob Du den Prüfungsmodus wirklich beenden möchtest. Hast Du alle gewünschten Daten der Prüflinge zuvor eingesammelt, bestätige diesen Vorgang mit ``PRÜFUNGSMODUS BEENDEN``. .. figure:: media/webui-teachers-session-members.png :align: center @@ -136,7 +136,7 @@ Ablauf der Prüfung 1. Der Lehrer meldet sich an der Schulkonsole an. 2. Der Lehrer wählt unter KLASSENzimmer -> Kurs -> Klasse die gewünschte Klasse aus. 3. Der Lehrer aktiviert mit dem Prüfungssymbol den Prüfungsmodus. -4. Der Lehrer teilt den Prüflingen im Raum mit wie diese sich am PC für die Prüfung anmelden müssen (+"-exam" & bisheriges Kennwort). +4. Der Lehrer teilt den Prüflingen im Raum mit wie diese sich am PC für die Prüfung anmelden müssen (+"-exam" & bisheriges Kennwort). 5. Der Lehrer teilt die Prüfungen und ggf. weitere Vorlagen an die Prüfungsteilnehmer aus. 6. Die Dateien liegen für die Prüfungsteilnehmer im Verzeichnis ``transfer/LEHRER/``. 7. Schüler nutzen die bereitgestellten Daten und erstellen ihre Lösungen. @@ -322,7 +322,7 @@ Der Lehrer sieht in der Schulkonsole die abgegebenen Dateien. Um die Liste mit d Prüfung: abgegebene Dateien einsehen Um vor Abschluss der Prüfung alle Abgaben einzusammeln, klickst Du unten links auf ``Von allen einsammeln``. -Klicke nun auf ``Move _collect cirectory from all members``. Es werden nun alle Abgaben in das Verzeichnis des Lehrers zum Einsammeln der Dateien verschoben. +Klicke nun auf ``Move _collect directory from all members``. Es werden nun alle Abgaben in das Verzeichnis des Lehrers zum Einsammeln der Dateien verschoben. .. figure:: media/webui-exam-collect-all-files.png :align: center @@ -338,17 +338,17 @@ Klicke nun auf ``Move _collect cirectory from all members``. Es werden nun alle Prüfung beenden ^^^^^^^^^^^^^^^ -Nachdem alle Dateien eingsammelt wurden, beendet der Lehrer den Prüfungsmodus. +Nachdem alle Dateien eingesammelt wurden, beendet der Lehrer den Prüfungsmodus. Hierzu klickst Du auf das rot hinterlegte Prüfungssymbol im Spaltenkopf, um für alle Prüflingen den Prüfungsmodus zu beenden. -Sollten für Prüflinge untzerschiedliche Prüfungszeiten gelten, so beendest Du pro Prüfling deren Prüfung zeilenweise einzeln. +Sollten für Prüflinge unterschiedliche Prüfungszeiten gelten, so beendest Du pro Prüfling deren Prüfung zeilenweise einzeln. Abgaben einsehen ^^^^^^^^^^^^^^^^ Du kannst als Lehrer wähend der Prüfung bereits eingesammelte Ordner und Dateien einsehen. Gehe hierzu unten auf ``Eingesammelte Dateien durchschauen`` -Es öffnet sich ein Fenster mit den einsammelten Ordnern und Dateien. +Es öffnet sich ein Fenster mit den eingesammelten Ordnern und Dateien. .. figure:: media/webui-exam-check-collected-directories.png :align: center @@ -357,7 +357,7 @@ Es öffnet sich ein Fenster mit den einsammelten Ordnern und Dateien. Prüfung: Prüfe Dateiabgaben -Die aktuelle Prüfung ist am Klassennamen und an dem Zeistempel zu erkennen. Klicke auf das Ordnersymbol, um diesen zu öffnen. +Die aktuelle Prüfung ist am Klassennamen und an dem Zeitstempel zu erkennen. Klicke auf das Ordnersymbol, um diesen zu öffnen. .. figure:: media/webui-exam-check-collected-directories-of-users.png :align: center diff --git a/source/classroom/webui-basics/index.rst b/source/classroom/webui-basics/index.rst index f862f378..59076593 100644 --- a/source/classroom/webui-basics/index.rst +++ b/source/classroom/webui-basics/index.rst @@ -109,7 +109,7 @@ Klassenzimmer Kurs ---- -In dem Menüpunkt Kurs werden der aktuelle Raum, Deine zugeordneten Klassen, Deine Gruppenund Projekte aufgelistet. +In dem Menüpunkt Kurs werden der aktuelle Raum, Deine zugeordneten Klassen, Deine Gruppen und Projekte aufgelistet. .. figure:: media/10_webui-basics_my-classes.png :align: center @@ -176,7 +176,7 @@ Um Schüler einer Gruppe hinzuzufügen, wählst Du die gewünschte Gruppe via Kl :align: center :alt: seclected course - Ausgwählter Kurs + Ausgewählter Kurs In den oberen Zeilen gibt es nun die Möglichkeit über ``Schüler hinzufügen`` einzelne Schüler hinzuzufügen oder über ``Klasse hinzufügen`` eine ganze Schulklasse dem Kurs hinzuzufügen. Klickst Du in das Feld ``Schüler hinzufügen`` und gibst dort die **ersten beiden Buchstaben des Schülernamens** ein, erscheint eine Liste mit Schülern, deren Nachnamen mit diesen Buchstaben beginnen. @@ -184,7 +184,7 @@ In den oberen Zeilen gibt es nun die Möglichkeit über ``Schüler hinzufügen`` :align: center :alt: add pupils to course - Ausgwählter Kurs: Schüler hinzufügen + Ausgewählter Kurs: Schüler hinzufügen Wähle einen einzelnen Schüler aus, der zur Gruppe hinzugefügt werden soll. Wiederhole diesen Vorgang für alle weiteren Schüler. @@ -200,9 +200,9 @@ Die Gruppe ist nun erstellt. .. hint:: - Bei einzelnen Schülern siehst Du noch einen roten Button in der Spalte Arbeitsverzeichnis. Dies liegt daran, dass für diese Schüler in Deinem Transferorrdner noch keine Verzeichnisse angelegt wurden. + Bei einzelnen Schülern siehst Du noch einen roten Button in der Spalte Arbeitsverzeichnis. Dies liegt daran, dass für diese Schüler in Deinem Transferordner noch keine Verzeichnisse angelegt wurden. - Sollte dies so sein, klicke danach im Menü links auf ``Kurs`` -> ``Meine Gruppen`` -> ``Neu erstellte Gruppe``. Danach erscheinen alle Schüler, die der Gruppe hinzugefügt wurden. Schließe die Einrichtung des Kurses mithilfe des Klicks auf den roten Button ab, der alle Schüler auflistest, für die noch kein Verzeichnis im Transferordner angelegt wurde. Zur Bestätigung musst Du Dein Anmeldekennwort angeben. + Sollte dies so sein, klicke danach im Menü links auf ``Kurs`` -> ``Meine Gruppen`` -> ``Neu erstellte Gruppe``. Danach erscheinen alle Schüler, die der Gruppe hinzugefügt wurden. Schließe die Einrichtung des Kurses mithilfe des Klicks auf den roten Button ab, der alle Schüler auflistet, für die noch kein Verzeichnis im Transferordner angelegt wurde. Zur Bestätigung musst Du Dein Anmeldekennwort angeben. Klickst Du nun auf Kurs, siehst Du folgende Ansicht: @@ -310,7 +310,7 @@ Das Absolventenkappen-Symbol Prüfungsmodus -stellt den Prüfungsmodus dar. Ausgewählte Schüler oder alle Schüler einer Klasse eines Kurses können dadurch in diesen Modus gesetzt werden. Um alle Schüler des Kurses in den Prüfungsmodus zu versetzen, klickst Du auf das Icon für den Prüfungsmodus im Spaltenkopf. Sollen nur einzelne Schüler in den Prüfungsmodus versetzt werden, wäjlst Du dies Symbol bei dem jeweiligen Schüler aus. +stellt den Prüfungsmodus dar. Ausgewählte Schüler oder alle Schüler einer Klasse eines Kurses können dadurch in diesen Modus gesetzt werden. Um alle Schüler des Kurses in den Prüfungsmodus zu versetzen, klickst Du auf das Icon für den Prüfungsmodus im Spaltenkopf. Sollen nur einzelne Schüler in den Prüfungsmodus versetzt werden, wählst Du dies Symbol bei dem jeweiligen Schüler aus. Im aktivierten Prüfungsmodus wird die Seite wie folgt angezeigt: @@ -334,12 +334,12 @@ Im Menü ``Einschreiben`` findest Du nachstehende drei Rubriken. Schulklassen ^^^^^^^^^^^^ -Hier werden alle Schulklassen der Schule aufgelistet. Durch Klick auf den Klassennamen werden Dir weitere Informationen angezeigt, wie etwa alle Schüler der Klasse. Um Dir eine schulklasse zuzuordnen aktivierst Du den Haken vor der Klasse und bestätigst dann die Ausführung oben auf der Seite mit ``Jetzt ausführen``. +Hier werden alle Schulklassen der Schule aufgelistet. Durch Klick auf den Klassennamen werden Dir weitere Informationen angezeigt, wie etwa alle Schüler der Klasse. Um Dir eine Schulklasse zuzuordnen aktivierst Du den Haken vor der Klasse und bestätigst dann die Ausführung oben auf der Seite mit ``Jetzt ausführen``. Drucker ^^^^^^^ -Hier werden alle Drucker aufgelistet. Durch Anklicken werden weitere Informationen angezeigt. Drucker müssen zuvor vom Administrator angelegt und eingerichtet worden sein, damit diese hier erscheinen.. +Hier werden alle Drucker aufgelistet. Durch Anklicken werden weitere Informationen angezeigt. Drucker müssen zuvor vom Administrator angelegt und eingerichtet worden sein, damit diese hier erscheinen. Ein Auswählen ist nur erforderlich, wenn man den Drucker auch außerhalb des zugehörigen Raumes nutzen möchte. @@ -352,7 +352,7 @@ Projekte - Gruppe: Eine Gruppe hat kein Netzlaufwerk (keine Shares), um Dateien gemeinsam abzulegen und auszutauschen. Zudem kann diesen keine E-Mail zugeordnet werden. Insofern ist es nur eine Liste mit Benutzer für einen Kurs (z.B. eine einmalige Schulung). - - Projekt: Ist ein Zusammenschluss mehrerer Benutzer aus verswchiedenen Gruppen, mit einem gemeinsamen Projektlaufwerk (also mit Shares) und der Möglichkeit, hiermit einen Projektverteiler zu erstellen, um via E-Mail Infos weiterzugeben. Letzters erfordert aber eine Konfiguration des SMTP-Relais und ggf. der Edulution UI. + - Projekt: Ist ein Zusammenschluss mehrerer Benutzer aus verschiedenen Gruppen, mit einem gemeinsamen Projektlaufwerk (also mit Shares) und der Möglichkeit, hiermit einen Projektverteiler zu erstellen, um via E-Mail Infos weiterzugeben. Letzters erfordert aber eine Konfiguration des SMTP-Relais und ggf. der Edulution UI. Hier werden alle Deine Projekte aufgelistet. Um ein neues Projekt anzulegen, klicke auf ``Neues Projekt`` und trage den Projektnamen ein. @@ -384,7 +384,7 @@ Klickst Du auf das Projekt - hier ``P_netzwerkguide`` siehst Du alle Einstellung Um dem neu angelegten Projekt Projektmitglieder hinzuzufügen, klickst Du wie oben dargestellt auf den Button ``Benutzer oder Gruppe hinzufügen``. -Um einzelne Benutzer hinzuzufügen, klikcst Du in das Feld ``Nach einem Benutzer suchen`` und gibst dort einige Buchstaben des Names des Benutzers ein. Es werden alle gefundenden Einträge in einer Liste angezeigt. Aus dieser kannst Du einen gewünschten Benutzer auswählen. +Um einzelne Benutzer hinzuzufügen, klickst Du in das Feld ``Nach einem Benutzer suchen`` und gibst dort einige Buchstaben des Names des Benutzers ein. Es werden alle gefundenen Einträge in einer Liste angezeigt. Aus dieser kannst Du einen gewünschten Benutzer auswählen. .. figure:: media/23_webui-basics_new_project_add_project_members.png :align: center @@ -392,7 +392,7 @@ Um einzelne Benutzer hinzuzufügen, klikcst Du in das Feld ``Nach einem Benutzer Projektmitglieder hinzufügen -Diesen Vorgang wiederholst Du für alle gewünschten Benutzer, Schüler aus einer Klasse oder Projektmitglieder anderer Projekte. Alle ausgewählten Benutzer werden ann unter ``Hinzufügen`` aufgelistet. +Diesen Vorgang wiederholst Du für alle gewünschten Benutzer, Schüler aus einer Klasse oder Projektmitglieder anderer Projekte. Alle ausgewählten Benutzer werden dann unter ``Hinzufügen`` aufgelistet. .. figure:: media/23_webui-basics_new_project_add_project_members2.png :align: center diff --git a/source/clients/client_templates/os_installation/linux-clients/index.rst b/source/clients/client_templates/os_installation/linux-clients/index.rst index 5c51f327..6c5fd43f 100644 --- a/source/clients/client_templates/os_installation/linux-clients/index.rst +++ b/source/clients/client_templates/os_installation/linux-clients/index.rst @@ -69,7 +69,7 @@ Installation Ubuntu .. hint:: Bei Ubuntu sollte man darauf achten, dass der Firefox nicht als Snap-Paket installiert wird, da damit SSO nicht funktioniert! Möglicherweise trifft das auch auf andere Distributionen zu! -Hast Du den PC / die VM von vom ISO-Image / der Installations-DVD gestartet, siehst Du zunächst folgenden Start-Bildschirm: +Hast Du den PC / die VM vom ISO-Image / der Installations-DVD gestartet, siehst Du zunächst folgenden Start-Bildschirm: .. figure:: media/00-linux-client-ubu-grub-start.png :align: center @@ -184,11 +184,11 @@ Klicke auf ``ok`` und es werden nochmals alle Einstellungen angezeigt: Übersicht der Partitionen -Sind diese Einstellungen korrekt, prüfe noch, ob das Gerät für die Bootloader-Installation die Ubuntu-Parition ist bzw. bei UEFI-Geräte EFI-Partition (z.B. /dev/vda1 hier mit dem Einhängepunkt /boot/efi). Falls nicht passe dies an. Der Bootloader sollte **nicht** auf den MBR der Festplatte installiert werden. +Sind diese Einstellungen korrekt, prüfe noch, ob das Gerät für die Bootloader-Installation die Ubuntu-Parition ist bzw. bei UEFI-Geräten EFI-Partition (z.B. /dev/vda1 hier mit dem Einhängepunkt /boot/efi). Falls nicht passe dies an. Der Bootloader sollte **nicht** auf den MBR der Festplatte installiert werden. Setze die Installation mit dem Button ``weiter`` fort. -Im weiteren INstallationsverlauf wirst Du nach dem Namen für den Computer und dem Benutzernamen und Kennwort für den neuen Administrator gefragt. Gib hier als Benutzernamen ``linuxadmin`` ein. Beim Namen des Rechners musst Du den Namen des PCs / der VM angeben, wie Du ihn in der Gerätekonfiguration festgelegt hast. +Im weiteren Installationsverlauf wirst Du nach dem Namen für den Computer und dem Benutzernamen und Kennwort für den neuen Administrator gefragt. Gib hier als Benutzernamen ``linuxadmin`` ein. Beim Namen des Rechners musst Du den Namen des PCs / der VM angeben, wie Du ihn in der Gerätekonfiguration festgelegt hast. .. figure:: media/05-linux-client-ubu-install.png :align: center @@ -217,7 +217,7 @@ Vor der eigentlichen Installation werden Dir die Einstellungen nochmals als Übe Entsprechen die angezeigten Einstellungen den von Dir gewünschten Einstellungen, dann starte die Installation mit dem Button ``Installieren``. -Während der Installation wir Dir der Status des Vorgangs dargestellt. +Während der Installation wird Dir der Status des Vorgangs dargestellt. .. figure:: media/05-linux-client-ubu-installation-status.png :align: center @@ -256,7 +256,7 @@ Klicke nun unten rechts auf das Werkzeug-Symbol, um zum Menü für die Imageerst :align: center :alt: Ubuntu Installation: Menue Tools - Wekzeug-Symbol + Werkzeug-Symbol Du wirst nach dem Linbo-Passwort gefragt. Gib dieses ein. @@ -324,7 +324,7 @@ Zum Abschluss erscheint die Meldung, dass das Image erfolgreich hochgeladen wurd Gehe durch einen Klick auf das Zeichen ``<`` zurück und klicke im nächsten Bildschirm das obere Symbol auf der rechten Seite an, um Dich abzumelden. -Du siehst nun drei Start-Symbole. Das grosse Symbol started das Image sychronisiert, während das grüne Icon das lokale Image aus dem Cache ohne Synchronisation startet. +Du siehst nun drei Start-Symbole. Das große Symbol startet das Image synchronisiert, während das grüne Icon das lokale Image aus dem Cache ohne Synchronisation startet. .. figure:: media/06-linux-client-ubu-install.png :align: center diff --git a/source/clients/use_linbo4/index.rst b/source/clients/use_linbo4/index.rst index 266f0ba9..63478c04 100644 --- a/source/clients/use_linbo4/index.rst +++ b/source/clients/use_linbo4/index.rst @@ -1106,7 +1106,7 @@ Gibt dmesg folgenden Fehler aus: i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/kbl_dmc_ver1_04.bin. Disabling runtime power management. i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 -Dann passe die Datei wir folgt an: +Dann passe die Datei wie folgt an: .. code:: @@ -1125,7 +1125,7 @@ Führe anschließend den Befehl ``update-linbofs`` auf dem linuxmuster Server au .. hint:: - Sollte ein geladener Wifi Treiber dazu führen, dass die Wifi NIC nicht nach einem LINBO Reboot funktioniert, dann nutze die Kerneloption ``nowarmstart``. + Sollte ein geladener Wifi-Treiber dazu führen, dass die Wifi-NIC nicht nach einem LINBO Reboot funktioniert, dann nutze die Kerneloption ``nowarmstart``. Kernel-Options verwenden @@ -1143,7 +1143,7 @@ Um Besonderheiten einzelner Hardwareklassen anzupassen, gibt es den Eintrag **Ke # Modul realtek r8168 laden, aber den Aufruf des Moduls realtek r8169 unterbinden KernelOptions = loadmodules=r8168 modprobe.blacklist=r8169 - # lade noche keine Grafikkarten-Treiber, bis das System gestartet wurde und lade diese erst danach. + # lade noch keine Grafikkarten-Treiber, bis das System gestartet wurde und lade diese erst danach. KernelOptions = nomodeset # linbo soll nach dem herunterladen eines neuen LINBO-Kernels keinen Warmstart ausführen @@ -1204,11 +1204,11 @@ Dies kann auf dem PC wie folgt in der Linux-Konsole definiert werden: ssh -L 9999::9999 root@ -Der Server fordert zur Eingabe des Kennwortes für den Benutzer root auf. Wurde dies erfolgreich ausgeführt, so ist die Konsole es Server zu sehen. +Der Server fordert zur Eingabe des Kennwortes für den Benutzer root auf. Wurde dies erfolgreich ausgeführt, so ist die Konsole des Servers zu sehen. Auf dem Client kann nach dem LINBO-Bootvorgang in der LINBO-Konsole kontrolliert werden, ob der VNCServer gestartet wurde. Wähle in LINBO dazu rechts das Werkzeug aus und wähle den Eintrag LINBO-Konsole aus. -Gib hier den Befehl ``ps`` ein und Du erhälst die Ausgabe der derzeit unter LINBO auf dem Client laufende Prozesse. +Gib hier den Befehl ``ps`` ein und Du erhältst die Ausgabe der derzeit unter LINBO auf dem Client laufende Prozesse. Dies kann z.B. wie folgt aussehen: @@ -1251,7 +1251,7 @@ Mit LINBO >= v4.3 ist es möglich via LINBO ein Live-System wie z.B. Ubuntu 24.0 Um im Fehlerfall auf bestimmten Clients diesen auch mithilfe eines Live-System zu booten, kann z.B. für eine Hardwareklasse ein zusätzlicher Boot-Eintrag bereitgestellt werden, der auf eine ISO-Datei verweist. -Hierdurch kannst Du via LINBO auf dem Client das Live-System vom Server aus starten und so die Fehler auf dem Client anaylsieren, oder auch einfach nur das Live-System auf dem Client testen. +Hierdurch kannst Du via LINBO auf dem Client das Live-System vom Server aus starten und so die Fehler auf dem Client analysieren, oder auch einfach nur das Live-System auf dem Client testen. Vorgehen -------- @@ -1273,7 +1273,7 @@ Pro ISO-Datei ist unterhalb des o.g. Verzeichnisses ein gleichnamiges Unterverz **Beispiel**: -Sollen die ISO-Dateien ``ubuntu-24.04.2-desktop-amd64.iso`` und ``systemrescue-12.01-amd64.iso`` bereitgestellt werden, so sind zunächst folge unterverzeichnisse anzulegen: +Sollen die ISO-Dateien ``ubuntu-24.04.2-desktop-amd64.iso`` und ``systemrescue-12.01-amd64.iso`` bereitgestellt werden, so sind zunächst folgende Unterverzeichnisse anzulegen: .. code:: @@ -1301,7 +1301,7 @@ Dies erfolgt bezogen auf o.g. Beispiel mit nachstehenden Befehlen: linbo-torrent create /srv/linbo/images/ubuntu-24.04.2-desktop-amd64/ubuntu-24.04.2-desktop-amd64.iso linbo-torrent create /srv/linbo/images/systemrescue-12.01-amd64/systemrescue-12.01-amd64.iso -Es finden sich in in dem jeweiligen Unterverzeichnis dann drei Dateien (z.B.): +Es finden sich in dem jeweiligen Unterverzeichnis dann drei Dateien (z.B.): .. code:: @@ -1312,7 +1312,7 @@ Es finden sich in in dem jeweiligen Unterverzeichnis dann drei Dateien (z.B.): Pfade für Kernel und Initrd ermitteln ------------------------------------- -In der Hardwareklasse sind später die Pfade für Kernel und Initd anzugeben, wie diese in der ISO-Datei gültig sind. Daher sind in den ISO-Dateien zunächst deren Pfade zu ermitteln. +In der Hardwareklasse sind später die Pfade für Kernel und Initrd anzugeben, wie diese in der ISO-Datei gültig sind. Daher sind in den ISO-Dateien zunächst deren Pfade zu ermitteln. 1. Mounte die ISO-Datei auf dem PC 2. Suche für den Kernel nach der Datei ``vmlinuz``. Notiere Dir den Pfad. @@ -1326,7 +1326,7 @@ Für systemrescue-12.01-amd64.iso liegt die Datei ``vmlinuz`` im Verzeichnis ``s Kernel-Append-Parameter ermitteln --------------------------------- -Für die ISO-Dateien musst Du noch ermitteln, welche Kernel-Parameter angefügt werden können2, die dann in der Hardwareklasse für die start.conf angegeben werden können. +Für die ISO-Dateien musst Du noch ermitteln, welche Kernel-Parameter angefügt werden können, die dann in der Hardwareklasse für die start.conf angegeben werden können. 1. Öffne die gemountete ISO-Datei auf dem PC. 2. Suche die Dateien ``boot/grub/grub.cfg`` oder ``isolinux.cfg``. Die Parameter splash, quiet, findiso und iso-scan können weggelassen werden, da sie automatisch erzeugt werden. @@ -1364,7 +1364,7 @@ Abschließend musst Du in der Konsole auf dem Server den Befehl ``linuxmuster-im Live-CD starten --------------- -Starte nun den Client via LINBO. Im Startmenü von LINBO findest Du nun den zur angelegten Eintrag zur Live-CD. Starte diese nun durch einen Klick auf das grosse Symbol für das Betriebssystem. +Starte nun den Client via LINBO. Im Startmenü von LINBO findest Du nun den angelegten Eintrag zur Live-CD. Starte diese nun durch einen Klick auf das große Symbol für das Betriebssystem. im Fehlerfall @@ -1377,7 +1377,7 @@ Nutzt Du sehr große Images, so kann es passieren, dass bei der Verteilung der q Ab LINBO v4.1.36 können für ``ctorrent`` Parameter angepasst werden, um dies zu verhindern. -Die Konfigurationsdati für ctorrent befindet sich +Die Konfigurationsdatei für ctorrent befindet sich .. code:: @@ -1388,9 +1388,9 @@ Die Paketgrößen können nun als Parameter ``piece length`` angepasst werden. D .. code:: # Piece length (torrent file option) - ECELEN="524288" + PIECELEN="524288" -Hast Du den Wert angepasst, musst Du Torrent neu startebn: +Hast Du den Wert angepasst, musst Du Torrent neu starten: .. code:: @@ -1400,7 +1400,7 @@ Wurde die Option in der Konfigurationsdatei nicht explizit gesetzt, so wird ein Mit der Erhöhung des Wertes können o.g. Probleme behoben werden. -Zum Vergleich findet sich nachstehende Konfigurationsdatei ``/etc/default/linbi-torrent``: +Zum Vergleich findet sich nachstehende Konfigurationsdatei ``/etc/default/linbo-torrent``: .. code:: diff --git a/source/external-services/unifiwlan/index.rst b/source/external-services/unifiwlan/index.rst index fbded171..6194cb6c 100644 --- a/source/external-services/unifiwlan/index.rst +++ b/source/external-services/unifiwlan/index.rst @@ -7,7 +7,7 @@ Unifi-WLAN-Lösung für linuxmuster.net Die hier vorgestellte WLAN-Lösung spannt drei WLAN-Netze auf. - Das interne Netz für schuleigene Geräte, wie Laptops, Beamer oder Apple-TVs. -- Das eigentliche Schulnetz, in dem jenach Anmelgung ins VLAN für Lehrer oder für Schüler verbunden wird. +- Das eigentliche Schulnetz, in dem je nach Anmeldung ins VLAN für Lehrer oder für Schüler verbunden wird. - Das Gästenetz, in das man sich über Vouchers anmeldet. .. figure:: media/vlantopologie.png @@ -17,7 +17,7 @@ Es kommen Accesspoints von Unifi und der kostenlose Unifi-OS-Server zum Einsatz. Die Geräte im internen Netz werden in die Datei `/etc/linuxmuster/sophomorix/default-school/devices.csv` aufgenommen. Es ist ein Teil des Schulnetzes. Damit können sich beispielsweise Benutzer mit einem Schullaptop per WLAN wie gewohnt anmelden und auf ihre Daten zugreifen. -Die folgenden Vido-Tutorials zeigen Schritt für Schritt, wie unser WLAN-Netz aufgebaut wird. +Die folgenden Video-Tutorials zeigen Schritt für Schritt, wie unser WLAN-Netz aufgebaut wird. Überblick über den Ausgangszustand ---------------------------------- @@ -26,7 +26,7 @@ Die folgenden Vido-Tutorials zeigen Schritt für Schritt, wie unser WLAN-Netz au -Instalation eines Debian-Servers +Installation eines Debian-Servers -------------------------------- Der Unifi-OS-Server läuft in diesem Tutorial auf einem Debian-Server. Das folgende Video-Tutorial zeigt die Installation und Integration eines leeren Debian-Servers. @@ -34,7 +34,7 @@ Der Unifi-OS-Server läuft in diesem Tutorial auf einem Debian-Server. Das folge -Instalation und Grundeinrichtung des Unifi-OS-Servers +Installation und Grundeinrichtung des Unifi-OS-Servers ----------------------------------------------------- Jetzt wird der eigentliche Unifi-OS-Server eingerichtet. @@ -47,7 +47,7 @@ Migration eines bestehenden Unifi-Controllers --------------------------------------------- In diesem Tutorial wird gezeigt, wie ein bestehendes Unifi-Controller-System auf Unifi-OS-Server migriert werden kann. -Falls du kein bestehendes Unifi-Controller-System hast, kannst du diese Tutorial übersprinen. +Falls du kein bestehendes Unifi-Controller-System hast, kannst du dieses Tutorial überspringen. .. raw:: html @@ -55,7 +55,7 @@ Falls du kein bestehendes Unifi-Controller-System hast, kannst du diese Tutorial Anlegen von Schüler- und Lehrer-Netzwerke ----------------------------------------- -Jetzt legen wir für die Schüler und Lehrer eigene Netzwerke auf der OpnSense an. +Jetzt legen wir für die Schüler und Lehrer eigene Netzwerke auf der OPNsense an. .. raw:: html @@ -63,7 +63,7 @@ Jetzt legen wir für die Schüler und Lehrer eigene Netzwerke auf der OpnSense a WLAN-Netzwerke im Unifi-OS-Server einrichten -------------------------------------------- -Hier siehst du, wie man ein WLAN über WPA2 und über WPA2/WPA3-Enterprise einrichtet. Bei WPA2/WPA3-Enterprise wird das Lehrer- bzw. Schülernetzwerk jenach Anmeldenamen zugeordnet. +Hier siehst du, wie man ein WLAN über WPA2 und über WPA2/WPA3-Enterprise einrichtet. Bei WPA2/WPA3-Enterprise wird das Lehrer- bzw. Schülernetzwerk je nach Anmeldenamen zugeordnet. .. raw:: html @@ -71,7 +71,7 @@ Hier siehst du, wie man ein WLAN über WPA2 und über WPA2/WPA3-Enterprise einri Gäste-WLAN mit Voucher ---------------------- -Jetzt kommet noch das Gäste-WLAN. Für Gäste und Austauschklassen legen wir noch ein Gäste-Netz an. Und wir erstellen natürlich noch Voucher die passenden Voucher. +Jetzt kommt noch das Gäste-WLAN. Für Gäste und Austauschklassen legen wir noch ein Gäste-Netz an. Und wir erstellen natürlich noch die passenden Voucher. .. raw:: html @@ -79,7 +79,7 @@ Jetzt kommet noch das Gäste-WLAN. Für Gäste und Austauschklassen legen wir no Die InnerSpace-App ------------------ -InnerSpace ist eine App auf dem Unifi-OS-Server, mit der man Gebäudepläne verwalten und die Position der Unifi-Komponenten entragen kann. Das ist dann besonders interessant, wenn APs oder Switche hinter Wandverschalungen verbaut sind. So weiß man immer, wo sich die Geräte befinden. +InnerSpace ist eine App auf dem Unifi-OS-Server, mit der man Gebäudepläne verwalten und die Position der Unifi-Komponenten eintragen kann. Das ist dann besonders interessant, wenn APs oder Switche hinter Wandverschalungen verbaut sind. So weiß man immer, wo sich die Geräte befinden. Zusätzlich berechnet InnerSpace auch die aktuelle WLAN-Ausleuchtung. Man sieht also, wo noch Lücken in der Ausleuchtung sind oder ob ein anderer Ort für einen AP eine bessere WLAN-Ausleuchtung brächte. diff --git a/source/index.rst b/source/index.rst index f39f641e..cdbe2fb5 100644 --- a/source/index.rst +++ b/source/index.rst @@ -41,12 +41,12 @@ Neben dieser Dokumentation steht Dir unsere Community in unserem Hilfeforum und Das Forum findest Du unter ``_. -Informationen zum Telefon-Support gibt es auf unser Projektseite ``_. +Informationen zum Telefon-Support gibt es auf unserer Projektseite ``_. .. hint:: - Suchst Du die Dokumentation zur Version linuxmuster.net 7.3 oder die Möglichkeit unsere Dokumentation herunterzuladen? + Suchst Du die Dokumentation zur Version linuxmuster.net 7.3 oder die Möglichkeit, unsere Dokumentation herunterzuladen? Dann schaue in die unten recht angezeigte - zusätzliche - Menüleiste. diff --git a/source/installation/install-from-scratch/basis_file_server.rst b/source/installation/install-from-scratch/basis_file_server.rst index 3bab563d..0447b755 100644 --- a/source/installation/install-from-scratch/basis_file_server.rst +++ b/source/installation/install-from-scratch/basis_file_server.rst @@ -10,14 +10,14 @@ Anlegen und Installieren des Fileservers .. hint:: - Der Fileserver für linuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbidnung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis grösseren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. + Der Fileserver für linuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbindung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis größeren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. Grundsätzlich kann linuxmuster.net 7.3 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. In Samba-Umgebungen ist es inzwischen üblich, den Domänencontroller und den Fileserver getrennt voneinander zu betreiben, da dies Performancevorteile hat: Selbst wenn der Fileserver auf dem gleichen Host virtualisiert wird, wie der Server und auf dem gleichen Storage läuft. Das ist für große Schulen mit vielen Clients von Vorteil. Es ist aber ohne Probleme möglich, den Fileserver später heraus zu trennen und auf eine eigene Maschine zu verlegen. -Man kann die Umgebung also zunächst ohne extra Fileserver installieren. Stellt man später fest, dass Dateizugriffe der Nutzer zu lange dauern, kann man jederzeit den Fileserver installieren und linuxmuster.net entsprechend auf eine Dri-Server-Lösung erweitern. +Man kann die Umgebung also zunächst ohne extra Fileserver installieren. Stellt man später fest, dass Dateizugriffe der Nutzer zu lange dauern, kann man jederzeit den Fileserver installieren und linuxmuster.net entsprechend auf eine Drei-Server-Lösung erweitern. Der Fileserver von linuxmuster.net wird vollständig in das AD des linuxmuster.net Servers integriert. Die Netzwerkfreigaben werden auf dem linuxmuster.net Server definiert und mithilfe einer DFS-Konfiguration für die konfigurierte Schule bereitgestellt. Es werden so alle persönlichen Netzlaufwerke, die Projektfreigaben, sowie die Klassenfreigaben auf diesem File-Server bereitgestellt. @@ -25,7 +25,7 @@ Vorteile: - Trennung der Dienste (AD Service, File Service) - verbesserte Backupstrategie (jeweils eigenständiges Backup für die Dateien als auch für das AD) -- verbesserte Sicherheit (bei einem Multi-School Setup kann jeweils ein eigenständier File-Server pro Schule eingesetzt werden.) +- verbesserte Sicherheit (bei einem Multi-School Setup kann jeweils ein eigenständiger File-Server pro Schule eingesetzt werden.) - einfache Wartung und vereinfachte Updates - deutliche Leistungsverbesserung - gerade bei grossen Schulinstallationen diff --git a/source/installation/install-from-scratch/basis_server.rst b/source/installation/install-from-scratch/basis_server.rst index e1d8921d..ac58a674 100644 --- a/source/installation/install-from-scratch/basis_server.rst +++ b/source/installation/install-from-scratch/basis_server.rst @@ -14,7 +14,7 @@ Anlegen und Installieren des Servers (AD/DC) .. hint:: - Willst Du in einer VM installieren, so must Du für die neue VM folgende Mindesteinstellungen angeben: + Willst Du in einer VM installieren, so musst Du für die neue VM folgende Mindesteinstellungen angeben: - Installation von Local/ISO, - Gast OS: Linux, 6.X - 2.6 Kernel @@ -27,7 +27,7 @@ Anlegen und Installieren des Servers (AD/DC) Achte darauf, dass vor dem Start der VM beide Festplatten der VM zugewiesen wurden. Bei der Einrichtung des Servers musst Du nur einen Server mit 2 HDDs haben und Ubuntu auf der ersten HDD installieren. - Die zweite HDD bleibt wird später für linuxmuster.net genutzt. + Die zweite HDD wird später für linuxmuster.net genutzt. Erster Start des Servers vom Installationsmedium ================================================ @@ -325,7 +325,7 @@ Installiere keine weiteren optionalen Pakete. Bestätige den Start des Installationsvorganges mit ``Erledigt``. -Zum Abschluß der Installation wird automatisch versucht, Updates zu installieren |...| +Zum Abschluss der Installation wird automatisch versucht, Updates zu installieren |...| .. figure:: media/basis_server_020.png :align: center @@ -340,7 +340,7 @@ Zum Abschluß der Installation wird automatisch versucht, Updates zu installiere Bei einer VM achte vor dem Neustart darauf, dass Du die ISO-Datei / DVD ausgeworfen hast und die Boot-Reihenfolge so umgestellt hast, dass die VM direkt von HDD bootet. -Wann die Installation abgeschlossen ist, erkennst Du daran, dass die Anzeige am unteren Bildschirmrand von +Wenn die Installation abgeschlossen ist, erkennst Du daran, dass die Anzeige am unteren Bildschirmrand von .. figure:: media/basis_server_022.png :align: center @@ -356,7 +356,7 @@ auf :scale: 80% :alt: finished updates - ... abgeschlosse + ... abgeschlossen gewechselt ist. @@ -513,7 +513,7 @@ Sollte die Namensauflösung Probleme bereiten, prüfe die Datei /etc/resolv.conf less /etc/resolv.conf -Sollte als nameserver nur 127.0.0.53 angegeben sein, must Du diese IP durch 10.0.0.254 ersetzen. +Sollte als nameserver nur 127.0.0.53 angegeben sein, musst Du diese IP durch 10.0.0.254 ersetzen. Test der Verbindung zur Firewall -------------------------------- diff --git a/source/installation/install-from-scratch/lmn_pre_install.rst b/source/installation/install-from-scratch/lmn_pre_install.rst index 76a647c1..31a20165 100644 --- a/source/installation/install-from-scratch/lmn_pre_install.rst +++ b/source/installation/install-from-scratch/lmn_pre_install.rst @@ -27,7 +27,7 @@ Nachdem Du nun den Server vorbereitet hast, überprüfe die Zeiteinstellungen au timedatectl Es wird hier noch die UTC-Zeit angegeben. Wie für die OPNsense muss nun die Zeitzone angepasst werden. -Die erfolgt mit folgendem Befehl: +Dies erfolgt mit folgendem Befehl: .. code-block:: Bash @@ -35,7 +35,7 @@ Die erfolgt mit folgendem Befehl: # erneute Ausgabe der Zeiteinstellungen mit timedatectl -Du solltest nun als Zeitzone ``Europe/Berlin`` und die korrekte Lokalzeit sowie die korrkte UTC - Zeit angezeigt bekommen. +Du solltest nun als Zeitzone ``Europe/Berlin`` und die korrekte Lokalzeit sowie die korrekte UTC-Zeit angezeigt bekommen. Cloud-init deinstallieren @@ -46,7 +46,7 @@ Cloud-init kannst Du unter Ubuntu mit folgenden Schritten löschen: .. code-block:: Bash # Disable start - # Sollte die Datei schon existieren mit dem nächsten Schritt forfahren - sudo apt purge cloud-init -y + # Sollte die Datei schon existieren mit dem nächsten Schritt fortfahren - sudo apt purge cloud-init -y sudo touch /etc/cloud/cloud-init.disabled # Uninstall @@ -118,7 +118,7 @@ Erzeuge nun die Locales neu: de_DE.UTF-8... done Generation complete. -Du kannst die Default-Locale ggf. auch mit folgenden Befehl neu setzen: +Du kannst die Default-Locale ggf. auch mit folgendem Befehl neu setzen: .. code-block:: Bash @@ -181,14 +181,14 @@ Wenn Du nicht mehr an Deinem Server eingeloggt bist, melde Dich erneut an. sr0 11:0 1 1024M 0 rom In o.g. Beispiel wurde Ubuntu Server auf der 1. Festplatte (sda) installiert. Die erste Partition der ersten Platte wird für EFI verwendet, -auf der zweiten Partition wird die Root-Partition ( / ) eingehangen. Auf der zweiten Platte existiert eine PArtition, die auf /srv eingehangen ist. +auf der zweiten Partition wird die Root-Partition ( / ) eingehangen. Auf der zweiten Platte existiert eine Partition, die auf /srv eingehangen ist. Skript herunterladen -------------------- Führe danach folgende Befehle in der Eingabekonsole aus: -Wechsel Deinen Log-in und werde zu ``root``, falls du es nicht mehr sein solltest: +Wechsle Deinen Log-in und werde zu ``root``, falls du es nicht mehr sein solltest: .. code-block:: Bash @@ -226,7 +226,7 @@ Mit dem Parametern -u (unattended) und -p (Serverprofil) wird das Setup für den Ablauf ====== -Es werden alle erforderliche Pakete geladen und installiert. Dies kann etwas dauern. Nach Abschluss des Installations- und Vorbereitungsarbeiten wirst Du aufgefordert, den Server neu zu starten. +Es werden alle erforderlichen Pakete geladen und installiert. Dies kann etwas dauern. Nach Abschluss des Installations- und Vorbereitungsarbeiten wirst Du aufgefordert, den Server neu zu starten. .. code-block:: Bash diff --git a/source/installation/proxmox/index.rst b/source/installation/proxmox/index.rst index 6e197c83..16783431 100644 --- a/source/installation/proxmox/index.rst +++ b/source/installation/proxmox/index.rst @@ -85,7 +85,7 @@ Lade Dir dort das aktuellste Image herunter und erstelle Dir einen bootfähigen Erstellen eines USB-Sticks zur Installation des Proxmox-Host ------------------------------------------------------------ -Nachdem Du die ISO-Datei für Proxmox heruntergeladen hast, wechselst Du in das Download-Verzeichnis. Danach ermittel Du den korrekten Buchstaben für den USB-Stick unter Linux. Das X bei sdX ist durch den korrekten Buchstaben für den USB-Stick zu ersetzen (z.B. /dev/sda). Nachstehender Befehl als Benutzer *root* oder mit einem *sudo* vorangestellt einzugeben: +Nachdem Du die ISO-Datei für Proxmox heruntergeladen hast, wechselst Du in das Download-Verzeichnis. Danach ermittelst Du den korrekten Buchstaben für den USB-Stick unter Linux. Das X bei sdX ist durch den korrekten Buchstaben für den USB-Stick zu ersetzen (z.B. /dev/sda). Nachstehender Befehl ist als Benutzer *root* oder mit einem vorangestellten *sudo* einzugeben: .. code-block:: console @@ -109,7 +109,7 @@ Um zu Beginn den Proxmox-Host zu administrieren, ist ein Laptop/PC mit dem Switc Aufbau des Netzwerkes zur Proxmox Installation -Es werden zunächst alle Aktualisierungen durchgeführt und die benötigten ISO-Images auf den Proxmox-Host heruntergeladen. Erst danach wird die Konfiguration des Proxmox-Host so geändert wird, dass dieser nur noch im grünen Netz erreichbar ist. +Es werden zunächst alle Aktualisierungen durchgeführt und die benötigten ISO-Images auf den Proxmox-Host heruntergeladen. Erst danach wird die Konfiguration des Proxmox-Host so geändert, dass dieser nur noch im grünen Netz erreichbar ist. Installieren von Proxmox @@ -183,7 +183,7 @@ Hier wurde die interne IP-Adresse `192.168.199.20/24` festgelegt. :scale: 60% :alt: Proxmox Installation Netzwerk Konfiguration - Netwerk Konfiguration + Netzwerk Konfiguration Überprüfe auf der Übersichtsseite, dass alle Angaben korrekt sind und fahre anschließend fort. @@ -192,7 +192,7 @@ Hier wurde die interne IP-Adresse `192.168.199.20/24` festgelegt. :scale: 40% :alt: Proxmox Installation Übersicht - Zusamenfassung der Installationsoptionen + Zusammenfassung der Installationsoptionen Warte den Abschluss der Installation ab. @@ -252,9 +252,9 @@ Kommentiere zuerst die Paketquellen für die Enterprise-Pakete aus, die nach der .. hint: - Falls Du die beiden Befehl via copy&paste übernimmst, prüfe, ob in der Eingabekonsole die Hochkommata erhalten bleiben. + Falls Du die beiden Befehle via copy&paste übernimmst, prüfe, ob in der Eingabekonsole die Hochkommata erhalten bleiben. -Füge dann für Proxmox VE eine neu Paketquelle für die No-Subscription-Pakete hinzu. +Füge dann für Proxmox VE eine neue Paketquelle für die No-Subscription-Pakete hinzu. .. code:: @@ -666,7 +666,7 @@ Hier noch der Vollständigkeitshalber die schematische Darstellung, wie sie sich Vorbereiten des ISO-Speichers ============================= -Um die v7.3 zu installieren, müssen zwei virtuelle Maschinen angelegt werden. OPNsense und Ubuntu Server LTS werden in diesei VMs installiert. Dazu ist es erforderlich, dass Du die ISO-Images für OPNsense und Ubuntu Server LTS auf den Proxmox-Hypervisor in den Datenspeicher für ISO-Images lädst. +Um die v7.3 zu installieren, müssen zwei virtuelle Maschinen angelegt werden. OPNsense und Ubuntu Server LTS werden in diesen VMs installiert. Dazu ist es erforderlich, dass Du die ISO-Images für OPNsense und Ubuntu Server LTS auf den Proxmox-Hypervisor in den Datenspeicher für ISO-Images lädst. .. figure:: media/proxmox-download-iso_01.png :align: center @@ -682,7 +682,7 @@ Ubuntu Server .. hint:: - Beachte für den Download des Ubuntu Servers, dass du immer die Version verwendest, die in den Systemvoraussetzungen genannt wurde. + Beachte für den Download des Ubuntu Servers, dass Du immer die Version verwendest, die in den Systemvoraussetzungen genannt wurde. Bei den Bildern wird ggf. noch eine abweichende Version gezeigt. Diese ist unbedingt anzupassen. @@ -1040,7 +1040,7 @@ Klicke dann auf ``Next``. Belasse hier zunächst alle Voreinstellungen für Grafikkarte und Festplatten-Controller wie angezeigt. Wähle als BIOS ``OVMF (UEFI)`` und füge einen EFI-Storage hinzu. Wähle hier im Drop-down den zuvor eingerichteten Proxmox-Speicher aus. -Aktiviere den ``Qmu Agent``. +Aktiviere den ``Qemu Agent``. .. figure:: media/proxmox-create-vm-ubuntu-server-03.png :align: center @@ -1249,4 +1249,4 @@ Die beiden letzten Einstellungen musst Du **nochmals für den linuxmuster.net AD Die virtuellen Maschinen sind jetzt für die weitere Installation vorbereitet. Du kannst gemäß der Anleitung: :ref:`first_start_firewall` mit der Installation fortfahren. -.. hint:: Jetzt wäre auch ein guter Zeitpunkt für ein Snapshoting und/oder dem Klonen der bisher erstellen VMs. +.. hint:: Jetzt wäre auch ein guter Zeitpunkt für ein Snapshoting und/oder dem Klonen der bisher erstellten VMs. diff --git a/source/migration/index.rst b/source/migration/index.rst index 0eb4ed71..629fa345 100644 --- a/source/migration/index.rst +++ b/source/migration/index.rst @@ -6,7 +6,7 @@ Migration auf linuxmuster 7.4 =============================== -.. sectionauthor:: `@cweikl `_ +.. sectionauthor:: `@cweikl `_ Um auf die linuxmuster 7.4 zu migrieren: diff --git a/source/migration/upgrade.rst b/source/migration/upgrade.rst index 23ae2376..e82a957f 100644 --- a/source/migration/upgrade.rst +++ b/source/migration/upgrade.rst @@ -51,7 +51,7 @@ Rufe das Skript wie folgt auf: Falls Du Dich via SSH auf dem Server anmeldest, stelle sicher, dass Du als user ``root`` eine tmux-Session startest, damit das Upgrade nicht die SSH-Verbindung unterbricht. -Das Upgrade dauert eine ganze Zeit. Du erhälst zu Beginn auf der Konsole den Hinweis, dass Du vor dem Upgrade einen Snapshot Deiner VM anlegen solltest. Zum Start des Upgrades musst Du dann den in der Konsole angezeigten Text eingeben und dies mit ENTER bestätigen. Danach startet das Upgrade. +Das Upgrade dauert eine ganze Zeit. Du erhältst zu Beginn auf der Konsole den Hinweis, dass Du vor dem Upgrade einen Snapshot Deiner VM anlegen solltest. Zum Start des Upgrades musst Du dann den in der Konsole angezeigten Text eingeben und dies mit ENTER bestätigen. Danach startet das Upgrade. Prüfe während des Upgrades, ob Fehler ausgegeben werden. Im Nachgang kannst Du zudem in der mitgeschriebenen Log-Datei ggf. nach Fehlern suchen. diff --git a/source/setup/setup-file-server.rst b/source/setup/setup-file-server.rst index 95ce2766..a0d32c6f 100644 --- a/source/setup/setup-file-server.rst +++ b/source/setup/setup-file-server.rst @@ -10,7 +10,7 @@ Setup File-Server .. hint:: - Der Fileserver für inuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbidnung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis grösseren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. + Der Fileserver für linuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbindung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis größeren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. Grundsätzlich kann linuxmuster.net 7.3 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. @@ -138,7 +138,7 @@ d) Schulname: wird -s ausgelassen, wird default-school genutzt .. hint:: - Hast Du zuvor das Setup des linuxmuster.net AD/DC Server durchlaufen, dann nutzt Du dort den Share default-school - unabhängig davon, wie Du beim Setup Deine Schule genannt hast. Du must also für den File-Server daher diese angeben bzw. den Parameter -s weglassen. + Hast Du zuvor das Setup des linuxmuster.net AD/DC Server durchlaufen, dann nutzt Du dort den Share default-school - unabhängig davon, wie Du beim Setup Deine Schule genannt hast. Du musst also für den File-Server daher diese angeben bzw. den Parameter -s weglassen. .. code:: @@ -151,7 +151,7 @@ Wurde das Setup erfolgreich ausgeführt, siehst Du folgende Bestätigung: :alt: successful setup :width: 40% - File-Server: Erolgreiches Setup + File-Server: Erfolgreiches Setup Auf dem File-Server findet sich nun das Verzeichnis: @@ -226,7 +226,7 @@ Gib im Terminal zur Aktualisierung der Freigaben (Shares) folgende Befehle ein: .. hint:: - Hast Du für den File-Server einen anderen Schulnamen als den Vorgabewert (default-school) angegeben, dann must Du diesen hier angeben. + Hast Du für den File-Server einen anderen Schulnamen als den Vorgabewert (default-school) angegeben, dann musst Du diesen hier angeben. .. attention:: diff --git a/source/setup/setup.rst b/source/setup/setup.rst index a160ee1f..2211ffe5 100644 --- a/source/setup/setup.rst +++ b/source/setup/setup.rst @@ -32,7 +32,7 @@ Wichtige Hinweise - für das Setup von linuxmuster benötigst Du nun eine Subdomain, die vom AD DNS-Server authoritativ intern aufgelöst wird, aber niemals von extern. - der AD DNS-Server arbeitet immer nur für diese eine Subdomain und die darunter liegenden Namensräume autoritativ. - alle internen Clients müssen den AD DNS-Server als DNS-Server nutzen. - - diese Subdomain darf nicht nicht länger als 15 Zeichen sein (NetBIOS-Name) und keine Satzzeichen enthalten. + - diese Subdomain darf nicht länger als 15 Zeichen sein (NetBIOS-Name) und keine Satzzeichen enthalten. - der Fully Qualified Domain Name (FQDN) darf nicht länger als 64 Byte sein. - nutze niemals nicht registrierte Domains wie z.B. .local -> meineschule.local diff --git a/source/systemadministration/network/radius/index.rst b/source/systemadministration/network/radius/index.rst index b1dd6317..ceb1e73f 100644 --- a/source/systemadministration/network/radius/index.rst +++ b/source/systemadministration/network/radius/index.rst @@ -13,7 +13,7 @@ RADIUS (Remote Authentification Dial-In User Service) ist ein Client-Server Prot für das Accounting (Triple A - AAA) von Benutzern in einem Netzwerk dient. Der RADIUS-Server dient als zentraler Authentifizierungsserver, an den sich verschiedene IT-Dienste für die Authentifizierung wenden -können. RADIUS bietet sich an, um in grossen Netzen sicherzustellen, dass ausschließlich berechtigte Nutzer Zugriff haben. +können. RADIUS bietet sich an, um in großen Netzen sicherzustellen, dass ausschließlich berechtigte Nutzer Zugriff haben. Der Zugriff kann zudem auch auf bestimmte Endgeräte beschränkt werden. Um die Authentifizierungsdaten zu übertragen, wird oftmals das Protokoll EAP (Extensible Authentification Protocol) genutzt. @@ -71,7 +71,7 @@ Wenn Du z.B. nur die Gruppe der Lehrer und der Schüler der Oberstufenklassen server ~ # sophomorix-managementgroup --set-wifi teachers_and_oberstufe -Um noch weitere einzelne Schüler hinzuzunehmen oder zu entfernen, nutzt Du danach die Funktion --wifi bzw. --nowifi mit von Komma getrennten Benutzernamen. +Um noch weitere einzelne Schüler hinzuzunehmen oder zu entfernen, nutzt Du danach die Funktion --wifi bzw. --nowifi mit von Kommas getrennten Benutzernamen. .. code:: @@ -110,14 +110,14 @@ Danach muss der samba-ad-dc Dienst neu gestartet werden: Radius konfigurieren ^^^^^^^^^^^^^^^^^^^^ -Dem Freeradius-Dient muss Zugriff auf winbind gegeben werden: +Dem Freeradius-Dienst muss Zugriff auf winbind gegeben werden: .. code:: usermod -a -G winbindd_priv freerad chown root:winbindd_priv /var/lib/samba/winbindd_privileged/ -In dem Verzeichnis ``/etc/freeradius/3.0/sites-enabled`` in die Dateien ``default`` und ``inner-tunnel`` ganz am Anfang unter ``authenticate`` ist ``ntlm_auth`` einzufügen. +In dem Verzeichnis ``/etc/freeradius/3.0/sites-enabled`` in den Dateien ``default`` und ``inner-tunnel`` ganz am Anfang unter ``authenticate`` ist ``ntlm_auth`` einzufügen. .. code:: @@ -141,7 +141,7 @@ Anpassen des Abschnitts ``ntlm_auth`` weiter unten. Zuerst das Kommentarzeichen # eine Zeile ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 --request-nt-key --domain=DOMÄNE --require-membership-of=DOMÄNE\\wifi --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}" -Dabei muss DOMÄNE durch den eigenen Domänennamen ersetzt werden. Gebe den Inhalt der Datei ``/etc/hosts`` mit folgendem Befehl aus: +Dabei muss DOMÄNE durch den eigenen Domänennamen ersetzt werden. Gib den Inhalt der Datei ``/etc/hosts`` mit folgendem Befehl aus: .. code:: @@ -198,7 +198,7 @@ Um alle Schüler aus der Gruppe wifi zu nehmen, listest Du alle User des Systems samba-tool user list > user.txt -Jetzt entferns Du alle User aus der Liste, die immer ins Wlan dürfen sollen. Danach baust Du die Liste zu einer Kommazeile um mit: +Jetzt entfernst Du alle User aus der Liste, die immer ins Wlan dürfen sollen. Danach baust Du die Liste zu einer Kommazeile um mit: .. code:: @@ -248,7 +248,7 @@ Danach ist ein neues Zertifikat zu beantragen: openssl req -new -key radius-key.pem -out radius.csr -sha512 -Gebe hierbei die gewünschten Informationen an. Bei ``Common Name (e.g. server FQDN or YOUR name) []:`` muss die zuvor ermittelte CN eingetragen werden, die z.B. durch ein vorangestelltes ``radius`` ergänzt wird. Ein korrekter Eintrag wäre z.B.: ``radius.gshoenningen.linuxmuster.lan`` +Gib hierbei die gewünschten Informationen an. Bei ``Common Name (e.g. server FQDN or YOUR name) []:`` muss die zuvor ermittelte CN eingetragen werden, die z.B. durch ein vorangestelltes ``radius`` ergänzt wird. Ein korrekter Eintrag wäre z.B.: ``radius.gshoenningen.linuxmuster.lan`` Das Zertifikat ist nun noch auszustellen. Zuvor wird noch das Kennwort für den CA-Key (/etc/linuxmuster/ssl/cakey.pem) benötigt. Das Kennwort findet sich unter ``/etc/linuxmuster/.secret/cakey``. @@ -299,7 +299,7 @@ Passe nun RADIUS so an, dass das Fullchain-Zertifikat genutzt wird. .. hint:: - Je nach Server-Distribution ist ggf. die datei EAP unter /etc/raddb/mods-enabled/eap oder je nach Radius-Version unter /etc/freeradius/3.2/mods-enabled/eap anzupassen. + Je nach Server-Distribution ist ggf. die Datei EAP unter /etc/raddb/mods-enabled/eap oder je nach Radius-Version unter /etc/freeradius/3.2/mods-enabled/eap anzupassen. Danach den Dienst neu starten: @@ -316,7 +316,7 @@ Auf diese Weise kann WPA-Enterprise auch mit neueren Client-Betriebssystemen gen Firewallregeln anpassen ^^^^^^^^^^^^^^^^^^^^^^^ -Auf der Firewall OPNsense® muss je nach eigenen Voraussetzungen dafür gesorgt werden, dass die AP’s aus dem Wlan-Netz den Server auf dem Port 1812 via udp erreichen können. Es ist darauf zu achten, dass die IP des Servers den eigenen Netzvorgaben entspricht (also z.B. 10.0.0.1/16 oder /24 oder 10.16.1.1/16 oder /24) +Auf der Firewall OPNsense® muss je nach eigenen Voraussetzungen dafür gesorgt werden, dass die APs aus dem Wlan-Netz den Server auf dem Port 1812 via UDP erreichen können. Es ist darauf zu achten, dass die IP des Servers den eigenen Netzvorgaben entspricht (also z.B. 10.0.0.1/16 oder /24 oder 10.16.1.1/16 oder /24) Die Regel auf der OPNsense® hierzu könnte, wie nachstehend abgebildet, eingetragen werden. @@ -426,7 +426,7 @@ Nachdem der LDAP-Zugriff konfiguriert ist, muss nur noch die gruppenabhängige V Tunnel-Type :=VLAN, Tunnel-Medium-Type:=6, Tunnel-Private-Group-Id := 20, - Reply-Message := "Wilkommen im Lehrer-WLAN" + Reply-Message := "Willkommen im Lehrer-WLAN" } } else{ @@ -434,7 +434,7 @@ Nachdem der LDAP-Zugriff konfiguriert ist, muss nur noch die gruppenabhängige V Tunnel-Type :=VLAN, Tunnel-Medium-Type:=6, Tunnel-Private-Group-Id := 10, - Reply-Message := "Wilkommen im Schüler-WLAN" + Reply-Message := "Willkommen im Schüler-WLAN" } } @@ -456,7 +456,7 @@ So wird der RADIUS getestet: Tunnel-Type:0 = VLAN Tunnel-Medium-Type:0 = IEEE-802 Tunnel-Private-Group-Id:0 = "20" - Reply-Message = "Wilkommen im Lehrer-WLAN" + Reply-Message = "Willkommen im Lehrer-WLAN" oder mit Schülerzugangsdaten @@ -475,13 +475,13 @@ oder mit Schülerzugangsdaten Tunnel-Type:0 = VLAN Tunnel-Medium-Type:0 = IEEE-802 Tunnel-Private-Group-Id:0 = "10" - Reply-Message = "Wilkommen im Schüler-WLAN" + Reply-Message = "Willkommen im Schüler-WLAN" VLANs im Unifi-Controller nutzen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Die VLAN-Zurodnung lässt sich jetzt sehr einfach im Unifi-Controller nutzen. +Die VLAN-Zuordnung lässt sich jetzt sehr einfach im Unifi-Controller nutzen. Die VLANs müssen natürlich auch als Netzwerk im Unifi-Controller definiert sein. Unter **Einstellungen -> Netzwerke** lassen sich die Netzwerke einfach definieren. diff --git a/source/systemadministration/printer/configure-ad-group.rst b/source/systemadministration/printer/configure-ad-group.rst index be4d6592..4f69eb50 100644 --- a/source/systemadministration/printer/configure-ad-group.rst +++ b/source/systemadministration/printer/configure-ad-group.rst @@ -8,7 +8,7 @@ Drucker einzelnen Räumen zuweisen Die Zuordnung der Drucker auf die Räume wird mit Hilfe der Schulkonsole gemacht. -Melde dich dazu als ``global-admin an`` der Schulkonsole an und gehe unter Klassenzimmer auf Einschreiben. +Melde dich dazu als ``global-admin`` an der Schulkonsole an und gehe unter Klassenzimmer auf Einschreiben. .. image:: media/configure-ad-group_01.png :alt: Schulkonsole Klassenzimmer Einschreiben @@ -32,7 +32,7 @@ Gib den Namen des Raums, dem der Drucker zugewiesen werden soll, ein und bestät :alt: Schulkonsole Klassenzimmer Einschreiben physiklaser1 :align: center -Danach sollten die Raumnamen, denen der Drucker zugewiesn ist unter Gruppen aufgeführt sein. Natürlich kann man einen Drucker auch zwei Räumen zuweisen. Das macht dann Sinn, wenn sich mehrere Räume einen Drucker teilen. +Danach sollten die Raumnamen, denen der Drucker zugewiesen ist unter Gruppen aufgeführt sein. Natürlich kann man einen Drucker auch zwei Räumen zuweisen. Das macht dann Sinn, wenn sich mehrere Räume einen Drucker teilen. Alle Rechner, die im Physikraum stehen, werden ab „jetzt“ Zugriff auf den PhysikLaser1 haben. Allerdings kann es eine ganze Weile dauern, bis sich dieser Eintrag auf die Druckerverteilung auswirkt. Starte am besten Deinen Client neu. From 03f2e7505f9eb3f3eaddf44aaa5fe83a97eaf27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Wed, 22 Jul 2026 01:30:39 +0200 Subject: [PATCH 06/29] Fix leftover v7.3 references and repo suite bug in v7.4 install docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Several install/setup chapters for the current (v7.4) install still said v7.3/lmn7.3 (leftover from before the docs were bumped to v7.4); migration/upgrade.rst correctly keeps v7.3 mentions since that chapter is specifically about upgrading FROM v7.3, left those untouched. - basis_file_server.rst, lmn_pre_install.rst, linux-clients/index.rst: apt source line added the lmn73 (v7.3) package suite instead of lmn74 - verified lmn74 exists on deb.linuxmuster.net, this was a real functional bug for a fresh v7.4 install, not just wording. - basis_server.rst: reworded a circular sentence (recognizing the install is done by the fact that it's done). - lmn_pre_install.rst: eingehangen -> eingehängt (correct participle of einhängen/mounting). - proxmox/index.rst: Snapshoting -> einen Snapshot. --- .../os_installation/linux-clients/index.rst | 2 +- .../install-from-scratch/basis_file_server.rst | 10 +++++----- .../install-from-scratch/basis_server.rst | 2 +- .../install-from-scratch/lmn_pre_install.rst | 12 ++++++------ source/installation/proxmox/index.rst | 8 ++++---- source/setup/setup-file-server.rst | 10 +++++----- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/source/clients/client_templates/os_installation/linux-clients/index.rst b/source/clients/client_templates/os_installation/linux-clients/index.rst index 6c5fd43f..552d9b20 100644 --- a/source/clients/client_templates/os_installation/linux-clients/index.rst +++ b/source/clients/client_templates/os_installation/linux-clients/index.rst @@ -376,7 +376,7 @@ Trage das linuxmuster.net Repository in die Paketquellen des Clients ein: .. code:: - sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/linuxmuster.net.gpg] https://deb.linuxmuster.net/ lmn73 main" > /etc/apt/sources.list.d/lmn73.list' + sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/linuxmuster.net.gpg] https://deb.linuxmuster.net/ lmn74 main" > /etc/apt/sources.list.d/lmn74.list' Aktualisiere die Paketinformationen mit ``sudo apt update``. diff --git a/source/installation/install-from-scratch/basis_file_server.rst b/source/installation/install-from-scratch/basis_file_server.rst index 0447b755..a90825b3 100644 --- a/source/installation/install-from-scratch/basis_file_server.rst +++ b/source/installation/install-from-scratch/basis_file_server.rst @@ -10,9 +10,9 @@ Anlegen und Installieren des Fileservers .. hint:: - Der Fileserver für linuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbindung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis größeren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. - - Grundsätzlich kann linuxmuster.net 7.3 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. + Der Fileserver für linuxmuster.net 7.4 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbindung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis größeren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.4 als Zwei-Server-Lösung weiterbetreiben. + + Grundsätzlich kann linuxmuster.net 7.4 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. In Samba-Umgebungen ist es inzwischen üblich, den Domänencontroller und den Fileserver getrennt voneinander zu betreiben, da dies Performancevorteile hat: Selbst wenn der Fileserver auf dem gleichen Host virtualisiert wird, wie der Server und auf dem gleichen Storage läuft. Das ist für große Schulen mit vielen Clients von Vorteil. @@ -165,7 +165,7 @@ Nachdem Du als Benutzer ``linuxadmin`` am file-server angemeldet bist, wechselst .. code:: - sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/linuxmuster.net.gpg] https://deb.linuxmuster.net/ lmn73 main" > /etc/apt/sources.list.d/lmn73.list' + sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/linuxmuster.net.gpg] https://deb.linuxmuster.net/ lmn74 main" > /etc/apt/sources.list.d/lmn74.list' Fileserver Installation ======================= @@ -195,7 +195,7 @@ Weiteres Vorgehen 1. Nun muss der linuxmuster.net Server (AD/DC) im nächsten Schritt vorbereitet werden. 2. Proxmox muss in das interne Netz gebracht werden. -3. Es muss das Setup für lmnv7.3 (AD/DC) durchgeführt werden. +3. Es muss das Setup für lmnv7.4 (AD/DC) durchgeführt werden. 4. Der File-Server ist in das AD einzubinden und es sind die Freigaben/Shares auf dem lmn-Server zu definieren. diff --git a/source/installation/install-from-scratch/basis_server.rst b/source/installation/install-from-scratch/basis_server.rst index ac58a674..69225bce 100644 --- a/source/installation/install-from-scratch/basis_server.rst +++ b/source/installation/install-from-scratch/basis_server.rst @@ -340,7 +340,7 @@ Zum Abschluss der Installation wird automatisch versucht, Updates zu installiere Bei einer VM achte vor dem Neustart darauf, dass Du die ISO-Datei / DVD ausgeworfen hast und die Boot-Reihenfolge so umgestellt hast, dass die VM direkt von HDD bootet. -Wenn die Installation abgeschlossen ist, erkennst Du daran, dass die Anzeige am unteren Bildschirmrand von +Dass die Installation abgeschlossen ist, erkennst Du daran, dass die Anzeige am unteren Bildschirmrand von .. figure:: media/basis_server_022.png :align: center diff --git a/source/installation/install-from-scratch/lmn_pre_install.rst b/source/installation/install-from-scratch/lmn_pre_install.rst index 31a20165..30a56244 100644 --- a/source/installation/install-from-scratch/lmn_pre_install.rst +++ b/source/installation/install-from-scratch/lmn_pre_install.rst @@ -3,7 +3,7 @@ .. _lmn_pre_install-label: ===================================== -Server (AD/DC) auf lmn7.3 vorbereiten +Server (AD/DC) auf lmn7.4 vorbereiten ===================================== .. sectionauthor:: `@cweikl `_ @@ -181,7 +181,7 @@ Wenn Du nicht mehr an Deinem Server eingeloggt bist, melde Dich erneut an. sr0 11:0 1 1024M 0 rom In o.g. Beispiel wurde Ubuntu Server auf der 1. Festplatte (sda) installiert. Die erste Partition der ersten Platte wird für EFI verwendet, -auf der zweiten Partition wird die Root-Partition ( / ) eingehangen. Auf der zweiten Platte existiert eine Partition, die auf /srv eingehangen ist. +auf der zweiten Partition wird die Root-Partition ( / ) eingehängt. Auf der zweiten Platte existiert eine Partition, die auf /srv eingehängt ist. Skript herunterladen -------------------- @@ -254,7 +254,7 @@ Ist lmn-appliance ohne Fehler durchgelaufen, starte danach den Server neu mit de reboot -Danach steht dem Setup v7.3 nichts mehr im Wege. +Danach steht dem Setup v7.4 nichts mehr im Wege. Paketquellen eintragen ====================== @@ -263,7 +263,7 @@ Paketquellen eintragen Dies muss nur ausgeführt werden, sofern Du den Server bzw. die VM nicht mit dem Skript ``lmn-appliance`` vorbereitet haben solltest. -Es müssen für linuxmuster.net v7.3 die neuen Paketquellen eingetragen werden. +Es müssen für linuxmuster.net v7.4 die neuen Paketquellen eingetragen werden. Zur Eintragung der Paketquellen führe folgende Befehle in der Eingabekonsole aus: @@ -275,11 +275,11 @@ Zur Eintragung der Paketquellen führe folgende Befehle in der Eingabekonsole au Damit installierst Du den Key für das Repository von linuxmuster.net und aktivierst ihn. -Füge dann das Linuxmuster 7.3 Repository hinzu. +Füge dann das Linuxmuster 7.4 Repository hinzu. .. code-block:: Bash - sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/linuxmuster.net.gpg] https://deb.linuxmuster.net/ lmn73 main" > /etc/apt/sources.list.d/lmn.list' + sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/linuxmuster.net.gpg] https://deb.linuxmuster.net/ lmn74 main" > /etc/apt/sources.list.d/lmn.list' Aktualisiere die Softwareliste des Servers: diff --git a/source/installation/proxmox/index.rst b/source/installation/proxmox/index.rst index 16783431..4a95549b 100644 --- a/source/installation/proxmox/index.rst +++ b/source/installation/proxmox/index.rst @@ -30,7 +30,7 @@ Systemvoraussetzungen In der unten aufgeführten Tabelle findest Du die Systemvoraussetzungen zum Betrieb der virtuellen Maschinen. Die Systemanforderungen für die Installation von Proxmox selbst finden sich im Web unter https://www.proxmox.com/de/proxmox-ve/systemanforderungen. -Die Werte bilden die Mindestvoraussetzungen zur Planung. Für die Installation mit Proxmox und linuxmuster v7.3 wird als Standard der ``IP-Bereich 10.0.0.0/16`` genutzt. +Die Werte bilden die Mindestvoraussetzungen zur Planung. Für die Installation mit Proxmox und linuxmuster v7.4 wird als Standard der ``IP-Bereich 10.0.0.0/16`` genutzt. ============ ============= ================= ===== VM IP HDD RAM @@ -666,7 +666,7 @@ Hier noch der Vollständigkeitshalber die schematische Darstellung, wie sie sich Vorbereiten des ISO-Speichers ============================= -Um die v7.3 zu installieren, müssen zwei virtuelle Maschinen angelegt werden. OPNsense und Ubuntu Server LTS werden in diesen VMs installiert. Dazu ist es erforderlich, dass Du die ISO-Images für OPNsense und Ubuntu Server LTS auf den Proxmox-Hypervisor in den Datenspeicher für ISO-Images lädst. +Um die v7.4 zu installieren, müssen zwei virtuelle Maschinen angelegt werden. OPNsense und Ubuntu Server LTS werden in diesen VMs installiert. Dazu ist es erforderlich, dass Du die ISO-Images für OPNsense und Ubuntu Server LTS auf den Proxmox-Hypervisor in den Datenspeicher für ISO-Images lädst. .. figure:: media/proxmox-download-iso_01.png :align: center @@ -1006,7 +1006,7 @@ Klicke auf ``Add``. Anlegen der VM für linuxmuster server ------------------------------------- -Um für den linuxmuster.net Server v7.3 die VM anzulegen, wählst Du erneut in der Proxmox - Verwaltungsoberfläche den Button ``Create VM``. +Um für den linuxmuster.net Server v7.4 die VM anzulegen, wählst Du erneut in der Proxmox - Verwaltungsoberfläche den Button ``Create VM``. .. figure:: media/proxmox-create-vm.png :align: center @@ -1249,4 +1249,4 @@ Die beiden letzten Einstellungen musst Du **nochmals für den linuxmuster.net AD Die virtuellen Maschinen sind jetzt für die weitere Installation vorbereitet. Du kannst gemäß der Anleitung: :ref:`first_start_firewall` mit der Installation fortfahren. -.. hint:: Jetzt wäre auch ein guter Zeitpunkt für ein Snapshoting und/oder dem Klonen der bisher erstellten VMs. +.. hint:: Jetzt wäre auch ein guter Zeitpunkt für einen Snapshot und/oder das Klonen der bisher erstellten VMs. diff --git a/source/setup/setup-file-server.rst b/source/setup/setup-file-server.rst index a0d32c6f..8d4cbecd 100644 --- a/source/setup/setup-file-server.rst +++ b/source/setup/setup-file-server.rst @@ -10,9 +10,9 @@ Setup File-Server .. hint:: - Der Fileserver für linuxmuster.net 7.3 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbindung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis größeren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.3 als Zwei-Server-Lösung weiterbetreiben. - - Grundsätzlich kann linuxmuster.net 7.3 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. + Der Fileserver für linuxmuster.net 7.4 kann optional installiert werden (Drei-Server-Lösung). Es kann aber weiterhin wie bisher auch ein Weiterbetrieb als Zwei-Server-Lösung erfolgen. Wir empfehlen den Fileserver z.B. in einer eigenen VM zu installieren, da hierdurch deutliche Performancesteigerungen in Verbindung mit Samba erreicht werden. Dies empfehlen wir insbesondere mittleren bis größeren Schulen. Kleinere Schulen können problemlos linuxmuster.net 7.4 als Zwei-Server-Lösung weiterbetreiben. + + Grundsätzlich kann linuxmuster.net 7.4 weiterhin als Zwei-Server-Lösung betrieben werden und es kann jederzeit später eine Erweiterung / Umstellung auf den zusätzlichen File-Server erfolgen. Die Migration/ das Update von v7.2 erfolgt zunächst immer als Zwei-Server-Lösung und es erfolgt danach eine Erweiterung um den Fileserver. File-Server aufnehmen ===================== @@ -25,7 +25,7 @@ Melde Dich als Benutzer ``linuxadmin`` mit dem Passwort ``Muster!`` auf dem linu Für diese Anmeldung kannst Du die xterm.js Konsole von Proxmox verwenden, wenn Du unserer Anleitung gefolgt bist. Alternativ kannst Du Dich via ssh von einem anderen Rechner mit dem Server verbinden, wenn er sich im gleichen Netzwerksegment befindet. -Im Terminal wirst Du mit dem Erstbildschirm von linuxmuster.net v7.3 begrüßt und es werden die installierten Paketversionen von linuxmuster.net angezeigt. +Im Terminal wirst Du mit dem Erstbildschirm von linuxmuster.net v7.4 begrüßt und es werden die installierten Paketversionen von linuxmuster.net angezeigt. .. figure:: media/newsetup/lmn-setup-terminal-01.png :align: center @@ -230,7 +230,7 @@ Gib im Terminal zur Aktualisierung der Freigaben (Shares) folgende Befehle ein: .. attention:: - Nachstehenden Befehl musst Du nur eingeben, wenn Du eine neue Installation von linuxmuster.net zusammen mit dem Fileserver durchführst. Hast Du bereits eine lmn v7.3 installiert / eingerichtet und fügst erst später den Fileserver hinzu, dann musst Du folgenden Befehl weglassen: ``net conf addshare $SCHOOL /srv/samba/schools/$SCHOOL/`` + Nachstehenden Befehl musst Du nur eingeben, wenn Du eine neue Installation von linuxmuster.net zusammen mit dem Fileserver durchführst. Hast Du bereits eine lmn v7.4 installiert / eingerichtet und fügst erst später den Fileserver hinzu, dann musst Du folgenden Befehl weglassen: ``net conf addshare $SCHOOL /srv/samba/schools/$SCHOOL/`` .. code:: From 0f3f5bda1d6bceb0d72b90bebd1757eb16a85749 Mon Sep 17 00:00:00 2001 From: cweikl Date: Wed, 22 Jul 2026 09:23:35 +0200 Subject: [PATCH 07/29] * fixes for headline, * fixes for migration --- source/external-services/unifiwlan/index.rst | 4 +- source/index.rst | 3 +- source/migration/index.rst | 8 +- source/migration/linbo-migration-to-4.rst | 114 ------------------- 4 files changed, 8 insertions(+), 121 deletions(-) delete mode 100644 source/migration/linbo-migration-to-4.rst diff --git a/source/external-services/unifiwlan/index.rst b/source/external-services/unifiwlan/index.rst index 6194cb6c..995f457c 100644 --- a/source/external-services/unifiwlan/index.rst +++ b/source/external-services/unifiwlan/index.rst @@ -27,7 +27,7 @@ Die folgenden Video-Tutorials zeigen Schritt für Schritt, wie unser WLAN-Netz a Installation eines Debian-Servers --------------------------------- +--------------------------------- Der Unifi-OS-Server läuft in diesem Tutorial auf einem Debian-Server. Das folgende Video-Tutorial zeigt die Installation und Integration eines leeren Debian-Servers. .. raw:: html @@ -35,7 +35,7 @@ Der Unifi-OS-Server läuft in diesem Tutorial auf einem Debian-Server. Das folge Installation und Grundeinrichtung des Unifi-OS-Servers ------------------------------------------------------ +------------------------------------------------------ Jetzt wird der eigentliche Unifi-OS-Server eingerichtet. .. raw:: html diff --git a/source/index.rst b/source/index.rst index cdbe2fb5..5ec3a7a8 100644 --- a/source/index.rst +++ b/source/index.rst @@ -110,7 +110,8 @@ Nach einem Klick auf die Leiste eröffnen sich Dir dort noch weitere Möglichkei :hidden: migration/index - migration/linbo-migration-to-4 + migration/upgrade + migration/linbo-migration .. toctree:: :maxdepth: 4 diff --git a/source/migration/index.rst b/source/migration/index.rst index 629fa345..b4da83cc 100644 --- a/source/migration/index.rst +++ b/source/migration/index.rst @@ -2,9 +2,9 @@ .. _migration-label: -=============================== - Migration auf linuxmuster 7.4 -=============================== +======================= +Übersicht zur Migration +======================= .. sectionauthor:: `@cweikl `_ @@ -15,5 +15,5 @@ Um auf die linuxmuster 7.4 zu migrieren: 2. Falls Du OPNsense |reg| als Firewall einsetzt, aktualisiere diese auf Version >= v26.1. 3. Für die OPNsense |reg|: Die bestehenden Firewall-Regeln werden bei einem Upgrade der OPNsense |reg| mitgenommen. Nach dem Update müssen diese unbedingt in das neue Format für die Firewall-Regeln migriert werden. Dies erfolgt nach folgendem Vorgehen: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration -4. Führe danach das Release-Upgrade durch. Falls erforderlich führe nach dem Upgrade einen Neustart der Server durch. +4. Führe danach das ``linuxmuster-release-upgrade`` durch. Falls erforderlich führe nach dem Upgrade einen Neustart der Server durch. diff --git a/source/migration/linbo-migration-to-4.rst b/source/migration/linbo-migration-to-4.rst deleted file mode 100644 index 0653a2d8..00000000 --- a/source/migration/linbo-migration-to-4.rst +++ /dev/null @@ -1,114 +0,0 @@ -.. include:: /guided-inst.subst -.. _migration-linbo-label: - -========================== -Migration LINBO 2.4 zu 4.3 -========================== - -.. sectionauthor:: `@cweikl `_ - - -Vorgehen -======== - -In der linuxmuster v7.3 löst LINBO 4.3 das bisherige LINBO 4.2 ab. - -**Fall A**: - -Solltest Du noch v7.0/v7.1 einsetzen, musst Du - - 1. zunächst auf v7.2 aktualisieren und - 2. die in der Doku zur v7.2 beschriebenen Schritte zur Konvertierung der bisherigen LINBO 2.4 Cloop-Images durchlaufen. Diese sind nachstehend nochmals dargestellt. - - -**Fall B:** - -Nutzt Du bereits linuxmuster v7.2 mit LINBO v4.2, dann entspricht die Migration dem beschriebenen Upgrade. - -Neuerungen von LINBO v4.3 -------------------------- - -LINBO 4.3 weist u.a. folgende Neuerungen auf: - -* Änderungen der Namensgebung und des Speicherortes der zum Image zugehörigen Dateien -* Vereinheitlichte Partitionsbezeichnungen unabhängig von dem verwendeten Festplattentyp -* Es wird nur noch 64-Bit Client-Hardware unterstützt. -* Während des Linbo-Bootvorganges werden automatisch Torrent-Seeder-Prozesse für alle im Cache liegenden Images gestartet. -* verbesertes Hardware-Logging der Clients mit hwinfo -* Möglichkeit während des LINBO-Startvorgangs einen VNCSERVER mit starten zu lassen, um sich von einem PC via Server auf den LINBO-Client zu schalten. -* Es kann vom Server als LINBO-Client eine ISO-Live-System gebootet werden. -* Erweiterte LINBO-Client Shell -* WLAN-Unterstützung -* Unterstützung eigener Boot-Skripte -* Vereinfachung des Syntax für LINBO-start.conf-Dateien: Optionen Server | SystemType | Version | Image | Boot | Hidden entfallen. -* Einbindung des aktuellsten Linux-Kernels (z.B. > 6.14.*) - alternativ kann auch ein LTS-Kernel (6.12.*), ein legacy Kernel (6.1.*) oder ein eigener Kernel eingebunden werden. - -Image-Format ------------- - -Das Image-Format heißt seit LINBO v4.2 `qcow2`. `qemu-img` wird genutzt, um die Erstellung und Wiederherstellung der `qcow2`-Images durchzuführen. - -* Für neue Images wird nur noch das Format `qcow2` unterstützt. -* Bisherige Images im `cloop`-Format können in das neue `qcow2`-Format einfach konvertiert werden. - -Folgende Änderungen sollten beachtet werden: - -* Der Name des Basis-Images muss aufgrund des Formatwechsels in der übernommenen start.conf angepasst werden (z.B. `image.qcow2` statt `image.cloop`). -* Die Benennung der zusätzlichen Image-Dateien ``*.postsync``, ``*.prestart`` and ``*.reg`` ändern sich, so dass das Image-Format nicht mehr in den Dateinamen mit angegeben wird (z.B. ``image.postsync`` statt ``image.cloop.postsync`` oder ``image.prestart`` statt ``image.cloop.prestart``). -* Der Ablageort der neuen Images und der zugehörigen zusätzlichen Dateien ist ``/srv/linbo/images//``. Diese Verzeichnisstruktur wird aber nicht in der start.conf angegeben. -* Backups von Images werden jetzt nach ``/srv/linbo/images//backups/`` verschoben. - -Konvertieren der LINBO 2.4 Images ---------------------------------- - -1. Konvertiere Deine Cloop-Images in das qcow2 Format mithilfe von ``linbo-cloop2qcow2``. Wechsle dazu in das Linbo-Verzeichnis und rufe den Befehl mit dem zu konvertierenden Dateinamen auf: - -.. code:: - - cd /srv/linbo - linbo-cloop2qcow2 ubu22.cloop - -Das Cloop-Image wird dadurch in das `qcow2`-Format konvertiert und im Verzeichnis ``/srv/linbo/images/ubu22/`` als Datei ``ubu22.qcow2`` abgelegt. - -.. hint:: - - Images von Windows-Systemen könnten nach der Konvertierung ggf. nicht so funktionieren wie vorgesehen - dies gilt insbesondere für UEFI-Systeme. In diesem Fall ist es notwendig, ein neues Image zu erstellen. - -2. Ändere den Dateinamen des Images in der start.conf der jeweiligen Hardwareklasse/Gruppe. Das Ablageverzeichnis des Images wird dabei nicht genannt, obiges Beispiel: ``BaseImage = ubu22.qcow2`` -3. Starte die Dienste zur Image-Verteilung neu mit: ``systemctl restart linbo-torrent.service``. - -.. important:: - - Starte alle Clients zweimal, um sicherzustellen, dass LINBO v2 auf v4 aktualisiert wurde. - - -4. Zum Schluss starte das Skript ``linuxmuster-import-devices``. Dieses löscht die nun nicht mehr benötigten start.conf-Links. -5. Ab jetzt kannst Du Images wieder wie gewohnt erstellen und verteilen. - -Widerspenstige LINBO-Clients -============================ - -Möchtest Du bestehende LINBO-Clients zu LINBO 4 migrieren und hast dabei Probleme, obwohl Du - wie zuvor beschrieben - den Befehl ``linuxmuster-import-devices`` ausgeführt hast, solltest Du nachstehend bechriebene Schritte ausführen. - -Wichtig ist, dass vor dem Upgrade alle Clients das aktuelle LINBO im Cache haben. Falls es nach dem Upgrade beim Booten von LINBO trotzdem zu Fehlern kommt, kannst Du so vorgehen: - -1. Auf dem Server temporär den LINBO-Netboot erzwingen: - -.. code:: - - # cd /srv/linbo/boot/grub/ - # cp grub.cfg grub.cfg.bak - # cp /usr/share/linuxmuster/linbo/templates/grub.cfg.forced_netboot grub.cfg - -2. Clients per PXE booten. -3. Prüfe, ob die Clients wirklich via PXE Network Boot starten, damit hierdurch die Clients auf die letzte LINBO-Version aktualisiert werden. -4. Nehme die Änderungen nun wieder zurück. - -.. code:: - - # cd /srv/linbo/boot/grub/ - # cp grub.cfg.bak grub.cfg - -5. Starte die Clients erneut. - - From 748c664f3080c1566d9c9bada177581871a06e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Thu, 23 Jul 2026 10:01:54 +0200 Subject: [PATCH 08/29] Add missing migration steps and clarifications to v7.3->v7.4 upgrade guide Based on a hands-on migration test on a fresh v7.3 test environment: - Note that step 1 is mandatory, not just hygiene: linuxmuster-release-upgrade only ships with linuxmuster-base7 >= 7.3.37. - Add a reboot check after the dist-upgrade, before the release upgrade. - Document the grub boot disk prompt and the auto-detected value the script shows right above it. - Note the expected devel-release message before Ubuntu 26.04.1 ships. - Clarify that the OPNsense >= 26.1 upgrade is a multi-step chain, and that console-menu major upgrades are confirmed by typing the version number. - Replace the external-wiki-only firewall rule migration step with the correct in-app steps (the migration wizard lives under the top-level Firewall menu entry, not Firewall -> Rules), plus an anti-lockout warning. --- source/migration/upgrade.rst | 47 +++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/source/migration/upgrade.rst b/source/migration/upgrade.rst index e82a957f..3b60e089 100644 --- a/source/migration/upgrade.rst +++ b/source/migration/upgrade.rst @@ -13,7 +13,7 @@ Upgrade v7.3 auf v7.4 Ablauf ------ -1. Bringe zuerst den lmn7.3 Server auf den aktuellsten Paketstand. +1. Bringe zuerst den lmn7.3 Server auf den aktuellsten Paketstand. **Dieser Schritt ist zwingend erforderlich:** Das für die folgenden Schritte benötigte Skript ``linuxmuster-release-upgrade`` wird erst ab ``linuxmuster-base7`` Version 7.3.37 ausgeliefert und existiert auf älteren 7.3-Ständen noch nicht. Führe dazu in der Konsole folgende Befehle aus: @@ -22,9 +22,35 @@ Führe dazu in der Konsole folgende Befehle aus: sudo apt update sudo apt dist-upgrade +.. attention:: + + Prüfe anschließend, ob ein Neustart erforderlich ist, und starte den Server in diesem Fall neu, bevor Du fortfährst: + + .. code:: + + test -f /var/run/reboot-required && echo "Neustart erforderlich" && reboot + 2. Falls Du OPNsense |reg| als Firewall einsetzt, aktualisiere diese zunächst auf eine Version >= 26.1. -3. Hast Du die OPNsense |reg| aktualisiert, werden Deine bisherigen Firewall-Regeln mitgenommen. Diese musst Du nun unbedingt auf das neue Format für Firewall-Regeln migrieren. Dies erfolgt wie hier beschrieben: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration + .. note:: + + Dieser Sprung erfolgt je nach Ausgangsstand in mehreren Stufen (z. B. 25.1 -> 25.7 -> 26.1) mit jeweils einem Neustart dazwischen — der Hinweis auf die jeweils nächste Major-Version erscheint erst, wenn die aktuell laufende Serie ihr letztes Patchlevel erreicht hat. Prüfe daher nach jedem Zwischenschritt erneut auf verfügbare Updates, bis Version 26.1 erreicht ist. + + Führst Du das Update über das Konsolenmenü durch (Punkt **12) Update from console**), wird ein Major-Upgrade nicht mit ``y``, sondern durch Eintippen der Zielversionsnummer (z. B. ``25.7`` bzw. ``26.1``) bestätigt — ``y`` aktualisiert nur innerhalb der aktuell laufenden Serie. + +3. Hast Du die OPNsense |reg| aktualisiert, werden Deine bisherigen Firewall-Regeln mitgenommen. Diese musst Du nun unbedingt auf das neue Format für Firewall-Regeln migrieren: + + a) Öffne in der OPNsense-Weboberfläche den Menüpunkt **Firewall** (den obersten Eintrag im Menü — nicht *Firewall → Rules*). Der Unterpunkt **Migration** erscheint dort nur, solange noch Legacy-Regeln oder Legacy-Outbound-NAT-Regeln vorhanden sind. + b) Exportiere Deine bestehenden Regeln über **Export as CSV**. + c) Importiere die CSV-Datei über **Import CSV** in die neuen Regeln. + d) Klicke auf **Apply**, um die importierten Regeln zu übernehmen. + e) Entferne abschließend die alten Regeln über **Remove all legacy rules**. + + .. attention:: + + Prüfe vor dem Entfernen der Legacy-Regeln unbedingt, dass die neuen Regeln den von Dir benötigten Zugriff (insbesondere SSH- bzw. Konsolenzugriff) weiterhin erlauben — sonst kannst Du Dich von der Firewall aussperren. + + Eine ausführliche Beschreibung mit Screenshots findest Du hier: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration 4. Führe das Upgrade auf die linuxmuster.net v7.4 - wie nachstehend beschrieben - durch. @@ -51,7 +77,22 @@ Rufe das Skript wie folgt auf: Falls Du Dich via SSH auf dem Server anmeldest, stelle sicher, dass Du als user ``root`` eine tmux-Session startest, damit das Upgrade nicht die SSH-Verbindung unterbricht. -Das Upgrade dauert eine ganze Zeit. Du erhältst zu Beginn auf der Konsole den Hinweis, dass Du vor dem Upgrade einen Snapshot Deiner VM anlegen solltest. Zum Start des Upgrades musst Du dann den in der Konsole angezeigten Text eingeben und dies mit ENTER bestätigen. Danach startet das Upgrade. +Das Upgrade dauert eine ganze Zeit. Du erhältst zu Beginn auf der Konsole den Hinweis, dass Du vor dem Upgrade einen Snapshot Deiner VM anlegen solltest. Zum Start des Upgrades musst Du ``YES`` eingeben und dies mit ENTER bestätigen. + +Anschließend versucht das Skript, die Grub-Boot-Disk automatisch zu erkennen, und fragt danach zur Bestätigung: + +.. code:: + + ## Trying to auto-detect all grub boot disks: /dev/vda + Input the grub boot disk to continue: + +Übernimm hier in der Regel den vom Skript direkt darüber angezeigten, automatisch erkannten Wert (bei virtualisierten Servern z. B. ``/dev/vda``, bei anderer Hardware/Hypervisoren ggf. ``/dev/sda`` oder ``/dev/nvme0n1``). Prüfe im Zweifel vorher mit ``lsblk``, welches Gerät die Root-Partition ``/`` enthält. + +.. note:: + + Bis zur Veröffentlichung von Ubuntu 26.04.1 (voraussichtlich 06.08.2026) meldet das Skript an dieser Stelle zusätzlich ``Upgrade to 26.04 is available as development release!`` und wechselt automatisch in den Devel-Modus. Das ist in diesem Zeitraum erwartet und kein Fehler. + +Danach startet das eigentliche Upgrade. Prüfe während des Upgrades, ob Fehler ausgegeben werden. Im Nachgang kannst Du zudem in der mitgeschriebenen Log-Datei ggf. nach Fehlern suchen. From 996b6bff2f0b31b270868aeedf6e5679764f0f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Thu, 23 Jul 2026 17:05:14 +0200 Subject: [PATCH 09/29] Add fileserver upgrade step to v7.3->v7.4 migration guide A separate fileserver in a multi-server installation was previously not mentioned at all. Per confirmation from the developers, no dedicated linuxmuster-fileserver package exists for v7.4 by design: a plain Ubuntu release-upgrade brings the fileserver to the same Samba version as the main server. --- source/migration/upgrade.rst | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/source/migration/upgrade.rst b/source/migration/upgrade.rst index 3b60e089..12062385 100644 --- a/source/migration/upgrade.rst +++ b/source/migration/upgrade.rst @@ -52,7 +52,7 @@ Führe dazu in der Konsole folgende Befehle aus: Eine ausführliche Beschreibung mit Screenshots findest Du hier: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration -4. Führe das Upgrade auf die linuxmuster.net v7.4 - wie nachstehend beschrieben - durch. +4. Führe das Upgrade auf die linuxmuster.net v7.4 - wie nachstehend beschrieben - durch. Setzt Du zusätzlich einen separaten Fileserver ein, aktualisiere diesen im Anschluss ebenfalls, siehe c) Fileserver aktualisieren. Upgrade ------- @@ -124,6 +124,23 @@ Prüfe nun, ob alle Dienste korrekt gestartet wurden. Du siehst ggf. einen Hinweis auf `quotaon.service`, der sich allerdings nur auf die Root-Partition bezieht, für die keine Quota gesetzt werden kann. Dies entspricht dem erwarteten Verhalten. +**c) Fileserver aktualisieren** + +Setzt Du einen separaten Fileserver ein, bringst Du diesen anschließend ebenfalls auf Ubuntu 26.04 LTS. Anders als beim Server gibt es dafür kein eigenes linuxmuster.net-Skript — führe stattdessen ein reguläres Ubuntu-Release-Upgrade durch: + +.. code:: + + sudo apt update + sudo apt dist-upgrade + sudo do-release-upgrade + +.. note:: + + Bis zur Veröffentlichung von Ubuntu 26.04.1 (voraussichtlich 06.08.2026) musst Du dafür ggf. den Parameter ``-d`` ergänzen (``sudo do-release-upgrade -d``), da 26.04 bis dahin nur als Entwicklungsversion angeboten wird. + +Nach dem Upgrade ist der Fileserver auf demselben Samba-Stand wie der Server; ein separates ``linuxmuster-fileserver``-Paket für v7.4 wird dafür nicht benötigt. + +Starte den Fileserver anschließend neu und prüfe die Dienste wie unter b) beschrieben. From dd2654d7121ddc90ab989c5a1034557e586ae201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Fri, 24 Jul 2026 07:47:42 +0200 Subject: [PATCH 10/29] Fix sudo usage in fileserver upgrade step of v7.3->v7.4 migration guide Section a) on the main server already switches to root once via sudo -i and runs the subsequent commands without sudo; the fileserver section still prefixed every command with sudo despite the same convention applying. Add the explicit root switch and drop the redundant sudo. --- source/migration/upgrade.rst | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/source/migration/upgrade.rst b/source/migration/upgrade.rst index 12062385..5fb116f4 100644 --- a/source/migration/upgrade.rst +++ b/source/migration/upgrade.rst @@ -126,17 +126,23 @@ Du siehst ggf. einen Hinweis auf `quotaon.service`, der sich allerdings nur auf **c) Fileserver aktualisieren** -Setzt Du einen separaten Fileserver ein, bringst Du diesen anschließend ebenfalls auf Ubuntu 26.04 LTS. Anders als beim Server gibt es dafür kein eigenes linuxmuster.net-Skript — führe stattdessen ein reguläres Ubuntu-Release-Upgrade durch: +Setzt Du einen separaten Fileserver ein, bringst Du diesen anschließend ebenfalls auf Ubuntu 26.04 LTS. Anders als beim Server gibt es dafür kein eigenes linuxmuster.net-Skript — führe stattdessen ein reguläres Ubuntu-Release-Upgrade durch. + +Melde Dich dazu am Fileserver an und wechsle wie oben beschrieben zum Benutzer root: .. code:: - sudo apt update - sudo apt dist-upgrade - sudo do-release-upgrade + sudo -i + +.. code:: + + apt update + apt dist-upgrade + do-release-upgrade .. note:: - Bis zur Veröffentlichung von Ubuntu 26.04.1 (voraussichtlich 06.08.2026) musst Du dafür ggf. den Parameter ``-d`` ergänzen (``sudo do-release-upgrade -d``), da 26.04 bis dahin nur als Entwicklungsversion angeboten wird. + Bis zur Veröffentlichung von Ubuntu 26.04.1 (voraussichtlich 06.08.2026) musst Du dafür ggf. den Parameter ``-d`` ergänzen (``do-release-upgrade -d``), da 26.04 bis dahin nur als Entwicklungsversion angeboten wird. Nach dem Upgrade ist der Fileserver auf demselben Samba-Stand wie der Server; ein separates ``linuxmuster-fileserver``-Paket für v7.4 wird dafür nicht benötigt. From 72e8acb4a6efebc87222bf28c0513a97f1e46fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Fri, 24 Jul 2026 14:22:41 +0200 Subject: [PATCH 11/29] Fix broken toctree entries in index.rst breaking RTD build Removes a duplicate migration/upgrade entry and a reference to migration/linbo-migration, which no longer exists (formerly linbo-migration-to-4). The dangling reference produced a Sphinx warning that fail_on_warning turns into a build failure on RTD. --- source/index.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/index.rst b/source/index.rst index 5ec3a7a8..bc454ef8 100644 --- a/source/index.rst +++ b/source/index.rst @@ -110,8 +110,6 @@ Nach einem Klick auf die Leiste eröffnen sich Dir dort noch weitere Möglichkei :hidden: migration/index - migration/upgrade - migration/linbo-migration .. toctree:: :maxdepth: 4 From 0ee8ddd236ed91b301b0f9726826bee9490e6df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Fri, 24 Jul 2026 14:42:56 +0200 Subject: [PATCH 12/29] Add data-protection notes to external LDAP service docs Deleted lmn users are not necessarily deleted in externally connected services (Moodle, Nextcloud, AlekSIS) - only disabled depending on config, so accounts and data may need to be removed there manually. Also note that direct LDAP bind means user passwords are entered on the external service's own web UI, requiring trust in that provider, whereas SSO via Keycloak (e.g. bundled with Edulution) keeps secrets on local infrastructure. Closes #376 --- .../external-services/_datenschutz-loeschung.rst | 14 ++++++++++++++ .../external-services/_ldap-vertrauen-keycloak.rst | 13 +++++++++++++ source/external-services/aleksis/index.rst | 7 +++++-- source/external-services/moodle/index.rst | 6 +++++- .../external-services/nextcloud/authentication.rst | 6 +++++- 5 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 source/external-services/_datenschutz-loeschung.rst create mode 100644 source/external-services/_ldap-vertrauen-keycloak.rst diff --git a/source/external-services/_datenschutz-loeschung.rst b/source/external-services/_datenschutz-loeschung.rst new file mode 100644 index 00000000..3238380c --- /dev/null +++ b/source/external-services/_datenschutz-loeschung.rst @@ -0,0 +1,14 @@ +.. attention:: + + **Datenschutz: Löschung von Benutzerdaten in extern angebundenen Diensten** + + Wird ein/e Benutzer/in im AD der linuxmuster.net gelöscht, wirkt sich das nicht automatisch auf bereits dort + gespeicherte Daten in extern angebundenen Diensten aus. Je nach Konfiguration des jeweiligen Dienstes werden + entfernte Benutzer/innen beim nächsten LDAP-Sync ggf. nur gesperrt oder deaktiviert, ihre personenbezogenen + Daten (Kursinhalte, Dateien, Nachrichten etc.) bleiben aber bestehen. + + Aus datenschutzrechtlicher Sicht (Löschpflicht, Speicherbegrenzung) müssen Administrator/innen sicherstellen, + dass personenbezogene Daten gelöschter Benutzer/innen auch in den angebundenen externen Diensten zeitnah + entfernt werden. Unterstützt der angebundene Dienst keine automatische Löschung (sondern nur eine + Sperrung/Deaktivierung) gelöschter LDAP-Benutzer/innen, so müssen diese Konten samt ihrer Daten + **regelmäßig manuell** im jeweiligen Dienst gelöscht werden, um den Datenschutzanforderungen zu genügen. diff --git a/source/external-services/_ldap-vertrauen-keycloak.rst b/source/external-services/_ldap-vertrauen-keycloak.rst new file mode 100644 index 00000000..4a4f79ef --- /dev/null +++ b/source/external-services/_ldap-vertrauen-keycloak.rst @@ -0,0 +1,13 @@ +.. attention:: + + **Vertrauen bei direkter LDAP-Anbindung** + + Bei einer direkten LDAP-Anbindung gibt der Bind-User zwar keine Nutzerpasswörter preis, wohl aber geben die + Nutzer/innen selbst ihr AD-Passwort direkt auf der Weboberfläche des externen Dienstes ein. Diesem Dienst + (bzw. dessen Betreiber) muss man also entsprechend vertrauen, da er potenziell an die eingegebenen + Zugangsdaten gelangen könnte. + + Steht stattdessen ein Keycloak zur Verfügung (z.B. bei Edulution bereits integriert, oder selbst betrieben + und an die linuxmuster.net angebunden), ist es aus Datenschutz-/Sicherheitssicht vorzuziehen, Dienste über + Keycloak per SSO (OIDC/SAML) statt per direktem LDAP-Bind anzubinden: Die Passwörter/Secrets der Nutzer/innen + verbleiben dann stets auf der eigenen Infrastruktur und werden dem externen Dienst nie direkt mitgeteilt. diff --git a/source/external-services/aleksis/index.rst b/source/external-services/aleksis/index.rst index d836a981..54cbcf5f 100644 --- a/source/external-services/aleksis/index.rst +++ b/source/external-services/aleksis/index.rst @@ -68,9 +68,10 @@ Sind die benötigten LDAP Pakete installiert muss die LDAP Konfiguration in der Die ``uri`` muss natürlich auf die jeweilige Schule mit dem entsprechenden Domain Namen angepasst werden ebenso bei ``search`` -Sollte die Aleksis Instanz extern betrtrieben werden. Ist es dringend empfohlen den Port ``636`` für LDAPs zu verwenden außerdem bei ``uri`` -statt ``ldap:`` ebenfalls ``ldaps`` einzutragen. +Sollte die Aleksis Instanz extern betrtrieben werden. Ist es dringend empfohlen den Port ``636`` für LDAPs zu verwenden außerdem bei ``uri`` +statt ``ldap:`` ebenfalls ``ldaps`` einzutragen. +.. include:: /external-services/_ldap-vertrauen-keycloak.rst Als nächstes wechselt man in die Aleksis Weboberfläche und wechselt auf der linken Seite auf ``Admin`` und dann auf ``LDAP`` @@ -107,3 +108,5 @@ Alle anderen Felder sollten leer bleiben Am Ende die Einstellungen mit ``EINSTELLUNGEN SPEICHERN`` bestätigen. Jetzt sollte der Benutzer in der Lage sein sich anzumelden. Die LDAP Anbindung ist hiermit abgeschlossen. + +.. include:: /external-services/_datenschutz-loeschung.rst diff --git a/source/external-services/moodle/index.rst b/source/external-services/moodle/index.rst index c9ed2e14..563627d0 100644 --- a/source/external-services/moodle/index.rst +++ b/source/external-services/moodle/index.rst @@ -70,7 +70,9 @@ Bind-Einstellungen .. attention:: - Grundsätzlich sollten alle externen Dienste, die via LDAP an das AD angebunden werden, mit einem eigens dafür angelegten Bind-User genutzt werden. Für Moodle sollte so z.B. ein Benutzer ``moodle-binduser`` angelegt werden, der für die Verbindung zum AD genutzt wird. Hinweise hierzu findest Du unter https://github.com/linuxmuster/sophomorix4/wiki/bindusers + Grundsätzlich sollten alle externen Dienste, die via LDAP an das AD angebunden werden, mit einem eigens dafür angelegten Bind-User genutzt werden. Für Moodle sollte so z.B. ein Benutzer ``moodle-binduser`` angelegt werden, der für die Verbindung zum AD genutzt wird. Hinweise hierzu findest Du unter https://github.com/linuxmuster/sophomorix4/wiki/bindusers + +.. include:: /external-services/_ldap-vertrauen-keycloak.rst **Vorgehen zur Anlage eines neuen Bind-Users** @@ -166,6 +168,8 @@ Weitere Einstellungen | Status von lokalen Nutzerkonten synchronisieren | Nein | +-------------------------------------------------+-----------------------------------------------+ +.. include:: /external-services/_datenschutz-loeschung.rst + **NTLM-SSO** +--------------------+----------------------------------------------------------------------------+ diff --git a/source/external-services/nextcloud/authentication.rst b/source/external-services/nextcloud/authentication.rst index 3d73bfea..5589b5dd 100644 --- a/source/external-services/nextcloud/authentication.rst +++ b/source/external-services/nextcloud/authentication.rst @@ -43,7 +43,9 @@ Bind-User .. attention:: - Grundsätzlich sollten alle externen Dienste, die via LDAP an das AD angebunden werden, mit einem eigens dafür angelegten Bind-User genutzt werden. Für Nextcloud sollte so z.B. ein Benutzer ``nextcloud-binduser`` angelegt werden, der für die Verbindung zum AD genutzt wird. Hinweise hierzu findest Du unter https://github.com/linuxmuster/sophomorix4/wiki/bindusers + Grundsätzlich sollten alle externen Dienste, die via LDAP an das AD angebunden werden, mit einem eigens dafür angelegten Bind-User genutzt werden. Für Nextcloud sollte so z.B. ein Benutzer ``nextcloud-binduser`` angelegt werden, der für die Verbindung zum AD genutzt wird. Hinweise hierzu findest Du unter https://github.com/linuxmuster/sophomorix4/wiki/bindusers + +.. include:: /external-services/_ldap-vertrauen-keycloak.rst **Vorgehen zur Anlage eines neuen Bind-Users** @@ -198,3 +200,5 @@ Das ``"$home"Platzhalter-Feld`` brauchst Du, wenn Du die Home-Verzeichnisse auch So, das war's. Sicherheitshalber gehst Du nochmal auf den Reiter ``Experte`` und klicks auf ``Lösche LDAP-Benutzernamenzuordung`` und ``Lösche LDAP-Gruppennamenzuordung``. +.. include:: /external-services/_datenschutz-loeschung.rst + From 2e96123c5d3686ae7f8a0d2eaf6775174c6488e3 Mon Sep 17 00:00:00 2001 From: cweikl Date: Fri, 24 Jul 2026 22:53:34 +0200 Subject: [PATCH 13/29] summed up index: migration as the only chapter for mifration and upgrade --- source/index.rst | 9 +--- source/migration/index.rst | 1 + source/migration/linbo-migration.rst | 75 ++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 source/migration/linbo-migration.rst diff --git a/source/index.rst b/source/index.rst index bc454ef8..18307e1d 100644 --- a/source/index.rst +++ b/source/index.rst @@ -97,19 +97,14 @@ Nach einem Klick auf die Leiste eröffnen sich Dir dort noch weitere Möglichkei .. setup/add-devices -.. toctree:: - :maxdepth: 2 - :caption: Upgrade - :hidden: - - migration/upgrade - .. toctree:: :maxdepth: 2 :caption: Migration :hidden: migration/index + migration/linbo-migration + migration/upgrade .. toctree:: :maxdepth: 4 diff --git a/source/migration/index.rst b/source/migration/index.rst index b4da83cc..7ad4ddc2 100644 --- a/source/migration/index.rst +++ b/source/migration/index.rst @@ -16,4 +16,5 @@ Um auf die linuxmuster 7.4 zu migrieren: 3. Für die OPNsense |reg|: Die bestehenden Firewall-Regeln werden bei einem Upgrade der OPNsense |reg| mitgenommen. Nach dem Update müssen diese unbedingt in das neue Format für die Firewall-Regeln migriert werden. Dies erfolgt nach folgendem Vorgehen: https://www.thomas-krenn.com/en/wiki/OPNsense_26.1_Firewall_Rule_Migration 4. Führe danach das ``linuxmuster-release-upgrade`` durch. Falls erforderlich führe nach dem Upgrade einen Neustart der Server durch. +5. Falls Du den File-Server installiert hast, führe für diesen ein release-upgrade auf Ubuntu 26.04 LTS durch. diff --git a/source/migration/linbo-migration.rst b/source/migration/linbo-migration.rst new file mode 100644 index 00000000..f5c78d16 --- /dev/null +++ b/source/migration/linbo-migration.rst @@ -0,0 +1,75 @@ +.. include:: /guided-inst.subst +.. _migration-linbo-label: + +========================== +Migration LINBO 4.3 zu 7.4 +========================== + +.. sectionauthor:: `@cweikl `_ + +In der linuxmuster v7.4 löst LINBO v7.4 das bisherige LINBO v4.3 ab, das mit linuxmuster.net v7.3 ausfeliefert wurde. + +.. attention:: + + Voraussetzung für das Upgrade zu linuxmuster.net v7.4 und LINBO v7.4 ist, dass Du Dein System bereits auf linuxmuster.net v7.3 und LINBO v4.3 aktualisiert und alle Pakete aktualisiert hast. + +Ist dies der Fall, wird LINBO im Zuge des Upgrades mit + +.. code:: + + linuxmuster-release-upgrade + +ebenfalls aktualisiert. + + +Neuerungen von LINBO v7.4 +------------------------- + +LINBO 7.4 weist u.a. folgende Neuerungen auf: + +* Es sind verschiedene Kernel Versionen verfügbar (6.1.*, 6.12.* & 6.16.*). +* Es wird als Image-Format ``qcow2`` gentutzt. +* Es werden differentielle Images unterstützt. +* ``linbo_cmd`` wurde vollständig neu refaktorisiert. +* Es wurde ein neuer NTFS3-Kernel-Treiber eingebunden, der die Synchronisation für NTFS-Partitionen unterstützt. + +qcow2-Format +------------ + +Das Image-Format heißt `qcow2`. `qemu-img` wird genutzt, um die Erstellung und Wiederherstellung der `qcow2`-Images durchzuführen. + +Folgendes sollte beachtet werden: + +* Der Name des Basis-Images muss in der start.conf z.B. `image.qcow2` lauten. +* Die Benennung der zusätzlichen Image-Dateien ``*.postsync``, ``*.prestart`` and ``*.reg`` ändern sich, so dass das Image-Format nicht mehr in den Dateinamen mit angegeben wird (z.B. ``image.postsync`` oder ``image.prestart``). +* Der Ablageort der neuen Images und der zugehörigen zusätzlichen Dateien ist ``/srv/linbo/images//``. Diese Verzeichnisstruktur wird aber nicht in der start.conf angegeben. +* Backups von Images werden jetzt nach ``/srv/linbo/images//backups/`` verschoben. + + +**Widerspenstige LINBO-Clients** + + +Möchtest Du bestehende LINBO-Clients zu LINBO 7 migrieren und hast dabei Probleme, obwohl Du - wie zuvor beschrieben - den Befehl ``linuxmuster-import-devices`` ausgeführt hast, solltest Du nachstehend bechriebene Schritte ausführen. + +Wichtig ist, dass vor dem Upgrade alle Clients das aktuelle LINBO im Cache haben. Falls es nach dem Upgrade beim Booten von LINBO trotzdem zu Fehlern kommt, kannst Du so vorgehen: + +1. Auf dem Server temporär den LINBO-Netboot erzwingen: + +.. code:: + + # cd /srv/linbo/boot/grub/ + # cp grub.cfg grub.cfg.bak + # cp /usr/share/linuxmuster/linbo/templates/grub.cfg.forced_netboot grub.cfg + +2. Clients per PXE booten. +3. Prüfe, ob die Clients wirklich via PXE Network Boot starten, damit hierdurch die Clients auf die letzte LINBO-Version aktualisiert werden. +4. Nehme die Änderungen nun wieder zurück. + +.. code:: + + # cd /srv/linbo/boot/grub/ + # cp grub.cfg.bak grub.cfg + +5. Starte die Clients erneut. + + From 3d20e7791b6c0cb6b285a1bb338df2c5af062dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Fri, 24 Jul 2026 23:28:04 +0200 Subject: [PATCH 14/29] Link migration overview to detailed upgrade guide Fixes #1030: migration/index.rst listed the migration steps but had no cross-reference to migration/upgrade.rst, which contains the actual step-by-step instructions. Readers entering via the overview page had no way to find the detailed guide. --- source/migration/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/migration/index.rst b/source/migration/index.rst index 7ad4ddc2..b71b0672 100644 --- a/source/migration/index.rst +++ b/source/migration/index.rst @@ -18,3 +18,5 @@ Um auf die linuxmuster 7.4 zu migrieren: 4. Führe danach das ``linuxmuster-release-upgrade`` durch. Falls erforderlich führe nach dem Upgrade einen Neustart der Server durch. 5. Falls Du den File-Server installiert hast, führe für diesen ein release-upgrade auf Ubuntu 26.04 LTS durch. +Eine ausführliche Schritt-für-Schritt-Anleitung zu diesen Punkten findest Du unter :ref:`Upgrade v7.3 auf v7.4 `. + From 71bb1c2af7b1e8c31e821ee755ad650f4bdbdb82 Mon Sep 17 00:00:00 2001 From: cweikl Date: Fri, 31 Jul 2026 23:52:51 +0200 Subject: [PATCH 15/29] fxed whats-new; fixed LINBO chapter; integrated https://github.com/linuxmuster/linuxmuster-base7/blob/7.4/docs/doc-notes-lmn74.de.md --- source/about/what-is-new.rst | 63 +- source/clients/index.rst | 8 +- source/clients/linbo/index.rst2delete | 383 -- source/clients/linbo/media/01-webui-login.png | Bin 11126 -> 0 bytes .../linbo/media/02-webui-menue-linbo.png | Bin 7771 -> 0 bytes ...ebui-menue-linbo-create-start-template.png | Bin 14306 -> 0 bytes ...-webui-menue-linbo-name-for-start-conf.png | Bin 6355 -> 0 bytes .../media/05-webui-linbo-edit-new-group.png | Bin 40284 -> 0 bytes ...-linbo-edit-new-group-partition-scheme.png | Bin 28579 -> 0 bytes ...edit-new-group-partition-scheme-edited.png | Bin 25046 -> 0 bytes ...i-linbo-edit-new-group-os-infos-edited.png | Bin 39220 -> 0 bytes .../linbo/media/09-webui-menue-devices.png | Bin 5076 -> 0 bytes .../linbo/media/10-webui-devices-header.png | Bin 9024 -> 0 bytes .../linbo/media/11-webui-devices-rows.png | Bin 23409 -> 0 bytes .../linbo/media/12-webui-add-new-device.png | Bin 2197 -> 0 bytes .../linbo/media/13-webui-new-device.png | Bin 13036 -> 0 bytes .../media/14-webui-save-and-add-devices.png | Bin 7088 -> 0 bytes .../linbo/media/15-webui-add-devices-log.png | Bin 113919 -> 0 bytes .../media/17-linbo-webui-start-screen.png | Bin 30891 -> 0 bytes .../linbo/media/18-linbo-webui-root-login.png | Bin 4572 -> 0 bytes .../linbo/media/19-linbo-webui-settings.png | Bin 38350 -> 0 bytes .../media/20-linbo-webui-partitioning.png | Bin 12248 -> 0 bytes .../media/21-linbo-webui-partitioned.png | Bin 6626 -> 0 bytes .../linbo/media/22-linbo-webui-shutdown.png | Bin 1103 -> 0 bytes .../media/linbo_functionality_detail.svg | 4994 ----------------- .../{use_linbo4 => use_linbo}/.tx/config | 0 .../{use_linbo4 => use_linbo}/index.rst | 231 +- .../media/01-linbo-start-vncserver.png | Bin .../media/02-linbo-vncserver-process.png | Bin .../media/03-linbo-vncviewer-access.png | Bin .../media/linbo-bootscreen/linbo-ascii.png | Bin .../media/linbo-bootscreen/linbo-group.png | Bin .../linbo-bootscreen/linbo-iso-download.png | Bin .../linbo-iso-login-school-console.png | Bin .../linbo-iso-menue-linbo4.png | Bin .../media/linbo-bootscreen/linbo-tftp.png | Bin .../media/linbo-diff-images/01-linbo-gui.png | Bin .../media/linbo-diff-images/02-tools-icon.png | Bin .../linbo-diff-images/03-linbo-password.png | Bin .../04-linbo-tools-menue.png | Bin .../linbo-diff-images/05-icon-new-image.png | Bin .../linbo-diff-images/06-menue-new-image.png | Bin .../07-image-create-and-upload.png | Bin .../08-finished-uploading-new-image.png | Bin .../linbo-diff-images/09-reboot-linbo.png | Bin .../linbo-diff-images/10-linbo-boot-icons.png | Bin .../media/linbo-diff-images/11-sync-image.png | Bin .../12-gui-images-menue-left.png | Bin .../13-linbo-group-images.png | Bin .../14-group-images-overview.png | Bin .../15-basic-image-menue.png | Bin .../linbo-diff-images/16-basic-image-info.png | Bin .../17-basic-image-backups-history.png | Bin .../18-diff-images-menue.png | Bin .../linbo-diff-images/19-diff-image-infos.png | Bin .../button-create-image.png | Bin .../media/linbo-imagingscreen/cache.png | Bin .../linbo-imagingscreen/console-dialog.png | Bin .../media/linbo-imagingscreen/console.png | Bin .../create-image-dialog.png | Bin .../media/linbo-imagingscreen/image-os.png | Bin .../linbo-imagingscreen.png | Bin .../media/linbo-imagingscreen/partition.png | Bin .../linbo-imagingscreen/register-dialog.png | Bin .../media/linbo-imagingscreen/register.png | Bin .../update-cache-dialog.png | Bin .../upload-image-dialog.png | Bin .../media/linbo-imagingscreen/upload.png | Bin .../linbo-mainscreen-infos-f1.png | Bin .../linbo-mainscreen-registered.png | Bin .../linbo-mainscreen-unregistered.png | Bin .../media/linbo-mainscreen/new-and-start.png | Bin .../linbo-mainscreen/password-dialog.png | Bin .../media/linbo-mainscreen/start.png | Bin .../media/linbo-mainscreen/sync+start.png | Bin .../media/linbo-mainscreen/system-reboot.png | Bin .../linbo-mainscreen/system-shutdown.png | Bin .../media/linbo-mainscreen/tools.png | Bin .../media/linbo_screen1.png | Bin .../media/linbo_screen2.png | Bin .../media/linbo_screen4.png | Bin source/index.rst | 14 +- source/{migration => upgrade}/index.rst | 10 +- .../linbo-migration.rst | 4 +- .../media/02-login-lmn-7.3.png | Bin .../partitionierung-ubuntu18-server-2-hdd.PNG | Bin source/{migration => upgrade}/upgrade.rst | 4 +- 87 files changed, 145 insertions(+), 5566 deletions(-) delete mode 100644 source/clients/linbo/index.rst2delete delete mode 100644 source/clients/linbo/media/01-webui-login.png delete mode 100644 source/clients/linbo/media/02-webui-menue-linbo.png delete mode 100644 source/clients/linbo/media/03-webui-menue-linbo-create-start-template.png delete mode 100644 source/clients/linbo/media/04-webui-menue-linbo-name-for-start-conf.png delete mode 100644 source/clients/linbo/media/05-webui-linbo-edit-new-group.png delete mode 100644 source/clients/linbo/media/06-webui-linbo-edit-new-group-partition-scheme.png delete mode 100644 source/clients/linbo/media/07-webui-linbo-edit-new-group-partition-scheme-edited.png delete mode 100644 source/clients/linbo/media/08-webui-linbo-edit-new-group-os-infos-edited.png delete mode 100644 source/clients/linbo/media/09-webui-menue-devices.png delete mode 100644 source/clients/linbo/media/10-webui-devices-header.png delete mode 100644 source/clients/linbo/media/11-webui-devices-rows.png delete mode 100644 source/clients/linbo/media/12-webui-add-new-device.png delete mode 100644 source/clients/linbo/media/13-webui-new-device.png delete mode 100644 source/clients/linbo/media/14-webui-save-and-add-devices.png delete mode 100644 source/clients/linbo/media/15-webui-add-devices-log.png delete mode 100644 source/clients/linbo/media/17-linbo-webui-start-screen.png delete mode 100644 source/clients/linbo/media/18-linbo-webui-root-login.png delete mode 100644 source/clients/linbo/media/19-linbo-webui-settings.png delete mode 100644 source/clients/linbo/media/20-linbo-webui-partitioning.png delete mode 100644 source/clients/linbo/media/21-linbo-webui-partitioned.png delete mode 100644 source/clients/linbo/media/22-linbo-webui-shutdown.png delete mode 100644 source/clients/linbo/media/linbo_functionality_detail.svg rename source/clients/{use_linbo4 => use_linbo}/.tx/config (100%) rename source/clients/{use_linbo4 => use_linbo}/index.rst (84%) rename source/clients/{use_linbo4 => use_linbo}/media/01-linbo-start-vncserver.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/02-linbo-vncserver-process.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/03-linbo-vncviewer-access.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-bootscreen/linbo-ascii.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-bootscreen/linbo-group.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-bootscreen/linbo-iso-download.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-bootscreen/linbo-iso-login-school-console.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-bootscreen/linbo-iso-menue-linbo4.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-bootscreen/linbo-tftp.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/01-linbo-gui.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/02-tools-icon.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/03-linbo-password.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/04-linbo-tools-menue.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/05-icon-new-image.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/06-menue-new-image.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/07-image-create-and-upload.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/08-finished-uploading-new-image.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/09-reboot-linbo.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/10-linbo-boot-icons.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/11-sync-image.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/12-gui-images-menue-left.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/13-linbo-group-images.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/14-group-images-overview.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/15-basic-image-menue.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/16-basic-image-info.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/17-basic-image-backups-history.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/18-diff-images-menue.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-diff-images/19-diff-image-infos.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/button-create-image.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/cache.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/console-dialog.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/console.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/create-image-dialog.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/image-os.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/linbo-imagingscreen.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/partition.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/register-dialog.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/register.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/update-cache-dialog.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/upload-image-dialog.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-imagingscreen/upload.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/linbo-mainscreen-infos-f1.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/linbo-mainscreen-registered.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/linbo-mainscreen-unregistered.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/new-and-start.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/password-dialog.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/start.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/sync+start.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/system-reboot.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/system-shutdown.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo-mainscreen/tools.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo_screen1.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo_screen2.png (100%) rename source/clients/{use_linbo4 => use_linbo}/media/linbo_screen4.png (100%) rename source/{migration => upgrade}/index.rst (85%) rename source/{migration => upgrade}/linbo-migration.rst (93%) rename source/{migration => upgrade}/media/02-login-lmn-7.3.png (100%) rename source/{migration => upgrade}/media/partitionierung-ubuntu18-server-2-hdd.PNG (100%) rename source/{migration => upgrade}/upgrade.rst (94%) diff --git a/source/about/what-is-new.rst b/source/about/what-is-new.rst index 7ddf6f34..13d291ca 100644 --- a/source/about/what-is-new.rst +++ b/source/about/what-is-new.rst @@ -10,10 +10,60 @@ Was ist neu in 7.4? Linuxmuster.net 7.4 ist das Release-Update der linuxmuster.net v7.3. Es erfolgt eine Aktualisierung der bisher eingesetzten Ubuntu LTS Version 24.04 auf die Ubuntu Server LTS Version 26.04. Die Kernpakete der linuxmuster.net Lösung erhalten alle ein Update und stellen viele Verbesserungen und neue Features bereit. -Neue Funktionalitäten ---------------------- -Verbesserte Skalierbarkeit +Neuerungen +---------- + +Version 7.4 ist eine umfangreiche Wartungs- und Refactoring-Version. Der gesamte Python-Code wurde auf die Debian Python Policy (PEP 517/518) umgestellt, kritische Sicherheitslücken wurden geschlossen und die OPNsense |reg| - Anbindung wurde auf die REST-API migriert. Daneben wurden zahlreiche Fehler behoben und Sicherheitsverbesserungen eingeführt. + + +**Neue Python-Paketstruktur (Debian Python Policy)** + +Der gesamte Python-Code wurde in ein reguläres Python-Paket überführt und folgt nun der Debian Python Policy: + + - Neues Paket-Layout unter src/linuxmuster_base7/ mit den Untermodulen cli/ und setup/ + - Alle CLI-Werkzeuge sind jetzt reguläre Python-Module im Paket pyproject.toml (PEP 621) als zentrale Projektkonfiguration. + - Die alten monolithischen Skripte unter sbin/ und lib/ wurden entfernt + - Alle Skripte werden nun nach /usr/sbin/ statt /usr/bin/ installiert + +**Sicherheitsfixes** + +Mehrere kritische Sicherheitslücken wurden geschlossen: + + - Shell-Injection in SSH-Funktionen beseitigt. + - Passwort-Leak in opnsense_reset.py behoben. + - Shell-Injection in catFiles() behoben. + - Alle verbleibenden os.popen()-, os.system()- und subProc()-Aufrufe wurden durch sicheres subprocess.run() ersetzt. + +**OPNsense-Anbindung auf REST-API migriert** + +import_subnets.py verwaltet statische Routen in der OPNsense-Firewall jetzt ausschließlich über die REST-API (HTTP/HTTPS) statt über SSH-Kommandos. Dadurch entfällt die Abhängigkeit von SSH-Zugangsdaten für diese Operation und die Anbindung ist robuster und besser zu warten. + +**Verbesserter Ablauf bei linuxmuster-import-devices** + +Vor dem eigentlichen ``sophomorix-device --sync`` wird jetzt zwingend ``sophomorix-device --dry-run`` ausgeführt. Nur wenn der dry-run fehlerfrei durchläuft, wird mit dem Sync fortgefahren. Schlägt der dry-run fehl, bricht das Skript mit einer Fehlermeldung ab. + +**Setup-Verbesserungen** + + - Hostname-Änderungen werden bei der Samba-Provisionierung jetzt korrekt übernommen (bisher wurde ein geänderter Hostname ignoriert) + - isc-dhcp-server6.service wird während des Setups deaktiviert, um Konflikte zu vermeiden. + - Keytab-Erstellung wird übersprungen, wenn das Firewall-Setup deaktiviert ist (skipfw = True) + - NTP wird nur dann deaktiviert, wenn es tatsächlich aktiv ist. + - Versionsnummer in der Setup-Dialoganzeige korrigiert. + +**LINBO - Neuerungen** + + - Komplette Überarbeitung des Build-Systems + - Refaktorierung der Kernel-Bereitstellung + - Ersatz von ctorrent durch aria2c + - Aufräumen und Entfernen veralteter Komponenten + - Natives Windows-Treiberprofil-Management + - Weitere Fehlerbehebungen und Verbesserungen + +Funktionalitäten +---------------- + +Skalierbarkeit * Mehrschulfähigkeit: Konsolidierung mehrerer Schulinstanzen möglich * Gruppenorientierte Abbildung der Schule und flexible, regelbasierte Steuerung * Moderne Bereitstellung zusätzlicher IT-Dienste der Schule innerhalb der Schullösung @@ -22,7 +72,7 @@ Moderne Betriebssystembasis und Steuerung * Aktuelle Betriebssysteme für die Server (Ubuntu Server 26.04 LTS) * **Optionale** Firewall OPNsense |reg| ab v26.1 * Verbesserung der Performance des Samba-Dateiservers durch automatische Verlagerung der Shares auf eine zweite VM, die nur den Dateiserver aufnimmt. Nutzung von DFS als Dateisystem. - * Mit LINBO 7.4: aktuellste Linux-Kernels für aktuelle Hardware, differentielle Images, ntfs3 Kernel-Treiber, VNC-Server, mit neuem Namensschema zur einheitlichen Partitionierung + * Mit LINBO 7.4: aktuelle Linux-Kernels für aktuelle Hardware, differentielle Images, ntfs3 Kernel-Treiber, VNC-Server, mit neuem Namensschema zur einheitlichen Partitionierung * Webbasierte Steuerung der pädagogischen Funktionen mit einem **responsive design** (passt sich an alle Bildschirmgrößen und -auflösungen an). * WebUI mit vielen neuen administrativen Möglichkeiten wie die Verwaltung von Schulpersonal und Eltern * Bereitstellung von linuxmuster-tools, linuxmuster-api und linuxmuster-cli mit erweiterten Möglichkeiten zur Administration und Anbindung externer webbasierter Systeme @@ -54,14 +104,15 @@ Netzwerkverwaltung auf Single-Sign-On Basis - anstelle eines transparenten Proxy Selbstheilende Arbeitsstationen - * LINBO ist weiterhin das zentrale Softwareverteilungssystem. + * LINBO ist das zentrale Softwareverteilungssystem. * Weitere Neuerungen in LINBO sind u.a.: - * Aktuelle Linux-Kernel ab 6.12.* und einem nativen NTFS-Kernel Treiber + * Aktuelle Linux-Kernel und einem nativen NTFS-Kernel Treiber * Neues einheitliches Partitionsschema mit neuem Namensschema * Konsolidierung der Start-Parameter * VNC-Server auf den Clients für Remote-Zugriff * Inventarisierung der Clients mit hwinfo + * Verbesserungen bei der Software-Verteilung mit Torrent diff --git a/source/clients/index.rst b/source/clients/index.rst index 80f3ee0f..6b651c22 100644 --- a/source/clients/index.rst +++ b/source/clients/index.rst @@ -15,7 +15,11 @@ Die Bereitstellung und Pflege der schulischen Rechner für die Nutzer in einer l Es wurde ursprünglich im Auftrag des Landesmedienzentrums Baden-Württemberg von der Firma KNOPPER.NET in Zusammenarbeit mit den damaligen paedML-Linux- und heutigen linuxmuster.net-Entwicklern realisiert. -Die linuxmuster.net-Entwickler haben LINBO nun in der Version > 4.3 veröffentlicht. Der Sourcecode ist unter GNU General Public License 3.0 auf GitHub veröffentlicht. https://github.com/linuxmuster/linuxmuster-linbo7 +Die linuxmuster.net-Entwickler haben LINBO nun in der Version 7.4 veröffentlicht. Der Sourcecode ist unter GNU General Public License 3.0 auf GitHub veröffentlicht. https://github.com/linuxmuster/linuxmuster-linbo7 + +.. todo:: Alle LINBO Screenshots prüfen und ggf. aktualisieren! + + Funktionsweise ============== @@ -59,7 +63,7 @@ Deren Beschreibung ist im Unterkapitel :ref:`using-linbo-label` zu finden. In dem gezeigten Ablauf eines synchronisierten Betriebssystem-Starts wurde ersichtlich, dass sich auf dem Server mindestens ein Client-Image befinden muss. Dabei ist folgendes wesentlich: -In der linuxmuster.net 7 ist es für Clients, denen alle pädagogischen Funktionen im Netz zur Verfügung stehen sollen, erforderlich, dass diese im Active Directory (AD) des Servers (samba 4) einen sog. ``Domänenbeitritt`` ausführen. Hierbei werden Schlüssel erzeugt und ausgetauscht. Diese stellen sicher, dass der Client als berechtigtes Gerät erkannt wird. +In der linuxmuster.net ist es für Clients, denen alle pädagogischen Funktionen im Netz zur Verfügung stehen sollen, erforderlich, dass diese im Active Directory (AD) des Servers (samba 4) einen sog. ``Domänenbeitritt`` ausführen. Hierbei werden Schlüssel erzeugt und ausgetauscht. Diese stellen sicher, dass der Client als berechtigtes Gerät erkannt wird. Ziel ist es, dass alle PCs mit einem vordefinierten ``Muster-Image`` für Linux oder Windows genutzt werden, sodass nach Möglichkeit nur ein Image oder wenige raumbezogene Images gepflegt werden. diff --git a/source/clients/linbo/index.rst2delete b/source/clients/linbo/index.rst2delete deleted file mode 100644 index e278a40d..00000000 --- a/source/clients/linbo/index.rst2delete +++ /dev/null @@ -1,383 +0,0 @@ -.. include:: /guided_inst.subst - -.. _add-computer-label: - -====== -LINBO4 -====== - -.. sectionauthor:: `@cweikl `_, - `@MachtDochNix `_ - - -LINBO steht für GNU/\ **Li**\ nux **N**\ etwork **Bo**\ ot. - -Es wurde ursprünglich im Auftrag des Landesmedienzentrums Baden-Württemberg von der Firma KNOPPER.NET in Zusammenarbeit mit den damaligen paedML-Linux- und heutigen linuxmuster.net-Entwicklern realisiert. - -Durch die letztgenannten ist es nun in der Version 4 erschienen. Der Sourcecode ist unter GNU General Public License 3.0 auf GitHub veröffentlicht. https://github.com/linuxmuster/linuxmuster-linbo7 - -Funktionsweise -============== - -Zum Verständnis erklären wir Dir einen - -Start eines Arbeitsplatzrechners --------------------------------- - -Über das Transport-Protokoll TFTP wird vom linuxmuster.net-Server und die PXE-Implementierung von Grub bootet es ein kleines Linux-System (linbofs) auf den Clients. Diese zeigen dann eine Benutzeroberfläche, mit der dann alle Imaging-Aufgaben auf dem Client gesteuert werden. - -Die steuerbaren Funktionen unterscheiden sich anhand der Berechtigungen der Nutzer und Nutzerinnen. - -Konsolen-Tools sind ebenfalls verfügbar, um Clients und Imaging aus der Ferne über den Server zu verwalten. - -Auswahl eines Betriebssystems ------------------------------ - -Die Funktionsweise wird am Beispiel eines Clients (rechts im Bild) beschrieben. -Auf dem Server (links im Bild) sind zwei Betriebssysteme für Clients dieses Typs komprimiert gespeichert. - -.. image:: media/linbo_functionality_detail.svg - :name: linbo-functionality - :alt: linbo-functionality - :height: 150px - :align: center - -* Der Benutzer wählt das erste Betriebssystem zum synchronisierten Start aus. -* Der Client überprüft, ob sein lokal gespeichertes Systemabbild identisch ist mit dem auf dem Server (1.). -* Ist dieses der Fall und entpackt der Client das erste Betriebssystem auf die eigentliche System-Partition und startet das System anschließend (3.). - Wäre das nicht der Fall gewesen, hätte dieser zuerst das Systemabbild vom Server heruntergeladen (2.), um dann mit (3.) fortzufahren. - -Der hier aufgezeigte Ablauf eines synchronisierten Startes ist einer von vielen und dient der Veranschaulichung. - - * Start wie in der vorherigen Sitzung - * Start mit erzwungener Formatierung der Betriebssystem-Partion - * Offline-Boot - * |ua| - -Deren Beschreibung ist im Unterkapitel "LINBO4 nutzen" zu finden. - -In dem gezeigten Ablauf eines synchroniesierten Betriebssystem-Starts wurde ersichtlich, das sich auf dem Server mindestens ein Client-Images befinden muss. Dieses musst Du nun anlegen, dabei ist folgendes von entscheidender Wichtigkeit: - -In der linuxmuster.net 7 ist es für Clients, denen alle pädagogischen Funktionen im Netz zur Verfügung stehen sollen, erforderlich, dass diese im Active Directory (AD) des Servers (samba 4) einen sog. ``Domänenbeitritt`` ausführen. Hierbei werden Schlüssel erzeugt und ausgetauscht. Diese stellen sicher, dass der Client als berechtigtes Gerät erkannt wird. - -Ziel ist es, dass alle PCs mit einem vordefinierten ``Muster-Image`` für Linux oder Windows genutzt werden, sodass nach Möglichkeit nur ein Image oder wenige raumbezogene Images gepflegt werden. - -Hierzu ist zunächst ein Rechner mit dem gewünschten Client-Betriebssystem und den gewünschten Programmen zu installieren und vorzukonfigurieren. Dieser ``Muster-Rechner`` muss dann mit dem jeweiligen Betriebssystem einen Domänenbeitritt ausführen, auch dieser wird im Image gespeichert. Erst danach kann dieses Image ebenfalls für alle anderen PCs genutzt werden. - -================================== -Muster-Clients und Rechneraufnahme -================================== - -Vorgehen -======== - -Prinzipiell kann jeder PC als Muster-PC für das jeweilige Betriebssystem genutzt werden. Besonders flexibel ist es aber, den Muster-PC vorab als virtuelle Maschine (VM) aufzubauen und für weitere Aktualisierungen zu nutzen. - -Wenn mehrere Betriebssysteme pro Rechner zum Einsatz kommen sollen, so wird jeweils ein separates Image genutzt. Für jedes Image muss ein eigener Domänenbeitritt ausgeführt werden. - -Es wird daher empfohlen, pro genutztem Betriebssystem einen eigenen Muster-Client (ggf. als VM) anzulegen und mit diesem den Domänenbeitritt durchzuführen. - -Die nötigen Schritte dafür sind hier beschrieben und lassen sich folgendermaßen zusammenfassen: - -1. Hardwareklasse für den PC/die VM konfigurieren -2. PC im Netz anschließen / VM anlegen und geeignete Netzwerkverbindung definieren -3. PC/VM als Rechner aufnehmen -4. PC/VM via PXE mit Linbo starten -5. Festplatte mit Linbo partitionieren und formatieren -6. PC/VM vom ISO-Image booten -7. Client OS installieren -8. Erstimage erstellen -9. Domänenbeitritt ausführen -10. Image erstellen - -Die Schritte 1-5 sind für Windows und Linux identisch, sie sind nachstehend beschrieben. Die Besonderheiten von Windows und Linux werden anschliessend in den Kapiteln ``Windows-Clients`` und ``Linux-Clients`` beschrieben. - -======================================= -Hardwareklasse (HWK) / Gruppe erstellen -======================================= - -Melde Dich als Benutzer ``global-admin`` an der Web-UI an. - -.. figure:: media/01-webui-login.png - :align: center - :alt: WebUI login - -Erstelle nun die Konfiguration für die neue Hardwareklasse. Dafür klickst Du links im Menü den Eintrag ``Geräteverwaltung --> Linbo4``. - -.. figure:: media/02-webui-menue-linbo.png - :align: center - :alt: WebUI menue linbo - -Nun klickst Du unten links auf ``+ERSTELLEN``. - -Es öffnet sich ein Kontextmenü. Du kannst entweder ein leere start.conf nutzen, oder ein bereits vordefiniertes Template für Dein gewünschtes Betriebssystem auswählen. - -.. figure:: media/03-webui-menue-linbo-create-start-template.png - :align: center - :alt: WebUI menue linbo create start template - -Es öffnet sich ein Fenster, in dem Du die Namen der neuen Hardwareklasse angibst. Diesen wirst Du später brauchen um Geräte dieser Hardwareklasse zuzuweisen. - -.. figure:: media/04-webui-menue-linbo-name-for-start-conf.png - :align: center - :alt: WebUI menue linbo hwc group name - -Danach gelangst Du zu den Einstellungen der Hardwareklasse. Dort gibt es die Reiterkarten ``Allgmein`` und ``Partitionen``. - -Unter ``Allgemein`` legst Du die IP des Servers fest, gibst das Startverhalten und ggf. Kernel-Optionen für den Boot bei besonderer Hardware an. - -.. figure:: media/05-webui-linbo-edit-new-group.png - :align: center - :alt: WebUI linbo edit new hwc group - -Unter ``Partitionen`` legst Du fest, welche Partitionen auf der Festplatte vorgesehen werden sollen. - -.. figure:: media/06-webui-linbo-edit-new-group-partition-scheme.png - :align: center - :alt: WebUI linbo edit new hwc group - partition scheme - -Löschst Du dort z.B. die Partitionen ``swap`` und ``data`` so sieht Deine Partitionierung wie folgt aus: - -.. figure:: media/07-webui-linbo-edit-new-group-partition-scheme-edited.png - :align: center - :alt: WebUI linbo edit new hwc group - partition scheme edited - -Um Einstellungen für das Betriebssystem vorzunehmen, klickst Du auf das Stift-Icon (hier für Ubuntu) und es öffnet sich ein weiteres Fenster, um Einstellungen für das Betriebssystem vorzunehmen. - -.. figure:: media/08-webui-linbo-edit-new-group-os-infos-edited.png - :align: center - :alt: WebUI linbo edit new hwc group - os edited - -Unter der Reiterkarte ``OS`` legst Du für das Betriebssystem (OS) die gewünschten Icons, die Start-Optionen und u.a. auch den Namen für das Basisimage fest. Zu Beginn bleibt hier der Eintrag ``None`` noch stehen und auch bei ``Start Optionen`` muss ``Autostart`` deaktiviert bleiben, da Du erst das Image für den Muster-Client erstellen musst. - -Auf dem linuxmuster.net Server werden die start.conf-Dateien im Verzeichnis ``/srv/linbo`` abgelegt. Jede Hardwareklasse hat eine eigene start.conf-Datei. Für die neu angelegte Hardwareklasse des Muster-Clients wurde dort nun eine Datei ``start.conf.`` erstellt. - -Diese Datei muss normalerweise nicht händisch editiert werden, da sich alle nötigen Einstellungen in der WebUI vornehmen lassen. Das folgende Beispiel dient nur dazu, zu zeigen, was "unter der Decke" passiert. - -Folgende Konfiguration zeigt ein mögliches Beispiel für die Hardwareklasse 20210426_focalfossa_base (hier als Linux-Client). Diese würde sich in der Datei ``/srv/linbo/start.conf.20210426_focalfossa_base`` befinden. Hierbei wird von einem Legacy-BIOS und Linux als Betriebssystem ausgegangen: - -.. code:: - - [LINBO] - Server = 10.0.0.1 - Group = 20210426_focalfossa_base #Hardwareklasse - Cache = /dev/sda2 - RootTimeout = 600 - AutoPartition = no - AutoFormat = no - AutoInitCache = no - DownloadType = torrent - GuiDisabled = no # disable gui - UseMinimalLayout = no # gui layout style - Locale = de-de # gui locale - BackgroundColor = 394f5e # hex code for gui background color - 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 - KernelOptions = quiet splash - - [Partition] - Dev = /dev/sda1 - Label = ubuntu - Size = 30G - Id = 83 - FSType = ext4 - Bootable = yes - - [Partition] - Dev = /dev/sda2 - Label = cache - Size = # verbleibender Plattenplatz wird als Cache genutzt - Id = 83 - FSType = ext4 - Bootable = yes - - [OS] - Name = Ubuntu 20.04 LTS - Version = 20 - Description = Ubuntu 20.04 - IconName = ubuntu.png - Image = - BaseImage = 20210426_focalfossa_base.cloop - Boot = /dev/sda1 - Root = /dev/sda1 - Kernel = /boot/vmlinuz - Initrd = /boot/initrd.img - Append = ro splash - StartEnabled = yes - SyncEnabled = yes - NewEnabled = yes - Autostart = no - AutostartTimeout = 4 - DefaultAction = sync - RestoreOpsiState = no - ForceOpsiSetup = - Hidden = yes - -PC anschließen / VM anlegen -=========================== - -Der PC, der als Hardware zum Aufbau des Muster-Clients genutzt werden soll, ist via Kabel mit dem Netzwerk zu verbinden. - -Alternativ kann für den Aufbau des Muster-Clients eine VM in der Virtualisierungsumgebung angelegt werden. - -Nachstehende Angaben stellen ein Beispiel für die Rahmendaten einer solchen VM dar: - - * 4 GB vRAM - * mind. 1 vCPU mit 2 Kernen - * VGA mit 16GB Speicher - * 1x vNIC (ggf. im "richtigen" VLAN) - * PXE-Boot einstellen - * Boot Firmware: BIOS oder UEFI (je nach später genutzten PCs) - Achtung: start.conf von linbo ggf. anpassen -> siehe Hinweise bei den Client-Systemen - * 50GB HDD (20GB OS + 20GB Cache + ggf. SWAP oder andere Partitionen) - -==================================== -Rechneraufnahme mit der Schulkonsole -==================================== - -Nachdem Du nun die neue Hardwareklasse erstellt hast und der Client / die VM noch ausgeschaltet bereit steht, musst Du dessen MAC-Adresse in der Web-UI als Gerät anlegen. Dort weist Du dem Gerät dann die Hardwareklasse zu und wählst im Feld PXE den Eintrag ``Linbo PXE`` aus. - -Um einen Rechner mit der Schulkonsole anzulegen, gehst Du wie folgt vor: - -Wähle nach der Anmeldung links im Menü unter ``Geräteverwaltung --> Geräte``. - -.. figure:: media/09-webui-menue-devices.png - :align: center - :alt: WebUI menue devices - -Nun erscheint die Gerätekonfiguration. - -Als Spaltenköpfe siehst Du u.a. den Raum, den Hostnamen, ..., PXE. - -.. figure:: media/10-webui-devices-header.png - :align: center - :alt: WebUI devices column header - -Die konfigurierten Geräte werden hier angezeigt. Schon eingetragen sind die bereits konfigurierten Server mit der Rolle ``Server``. - -.. figure:: media/11-webui-devices-rows.png - :align: center - :alt: WebUI devices indicated - examples - -Um neue Geräte hinzuzufügen, klicke unten links auf die Schaltfläche ``Gerät hinzufügen``. - -.. figure:: media/12-webui-add-new-device.png - :align: center - :alt: WebUI menue item add devices - -Es wird eine neue Leerzeile hinzugefügt. - -.. figure:: media/13-webui-new-device.png - :align: center - :alt: WebUI add devices - -In diese neue Zeile gibst Du unter Raum den Namen des Raumes (hier ``server``) ein. Entsprechend verfährst Du mit den Spalten Hostname, MAC, IP und Sophomorix-Rolle. - -.. hint:: Verwende nicht eine IP-Adresse aus dem Bereich der Rechneraufnahme. - -Im Feld ``Gruppe`` trägst Du den Namen Deiner Hardwareklasse ein und im Feld ``PXE`` wählst Du ``Linbo PXE`` aus. - -Die Schaltfläche ``SPEICHERN`` überprüft die Eingabe. Mit ``SPEICHERN & IMPORTIEREN`` werden die neuen Geräte importiert. - -.. figure:: media/14-webui-save-and-add-devices.png - :align: center - :alt: WebUI add devices - -Danach erscheinen einige Log-Meldungen und - wenn der Import erfolgreich war - ``Import abgeschlossen``. - -.. figure:: media/15-webui-add-devices-log.png - :align: center - :alt: WebUI add devices - -.. attention:: Hinweise zur VM - - Die nachstehenden Hinweise sind nur in Ausnahmefällen bei Nutzung einer VM relevant. Durch diese Änderungen werden zudem Anpassungen in der Boot-Loader Konfiguration von Linbo für die Hardwareklasse nicht mehr bei einem ``linuxmuster-import-devices`` angewendet. Folge diesen Schritten NUR wenn Du XCP-ng als Virtualisierungsumgebung verwendest und den Muster-Client in einer VM anlegst. - - Sollte der Muster-Client als VM aufgebaut werden, so ist je nach eingesetzter Virtualisierungssoftware darauf zu achten, dass die VGA-Einstellungen eine geringe Auflösung und eine geringe Farbteife aufweisen. - - **VGA anpassen** - -.. attention:: - - Nachstehende Hinweise gelten nur für eine VM unter XCP-ng. - - Unter XCP-ng 8.2 sind nachstehende Anpassungen erforderlich, da sonst während des Linbo Boot-Vorgangs ein Hinweis erscheint, dass die Farbtiefe nicht dargestellt werden kann. Rufe auf dem Server die Datei Grub-Datei Deiner Hardwareklasse z.B. ``/srv/linbo/boot/grub/20210426_focalfossa_base.cfg`` auf. - - Ersetze dort den Eintrag - - .. code:: - - # if you don't want this file being overwritten by import_workstations remove the following line: - # ### managed by linuxmuster.net ### - - set gfxmode=auto - set gfxpayload=keep - - durch die Angabe für die Bildschirmauflösung und Farbtiefe: - - .. code:: - - # if you don't want this file being overwritten by import_workstations remove the following line: - - set gfxmode=800x600x16 - set gfxpayload=keep - - Die Kommentarzeile ``# ### managed by linuxmuster.net ###`` muss entfernt werden, damit beim nächsten ``linuxmuster-import-devices`` diese CFG-Datei nicht überschrieben wird. - - **Gerät importieren** - - Hast Du alle Einstellungen für die Geräte bzw. erneute Änderungen hier vorgenommen, klickst Du in der WebUI unter ``Geräteverwaltung --> Geräte`` erneut ``Speichern & Importieren``, damit diese Einstellungen angewendet werden. - - Alternativ kann auf dem Server in der Konsole als Benutzer ``root`` der Befehl ``linuxmuster-import-devices`` ausgeführt werden. - -PC / VM via PXE starten -======================= - -Mit o.g. Einstellungen startest Du nun den PC / die VM. Während des Boot-Vorgangs erhält der PC / die VM via PXE eine IP-Adresse und Linbo wird geladen. - -Wurde in der start.conf kein ``Autostart`` gewählt, startet Linbo mit folgendem Start-Bildschirm: - -.. figure:: media/17-linbo-webui-start-screen.png - :align: center - :alt: Linbo WebUI start screen - -Festplatte mit Linbo vorbereiten -================================ - -Klicke nun rechts auf das Icon für Einstellungen / Tools. Es erscheint ein Dialog und Du wirst aufgefordert das Kennwort für den Linbo-Benutzer anzugeben. - -.. figure:: media/18-linbo-webui-root-login.png - :align: center - :alt: Linbo WebUI root login - -Gib das Kennwort ein. Die Eingabe wird hierbei nicht angezeigt. Klicke dann auf ``anmelden``. - -Danach erscheint der Bildschirm für die Linbo - Einstellungen: - -.. figure:: media/19-linbo-webui-settings.png - :align: center - :alt: Linbo WebUI settings - -Klicke nun auf den Menüeintrag ``Festplatte partitionieren``. Es öffnet sich ein neues Fenster mit der Rückfrage, ob wirklich partitioniert werden soll. - -.. figure:: media/20-linbo-webui-partitioning.png - :align: center - :alt: Linbo WebUI paritioning - -Bestätige die Paritionierung und Formatierung mit: ``ja`` - -Nach erfolgreicher Formatierung siehst Du diese Bestätigung: - -.. figure:: media/21-linbo-webui-partitioned.png - :align: center - :alt: Linbo WebUI paritioned - -Klicke auf das Zeichen ``<`` und fahre danach den PC / die VM über das Icon ``Herunterfahren`` (unten rechts) herunter. - -.. figure:: media/22-linbo-webui-shutdown.png - :align: center - :alt: Linbo WebUI shutdown. - -Nun kannst Du mit der Installation des gewünschtem Betriebssystems (Linux oder Windows) fortfahren. Wähle für die entsprechenden Anleitungen links im Menü die entsprechenden Einträge aus. - diff --git a/source/clients/linbo/media/01-webui-login.png b/source/clients/linbo/media/01-webui-login.png deleted file mode 100644 index ff3041e3fe15d6fef0ec5df57bc125c1fce33621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11126 zcmdUVbyQnl*JdhETuN~$r7ck0io2I$#hnyNa48a8TBNuYcS@1s?p7>laDpVbyAwQL zelvf5>wD*&Z)X0OwN8?|&N{hk-*fhUo@eiU!#=4h;Nwu?0001d#SgL?0KlVE^hXHm zF?t3HA9P3mJaLg$)WX8Tg0HA80|2i8in3B#9vKG=N&c4&h*?&wWP?}!Up^$iMBt)1OVOx%qan50DVlrdn0Q^`G zK=R3dXG#{j@U8G^h01(x^zHZ24mqrDVRv${SIpTt`+!y2`fHlrx1Oxp95i>UZ)P33i>JHIeRQZ$+`4i{K~ zWF{Bq@Qek+uU_ZxgOqA;}HON!bc z?awV=D%WEasd%+Je^48ukBN%TYMM$=v6tMv;w#XxUR5qH7Bb$n?tJwoX#3P*_hn`U ziV?6|)R=dkNT}m;ywMDSKfM{EqRsY)Pq7$FDc|qSZ0Kr-l`r$}k(tOn;wpH@9HFKf z_0Ra&7XOnUgs2>sx#4&Jon^=EG$4Wse-*@*C9*I-k;~2hoz2##G<184QAd#~_ko4g z^n`4tO96QA%C%}V-(4Dxn@PJL2fD~x1IM7o_;d?=ptdvZ{&y_wOJYp=Y)$YS&$aZ*CDYCzq3WhaK-d zJ8chpMvWEF@|ZB3QVz|6|Dd1Ipq(rkgxBp;{n^c>A(y_&;l8(Rriin(7v(6BPSh2e z_tOtf(Q?_WU^&eV+;RRLrqe6zMuySWTbKGt&fdqV_+~S?`P|78ie$49WQ@xnnadnon?q#re zUez?$k*RQ9ox9g?Bsw^dJP@J(!^z!g_r>Kpxe`3R!sWcRP$bsV(QFS`rQ?4P${*JQ%Dp~>+WyKMt$2R0_6f(Y) z+ZZ=({aAqF%=TAG^jC_nhWlJ8)(~&i4!~=zpI!e{hID0~y&Sq$VT@e4Ezv3(N+=Fj zVjG6`tolbVTkwbk)~dQUtts%J%*cVenZ89+8s@~_Dhp-}YN1!EfDHc_^`&43sd79A}y zF2#JEp>>@5B{O2n;;irqp6b<~8ayvIl8UrmN4q%HI>I5m{Yx#3#tb%f1$oN)PGO;I zZ0s)`6Sl4mvE50I@;AuIqNorv3%ymXdPW+9kb`GTF_aTxf**jVgJnTVGhe=}#!vE8 zhp*#QeOR}0gqLY9=ZOCrbuH>8XfaZEUY>2j)iparc;~!h|Dq2W=q#6k^N(I0@^h7@ zpTx7UYx-4L*gCYA`Y7r+v_HgPWczUv>)!BVTzQRTi&bq#apx=cCC}B;nYSK8i`I1R zmeNU+gQC0-bh?ZK%_6o`fmb*FEF6@)w}J8GM<3fKE*qvK%w69f!0^RPw7dina zo5D}8II?)}ufMlp7*f!ZNSsR?S-qbR$7Rpk)I}{K2BC8~T%%{1KkoV(y+P1Z_ri8A z<;sU}S0Q!KGjHs29^9qjx=e>gt>5q9v^kpQ6v^b*DhcOHCI@6LXSjhOs?6ngPnHi? zU%0QvJk}paZ&Aa6*v~9|&%f;5c)OGLdvcC@{!gMa+gd$mmik6aG;~!Nq(6MCn8|G@ zjPfndUM{Fu{77?mYP3eqe^a57^^ya!Awrm$cKY`?_2GCYz?zdlfP+mp;jVhEg7(=P z^Z^EC3(@0sUwJm{jyL%(SxPfTQE5F~+^)B%unOFn?y5udlJ32S1WbQ*2H4g(p9$PK zeMT-7MpCO`RW;PTFPny_mZGnpY%5-M@me+^(jRGM@3&)^BH^065gN5e3uO=&N zktx>`p+`yWnkIIK6WWGu_hMcju2zL61so*4E?+g3X834Q4wwdpDl>}oo#9Q1g%^|c#-p`@g}a#O99%7YEu9{Q{M1O|E_{`gw1W0p60(sj^*m3yUqvrc}3iN zo9%7=7wlWZiMr12PF#|+eRs;#mV7soY5f;Mm3XwTGrg@R$=G7rDN()8DyS<|8ohzX z!EGomO|GG*HLt{lrae|R(w#IneQl06$bDW96z!mgKaHS;se?{d6Lx_FOMt7evCYk! zPBz2ay{wHTM~vt!zeMyoL@l&kCb_c?8d)OIC9ZVXQkZ)Y zkpB@Zq@mOm?DkG4fkVGZy>i&Hq`?SnU}cTaCEUG0o;b8OH)b*G^15pVn?BpGV`rqT z7Sj_4e0FZ3Z}NSAc5btkBOJVA?VPCj=ftpEIGrZ3tMWCh$S|<3)bHiSdS*oX+*4{a z-qVyJMFiim)ozL?c)c#47=?`2B>OG;RT88>+{&)gJ&T@R`L114UHh4$VBQQ(HFT{f zbkhBuYgT9nQ;LnBwnozozmu+By&=g_ySC;Ml=T?=is7;In&h zqzu==a_F&P+nej(Z3XLz<7E`hPJ4K_a(FL-oOtT4F@Nnzi06IhTFS=$gYb_l#NuRz z`YHUclTk%EZJS{eDcQiNNwewLbUt!!mwhdSkZ519Bwz|rnwVY_SO%@MRC%C*^{kJ} zh+jEp8kB{FM)GfyU4gdf>kKAGMsI^n?`<`vTT@9mOxnQ5S3;>q;~zp|r*pZ6eA+}e zM^d;P^!!DrS*5W?&m`>T+OBNBs}pda45%zN`*XX|zP)>gv1uKm7Tf!ZZvyXp zvFOPw7GH{a|5|=@g^tiZ35gsTN$MY_uEGn1>F)lm8q4W4-i7j(61&VyKtUIDP&Z3i z;?v8P!OS<;K^9wRwTgLxUDg;5(g$)90y$$=MlYWaSC6TF$1I#5%53*gIhKvDNbbwt z6UROF^=Yq`Wc0s4=}?Tu#Ac=5kM2b9-ARGLZYiQ({oDT_OWj5zreJP$Y?}MtEXS_b zKD5z1kZm$s487nhehC!?nT<8Qc0xi{SToG%_E{}Rzd`joll$E#C%SaglqOyXsvTwJ zqfsoiGUeLs@>?bHEYs?6R*vL0lYi^^c(Gm|k@^^QsnYC;%edy^b>3a1o`u_C5w0#_ zW+oh!eO#2K&HGVW( zOdW+Qg=MPmwpfbYv41yo1@egQXEZo4+q^WVQawo?56c2|^m{>oa6V)%}%kNv$KPA{Fe0Kgds`+Jloc7MJwV$cF zvyCvlxuo8ous%wj_|O(tEI~ToGkGHo7Z9cWJxIfaw{s+5O!cwm^EBa0yN{9fB2Gti zPz4|_ox9=0kpPT=ja9(^CSU_nc!{JFyFGx=%9=6Z=$rAsp12G4sG$!LLNQ4RY9rl&k8W zXIbQhk4r*9L*?B8zN|s9bsdM}JFWpGR7nHLL+@UpIVm!N4~lJub}2V$Ab+MRa$!_N z=7-8cJ@UgBLJYN!zMosirebf(Y2lQd$||Gpr}t)_%D#>!%GJ`|t(`t9XcC^AVG%RV zq`{&OmV?&&AJ>|vGVgBQQlvWb$uB!&w6#9gx4HRUU>EtQZhR%ZQ&FsK;>XLspuv_3 zWu7_~Rwh(g@6x&NNz_@Cn?{`^qi)et)rEK3#c1ssg&J7zE!efrBZEb?XX?~tfRuqI zFdrFnt3A%Z!oeQ(K!WV%O4PQ#CWhH+e2AL2drwZ~=%RPoypogc(A42sI2f)oW#KCQ zy|jOB{5W^ULhG$Ak+kzE&f?YfUYf*5e~jQFO}Gj`AGYd>OCajZ`0;Dv@3u0vJsS=! zulc*vr5M3zxXYCmDTqK$_N4^%{Wx563z{+Zn5jz>=K#Ui@;KEHXZor|8tnI%TM@dBj>Z>G z_RspnGZDrao6usL8)m7t7O+huWa?>kY3fO}Y#=vfIftoX`+ehT3SJwxOgDKePuw3I zY9D1x48~}x_hz4F1@=&SE#Mdp(CKh@9Itu}ncqp@u3B2P{q)a|hC21TqqZVKv+Y74 zBbSDJvRDvQF}+$7Y+-Y)r;kpK8L!uy5DQCC z%mXH)nge(Pkq+4e=*$wDa(vgfWcMfc*}*5-_2@ui5(R8!32nmy)iW^(E;hljiXVv{ zUX3^D6ptp2>`K|g#yqpg2=sNZhjjeu4P{nv*R%=?DS+L1%{Sa@L{k!lLAf4#WIASaou`Xq9I+Wp8I4Eo}9#eeT7u@ z@YH>f7x+NX9ddOuvt-1UzZn!8uInpCoOStyXC%a5HA+}QMK>5qBe zS!p71Od=Jr#^07QvBcLL);%R-Yz|Tyq5{1&I2u#6bT2bJSxFCAh?sF;N)yJ=XC>2c zQSdhGyx9YK@=mC|OUg7HGyh^sg+89=xVS47M)sEbCD_LG#{(awLphK*^gq6sfrXM) z61Tuq#ttf54K`#2m`gaS6|=7>et5bJHtKUmy)a5o)rKOX_@?x&OkmwioTB~x{3Z{1 z+Z4+ss5cNRudO6JeVs6O))ivHbT^t}k86U_Gvck^Ol@s>Ce&*xgp(WKAOWhSQQbLz zbvb+XZw+C;-lCcqw}+O6l`j$DivqAhOgo! zcx~zp%AB0)9XEFO4_CMMtsHIbt?fakXkuZ}#&$nKN6E5|H``FN5UyIB`4@X@pGUB= zpcZGju+K-cN^hR|-P|*-H8HLI)Myry`11K^Ow!-cS9~x+$+cBgT|-C1K<8CFIoSYi zL^wNpoy5n_%nMIZh4%ECwOaBJ+>zct8bv4}U-e^V-2}r|XT`orzUNEX^>l&{kOU{7?>kXS zbuqM3wt>PHDD|7rO4kdi9Zw!UZFHT-808+!7R`+x_44^5#q?=#)oz4KLdeZKLZq%j z$0&JW^@tdQ7zX1wIYv9nR}x0)(0&b`&jN3__w6ibW!|>U5S#o~nJ*RQ*16VIn+~g* zUk8>5G1@!-4&jH_CSzKty*QM86BLArJ6xEnTly|>AOhF?RD?NEm4VaOQirrgUEn7= zWjpPNh@uKC3>iXDl3>wiSIjwY2mNi8uLC*WdJqKM(2b=8u<^ckTF?2m>u{lGm==^h zc!^oE2D7SpU6*P(#l4hpfIU%gNDNMKe7K_=aS?n2ws>2g;oUg*jkdrcS`o|C*ef-r zjRVIgvF_BoN2gSVNpah9^9?6a7c1d~dRAtU;z9+qJrDgY%ByniE|JS(H_N0!#~DTO zVjCDCWKK13Z0Q}vE2g`f@~iHFp{A}LQS*S?Ns^{kE9a=Tw^ULh|2tFEa;J+ErsJd% zoTXgeNSSSCQ_LX2NqEoh;O{sVm>&K$()z>ORli%mxtsx)k~Zcag&`#&5tI4U)58+^ z-mV6|D=LA;wkDbd!eVni!(bRYVz`WKi4Ia6t{9-BTC*8kx_}FQJwx5C0Pm4 z`Vk2l%y*9bENo;AN%Jh&ZO8nD;zHp~Zr38&J`MMOPqO{s$g}7`u@={Tn)Rc#o$~DG zGDTV&WG~QJGef>;qs!6v2M_-pk(#G5iuy^JH(ix{hVB(}&9_n(ZhBTsd#Hsr_~_7Y z%b95WvE>_Gb(esJU6{N~^DvYF5}!kXjG3R)qh89=_$th?Pds$}9 zI=p|IqI2FTlh#6wh7X;Cp_8+2!67_GCH18%qso|XGsRO4?dVD$TVq(-+L@!x|38%?|9~^5^ITfz1?a_78R|xwn(ddFA(`9BgXCY zdVhNd{9sCN(9~P$yymvXR#WP;bXspOisE(KM(0N*ZBmcu^D?uM-W95T*6V+5lpfI3 zeGdGriNO}!+;G=wn7P<=IU|NDU1)|cztW1;W80-!N8Nqn3Z&%8+kEcA8+LO2ED$*| zG9OOS=2Xw06clT7bZ8Ryz`zH7EM?OcPiqs%h%uLmww*9;iSln*{~0yc)nN@(OHu1A)q25=O|~o5Qx9n zbUwVF?(~D?QerZ{Ek5w?IWy?v^Z>4|r*S^h-okv@7m+0vDj(Jr2Q;Afv{+Z0Vf0nk z!;;!f%A^CIbV~JH(oO?_-IIHp<&`=kf2-{f2@%6-K5 zD-2lJe4JEN_fvdN?%<)Vf|4bfj&yk)>DbQ{G5ko*EZ)X(}RIX}uRG z33Omrx^HhUJ>PIZJkc&Ana(o*W&fdDAw*5#hep-q>-7lD!<&VLu4>%~&yfVDNNzB8!rz%7&<%25<7CT- zQCHTuV}YsGrB^LYxm?ii&>59w{Iuh7z(2PW9Rn@>G8uOwb|IuvLo4sTbD-Qs{JJ z>i$x!+27G>);F{9k+40m7pJewy0A6t(3Hc@Ku*PLH811Z4$PeqMf39v#H=cO_U0t)~CN( zz7J!V2t!%Ggo8l8r=H5Jwe?c3=8*_x(Fzfh{I1RAK0#~mae}13{^W9VXo?t)8ZFu=O+w=(=$odlLW{4LXlH)>tZ@nAnY&We|Zs4YW4bg06C8cBmv(r z|HoA|9>D4w+YI_05k}N$C#;ql)E&JfgVjZ``g)?@&gCsXP;;m+j7C@#*;PqE zAh;T2AeAKbWsIzc2H|%eZKPYMPy>4;!xV*6uaF@HT@ht`-&#GT=^Z`IhtAW4uQR`R ztL7*1nWukq>*ukuVo)Rwso2n-9tS>|Z?z3kdz<)PIbzxRTfF>OrIvLZ)7l232!|f8 z2%)1Ixrh?BIx|iU9b)vI7S2(}$!TLex$rgK>2m=C!|#mfyM6FcNA$vjyHQ3GHkExK zcar#hAHjJ%PASY{L517*FU~QiIpupA6$|-#$%HD7Un{gF;-AdzgfDTy#8>ZaYUnIr zZb4L{iReB5e3cs@{T*Ry`~)tfeJk}Pa~`7^CqaXp>~kNU4Z1&x|AUj2oivm-?01bZ zzSj|@h^4}JRbGnGG8tQ@Pq3LYC{ck6(0iGfqWas!zrB7ZC7BV^t`}h(5o-TC?l~p#LVD zoEV#;yQNsU*L2X@6I5z3&;L&d{vl~^{BwAAJ(H|zq7_+A{0C1T6FgZ;TeiJ{@#g<- zT>e4Vl(HtGWQKy+0)B*n3p7BfnC`#Y$ybBz1k9fARRd z&T$ZI$m;fL;ITbjcmpZbo~_JsFw%4+HxNebk?%?+CKG|hg*o_I{wN+AI;^cuwtHu1 zeUEM&=cJJOr;&{IsQ=TJ^1s)MmQ`uu&exbrNPqH;DIhgf|DLte@4wN~&dOt(GyWg0*Mc^kcT!9`CeB>aX%=)JQzKOhfJW7CvqZrwuOlmB#i@$ohIa);M*Q7N;GC2@>&QMeLx zJ8+f31A`Ra{wd-_o=vGy=X!a#tyR<6FW~6`0JyLJc^9C(khQ10v)gi*YSXdv7-PoW zev!^sqT!D$gWCcB3RJgCtdXVOA-9$PX!F6|KPzmMg+YVa&}=b=NLniy=Hoh7#+06s zq8Y3G3ZE8T&%Sh3j?VoAsn6zew@_n}Pp`HeXSp6)8rgsAWt5^A3Dso5QKG#W_V70H z-miT0{u@~;D6QqTeJNvh<3Mc_T*>4~%!=aNRi`XU0QoF7W&5{U3HS~WF3^4?x%5Td z6MBoar%WXg<+6TAyym<+6 z>v!|{Xs7m&(@VEFjkD2DrslYt;d@eZq)ayZg8MJv7!gwtrDR)OPrJXpjccu_`BVzQ zKW~&^q&Yy89`g`bbo&gy-|lzkB?X@ z89uFcG$Im{BLVc0O)Vk5QVv<;KlF}F?w_zxN(;{X1+-)g?^9(;0KVDO_T2NBaA@iY z&1yTn=x1H;?SYMKo)AR!FOD0;an5Z0&^x~p;?|(1cG6d*RJ;0_zwm>e$|aE!oP-K1i9MBe*7r$X?yFDnF`D zYWTPsVN_REL0h7TsPS?isYFV6!Qnp#L~HL#XaX&vf_OJy&vH&tHqYy+lP&YeHjC|o zZ%&j7Ca3MWo&nxRCwW8;cw%52&&0?gILECw++(s8r$kLUot3Stq<>HEmI}Mtru*Lf z&9~!QQPOz*&_s{FvstzT*GPWB>e-bn9*F?IfAg-ig!VV9dP11JQ3ji!i4*6pS3z`< zQM#!PPLic@;NvoqQF-wRwA(d}AhJb|G_g;%h2ifgya!~#HLw>&z+(%~8t_1cX^GAjfj`crN z<~)P(Qg3a5&wj)%tH;mZH(IY4jSMy|)U;()sV3NBahK>BR)mXypLd>a+V{2c+-;Sy zE{fQg+HXy|>v`M+YM{MQsqB5qfbiH^xI6So43vPFzh8jmDl*T=ffA+g#MTGLx?JUMk}g)#-uXUTB_$;= z8ZyX}w^6TJ>$QH_Bt3g9IW)!-!`)k6)?+Q;uyuAwKPgT_x68;_s%=ZC-IaLD6Q|JO zZmEn_zk#)4;Hg*G+bgCu=SF#Qd1q3VhxcW%hp>m6Q4+WFSab!1+UK^4h~7W&H+ zB>%4DAIqEJx<=CePllB~ZR*$sVqgAell~WeV$)T6bi3p~2XCz^wlr*O_S@R^Gy6^Y zb7csH;2Wo<)BHmw{`S+8B;&qwhXwx+f7mAx?2ot}>0?ft?Rz1Qe9nfU%MVWuh%CmW z`F2Dpk7dpFpAkBE?`6k~rdLo*k2;|qjA-dIQ0ogvvouOzZ`kO3*SIQq&3z^*G4g#R zyirY{HX^Eee`;WQ0M6l#gkW*_d=;>y7J#pIFZo?xfGE{uP3{Z)P6xj^l&?;d1{vG7 zqxe~Xx}Jd+CM!qK^!L?)@xk?tDWqbN4FB-OdFmzP+3!H#ym>@k4Xf^*&pYEUxs=f3 z*HSgzew12)V0`KWmoKQ^$j~?3j{EvV*Yg)djG-ClKA1vK@zzc_}3Bu^&QxWOb45LMLuH{i^q-X;NB#_@0g3e9q99Hiaeaks7Tz zrB>7hCB-3?=cySbXN0ilJfBYkaX`kI49e|KSCzC)UX+H?Ka4!Wzo(crqq8HQH&`DT?8v;s*%q667*sQK zG%vzd->@V-LGP1ZNU-|{vD&k*2B|uk-kZl8(sUBQ@?wj>lbC%epBP5Gdp`SfR;W2f zG6oU-038xu8g|f!F$HaTngD<3Cb4+Ng?it`qS(%B^!d#m2PhQKbKMa zH};}xSo9gejBn(jx`y%{qNIuEEv0Kb3CfIV0GL8XLRH6I6eF(wm>H z4zj|gXDbBu4&jDt381d6<{$3D2SN}5&a-qOEFYTjck)}mUN54Ax2D6$RpSzh zNgL1i4iPp-dDetPB+zH%+kQ1&uOZdn3C}#$OsA3ex|P ztdON-CEzykNsU=Suc!w2j8HL9R3-mi%VxxR&=X zacz`vrLQ78{PjFwriW=jM;g@HdNCzuZB3sgIg8n#H+34|(D*R`^7ZIB;9K9nC&m9+ r70B530~?SN_YdO#KddQqqMn?(PCQUABG=I`(gGCaRAtMhKL`8=1@)?S diff --git a/source/clients/linbo/media/02-webui-menue-linbo.png b/source/clients/linbo/media/02-webui-menue-linbo.png deleted file mode 100644 index 61f1d85f64cf54def0c4b9b439476d7277a3e60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7771 zcmbVxRaBfov+V~H9D++=u;9VnEd&Sl>VD4fx$5<oS|}G zIPXO{Ia7K_a;s=>!sdH_&I8hU#0Q_*F);KjcW*;-{2~bP;Lx=SVqZtgQ&CF`F_*LS z1?ZSD91i!Ba7B7?5cczQliZZxn3CGenwIB91M+mUv!Q)&a{3Q&oxWG!d{Wl0-Sj?) zWhcJTb7u@cMx*&ffpQd!#3i`<0MA!q0QqT?h?VW6x~ z6A#%P)c)W_`!Xl%5~cq2w!t(9H}jbzd)+tumY9c;DN1FnFMsY>(DX5>$`5Bj$HGTs zD?H7g@(dy?OL5yBlWAYF)G&GmA61=A;YAz8e(AUCW63mt4;LRj)cm+}&LBsSAUuBb zzO=tgXGbynQ4cTP?fPLmC-*4E`EVufn^vSz=#=3fnm1R8rto~VW>ncydUlx5&IDLvs`Tr(}r_!Pp0qm>oUw zJG1bYQnk$BPzeoJy4^V%xgxr{(Ik~A%f4Mm`}@)sHdqHJS76}sidpmIvxOigDTn@t zzMa}SB#aLTewARZ{0d=WU~68_bZDs>xlXQQ5cj68;cc4Wi=Z~e1MLWqOBPpdXhThi zHmAxU=p{#!I0~m7{Lhv!TfD$^DzS-Vc0pmJO9#o-G(yiJxl_ky3YUB+*oheS-Gko08`U>5Vxknf!|yzB%xlb8$`e#OV%$l`M;WhgRDQQ- zDu158JC9Ystp?p$GBPmG3``aOkZXeVPtcnpr?WmKR# zNe)aBUGn(>3U_*hcQ1wwT+%$o*CP`BIvPnc^a%S7Rd?^M81P1(y1)gC8$qKm^ z?H#oBmp^VRidp5A!d|z&WN7Y#w|m@foL~&$_Ld2~YmA(zsFxe+eGEi@_6YpbEn~!9 zN?%0ClA@qSl#TauyW&?%!SWh9_JV_M7w9;J)o}f1ZR~sL3!x+AI}qb(`EC*_{F!=eui=cmNHE`(u4BQhYv^CWfzp z;NUSl;}^GQ^wEM2Mi%vv7s8JCL2mld?pwTulh7lf`-ec3hv54K(iL`7IpUW}Yky`# zS8gT+C6LaKUDa5b*oV=yTcV!Xn9JHY{uGi`xAg+0)eZml4gb@d_m}|c@OpOnC&k$v z=KLHnA5m#+_wKubsR@a-a|s7Z3^DhPZ?8d6u?P;kv6dLs5(J>#g`L=4(LytMKzPca zL#vXkfs4CI2E1+4>-E-mvHM#Mhy3c)ClJ7D^B*;m@FhMS>Mt~!?PR4!DX!VS5rOrT zrPPh$v|2s+R5?oDmstZpy}#lH7_drG5b5RbUG>bJ|JhFHokAjG|JkB4KJ4X)Pt()BQC-JV!31`$>Z zFxfj0BKTd{J>`gCIW8Ca<}LMM6)jis<(cEpAHQsiyPFK0 zXoPqiqZtS)zDGZ=>$2bd3Ih2wk<77Etv9453gC7{v5cR@Icjav;8r0-;%z=xfK`*fsk$3nIc&bh}g|cn3RXjzG_d! z${I8Qc1ZCa#YGGv$nAU_6rg^mo?A+M@sno9mvd@W*|k}y@o#1nbYS2zZpkC#4Pbox zyk0hF_vk_%!b0Zlvk{uUHkAGQNX(`%B$^G`ST;CA!1vHvUt^oLyWe)A_*$)H3gKUp zc3A|7VhQ-YyFtge=We5VKYcaHjkFTuWo`EX0I1&`9GE|4k>KBE@(J;oKW3(m-Rg)= zO!dPu47Nz$?;!XMlteR#hn^ht&g2<1PsWRv0}>i*Po`Ijz`qX}?oupv3EEc_VI(l# z9?J2Y_X-0jPK^)HkZF&cOp+%XU*N%a{Fm z4*JDE!wW6glg9I8CURdeMgS**%882PzX`+79)IIEp`b2QJd~ffv~S-utKFCEZd~z-y96!Jsw&YuAQrm6j#y(K@G8 zBXVHW>#x{aCIrA$>L%YieO+QuEhuOox7l}0a*iQWX%n8z!`0d6H~!5D9?|n;8G6;_ zS#X2L>F*-Cg#_IgF)}{p|(LJ`W_E>Xd67R9dC5KKZtVf(* z1D6DN-ah=5v5U63uInXxU7wSoPsv|q|?}O%5Y6MT8bj zHkHiD)0*IA6x3JC_5aP2VyTfS%7b`)BTs0iXZ{m5)eivk;DpwyP<0ro67kGrVC|m+ zq0LB^rbZe*waNBh92lfzgvLFSv-ISvnd&eTiH#;1#c12tDS3l#qjP1*VKn z(Gg*nyg`S*O;MEpXnxQ^q%*%Ec&Gj{qV>}5P1smO!$#{a_Rvi38& zg|}Ab!_tx>TO9bVSfI+u1;$IZa3EA4Uk5*5H}(dUQIrX2E-$|rB%BQ~8G@^iM`k_a z(C~d+t5Besi#R3R=JtWHe2)VUpa%1@4`Hl4)fevsyeeD75dNiSE97uKNH{-IHzT&~ zwG;Pw`8t;56*q$h38dk3)UyL6+K_tw;s^lEr_LI>f+BWkm!@Sy+)5b(j%n+Y2V|+W z)jIZsb>E7yC-oD&ZEs(43ua*;*K9f(i>2h<^?hkr=>k^rpWEX#rM9b895RCCYwYt< zm$xYewQwY+K_(=)?jZy|fjgq|=W@E}IHCL-6WUMXi=O(fwzj}{^BLL+ET+VoQRIkl zM;sSHMD9#n)1Ui!fwoBU!{^H9wwqK6O3&wm#dd?Nt_qj+8ksNN?T7EAbej=jP8ii~ z&?j4pD?0jk`7#ydz<}b?#-WjggN+bbodkQOr>VbCb`y$=5s_2@M+4!G7#t6LzCJ!D zY_yx$R&|#5qfTIsX)fU#egEo`(ZfYy1|{Mp_zicLm9!c+s`O9USw~TjsJYtJ(W~Uz zoWEu2qRF?!0mlC2fTCnpJ_oGG|5O8u{et5BNdu<)>%tur!e_i|H3n6DN1a-kV5+*` zQFi;kLQGU$Q4~nrU$G~zM3m8y!^LWd108$vPJ>SM;cG`L}x_Cjx%Rh>qA_ine-h*nThp=KIhyy^I3JtF2TN`7S@>H_v9#{|_kYf*StN;3LtR zla=v50PZ$g$xj`&EiJo@Et7$7y5#Z!^#`*z6&5e)6{omsIImnIo1L!DQlg{NL4U?p zC6^Z20x zc0xVA(s08_g3smTE|>fE<535habACad?aDR*zuh!49>+0_;qHlp@ip#G^IN3n9nIc z)jf=pnWwNlciGAKwlBP>OfN2dE?xPH-{WsW62mJe{#q#<@&=%?ef&XUmsoc;-Yrc4 z0QP*tY|~dwp!ZI>tK3?Ff7*SEszgqu8HjJS)sWI8B9w?3JwPU*E>Uv0lVH#=D9;?Tpd01{5^$E2}fn-Fah%ZB%^d=%-c z2@SCSECjLb-@zj+8*2f#Y}qPx51T1>{YLYBN+#m+2vycHsqd@{O@mWbM2s>F$?4C{ z10`kgqSZ1p2^tuRSV9rONrvl}I>=C85yLF$cfQSWmiQ^5uAllhN{Cb}^Y8q>KkJ2DC$5!8|KW+^F=Z>G1l6 z$w=X_iI}NT5xP#oZf$QdBgfa;z2j7&TWuRcy-rIIu&&SN--Tg_Tl~R(INIm6!TQ^M zoou46%S)=qZsrVXB)Kg6i}4cI&bq^tHEHMaGEPVsN;*n`Ljik*mFMq;kV^7q+pMPi z%a$IUH+{S4sN+4W4VuaZE`_-8_w2*}=z+i|N`ZIJf#f_^?AFP}g4I86C)@%+@hPyA zVXLxMA?VrUZ^)UD_U53+ltP|~zvkmNc}4*EyU4FD?x4^DVbE#xJzjqX0Ka#i%7l)c zT|000zt%%NKT@bl%PeQF)nss8(K5TFCQTvM^M2yGW>fE7V80Ed(8;^1eADd+q*>CY zbMz_4y{MtdF)5LY@&D**;2siNPG9}L|F{}L)5tK_<7SRGdE(0YHesnzF&rAYgmqI} z;CS1Rik(m-FdNYR@I9-WX4DfI+dgvbZs%cIwt<=L9hA!cIKX#WiwJ9>(>VP@)Iu$r zHw78sXB}VCt#vx4lWlKR__?Xk<#cyi6ZqbGv*3&LYQS}NPK#gO`m{Khxo0;hF;4r6 zX;49J-lQa4<<$DjEmon*E1WQ5;6rA92Zil7?@d^oq`%6+NGMHTVAqmrhlke~Evm6x zs}d83E^lb|8KD1nMvwbDkEjdvQ1E{k2r?c__}sQurt_8r>39`CtpAFj8(Z}ki+TW0 zeAp(9IxiYV#jW5}_LeFxZgg^-yAb9j@0OSk&Hz2?Y^S#ZpjTlUm3hJScoyL{6LC@d z3*(ZIzmuz?^`{&WhC<8P%&b#xiTrknSUPy-SKjh4^_4JD=TjxCT++Sp(P!B)lJ`DU z*rRQQAcIcNJlAfxIKO%GX!_*vI{co5!ev}?mi~0nnN~Imjph08UvKb;E1J2TiSeK2`vWY=PhJF`R;o*jVGmvNlWukF9}F>yW`=3;8=zo!&N0&Rar(qX^kBv=b;C z#_c5{+F61bC-8lt%#^`-yD@uh$)(RLj1pXyoFAkOIlFbC8z)u`MzecjXj>D8fZ*xP4v?p#b(^{qH*`y$HRnMX6d!ZGbv31 zL98w9@Y|u)@MYD8RXlAbbomtBo!^j5Ief3=YCn6XR@eQ3omL^N;R)zS+T<>f$FkM4 z+s3c34Zh0aR10bPmBnTF|zl|NYbOgKsog&5~BPL_V*Bu@0C++{p8}WX@at%t9 z0sDVUn)&=`a!}-g;3u}MPHk;B1+Mq%MidjQa!Ws0j_ckpO3wzdVh;2jyT~dnvskN7 zfPIc)s?M(K4rZetxp@1kQAtEbmL?XG*V<{!6ugu(Hg49hHuXV+rub2o60t@=%^pjP z<01R&%hAsA`d|j&>SA86YUgroW7ijbbT4bgJ>FcUnD9~$`1 z(Am1X+(sH97hLpI^N6TvWTP}18?D`6Anl1e}BJ1#x%WwY0;;PEm2qwCVL z+MYp6ur$m4Caa{49e1A%v7=H$9=ULmDVN0s0dydI0S~%hH;5xCtY)!JUQ)dK|%2QoA8LN zq~wqaLTr#eOVw2D48I!SchDSim+Xv2ezY!8QoQM0S5Mp0$w)OKmni)U{N5`$ahss{ zpB7Elq1)yKKdj(0ETlrvmTBK2W=$o^(Zi{^Xh;GJVu>&~FzCo=g0NDip3s>sh1r10 zQXg+cL4XB=48u+;H;kUy`4ZB;VJHJmqvPSk`v&-hiaZ9&1-|M3eE6Nwp)nKZ4J=L| z#S!S2VW*jt%-v@`)x_ZAG`h z`qIWrvFiufxf9+tpK;A5)I}KAd=EqXH)x|{29Y~p@Ex^JalTDegr%#(CWbW4Q~CWc z;DJLanxvkATTy*_w8XK_w~^08Y8beD=%;tiIcx-~EXMqcxi z&ZP1xP`ce@*sNx~%6uGU=vlK}ifyrjt%fxMfG==;k?2Tamuu!Rrq4>pSyhs1-q5j= zm1?fY5*yQBa9_GhFNpO(GGPq~Phej+d80+O>HakoM?eurFHjNTM7vr@HnfKoC%29YxQO*s~%g*wR79%se1YCcA=uX&tU+ z9IkgJ${epFJ3qY!y1ME2n{RlXz;oa0cmQPD-ZV+HEyt$f1Wi0YBnee@Y+4G>!{2y& z=Z^6or9i;MVer#%3qR%OIR61Vi9peiDk87M@xENRmA?G4xR7gcbiUD?^+F1ji~k_65uc_% z0fI!5K%NSHxh4~w&=2% zDsET4_II$hOltHUwba$`?-8_}`bK#RVm_HL}G-*>QJOj_pQ5!6{&1z7we3T9RP5yK;3=6Dk3E(_3pQ?4k z>Lyby=Df8?E>CQ!Di*l#UY?o$Ns5F92#k03(KI@|8Z$U4N4c^8lUdLEqY|<)P~2X# zZVz*s+pdWq0`RngdEk9f3fM&nnHJp;4mAh>NN_C#_97>8LH8V{S4~iDQ{)V-}k+Kf_EX zARv3r?E5I>W6*J>D-Td%+Hpm}RvLBD~9_c#KL z@_+M9ub%OXLlahKIu*tky`FSeVoL6ry-e9cbu2t_M9pv4PE{OH)oqr{n>A4}rjmW7 zSbnrluBmF6-+Kpl3MF57PiQTm=eFGUXeCAyi~EuMwsDtyeo!o8L0E%M6Rk!EUqV7A zDaB1z#WF(P-q;Tv_i7RG=!kTaj7l8-Il0Uu!Ncj_zhAJ%%dI}fdl`Bx48RYlhm+7(MU5AH>}7F<7+qIaceqeDzo4F| zRkM_QGZo`v&h~g#BfsYtPUnyx}FTY>78uE{FXC(6HW4lhVtNt4=>5Z>X#T=tlMkfnQu_^?eVI_u3X=~ z2>d*;d1W)i<#;!j=?=kK0Ih>)tiZJ>r!_L~;pkOz8E*Xced#|(W>+>{qhx(nWss`& zJ9ny19---p<&h=JT$uPpWud{(CX-v~QM1!y_di_m9*!`MTX=(-<-^mlL_>?Nwov(N zcn$4w$o6FLtB3`?NVFNQVI!pL6iwu7v!(g@ot++$`a^p(VuQTXQ@ION`7}3%w`SOB zy=8;~?gAE?jO?Rr6i=U*D7q*u9bML^PvsRAi61_kpG;r8U?+w(?Ca};9VJcesVFTS zFEP29tf(X-bDxc^-tEBJ%F0Sn@piHzMPnDn;~@jRvTEn8xxWM1IQRHt;^TSj7g{|| z_Nn}DlM9YaOeB5y;QG5WVS9Ufa8O;aGAGCE;{43T#U+B89Uc2cguR1()#iu7Mdzr&#sx-@nze6_Z80 z$f;=Yf_L}!j@&&>O_wzFJ>X8>Am?_DWTc9L!N=m_t>!S&gZ0Uk zwY3NMSPJs;C^50Db@40Tk>U*pMiIv%-qexOw0N^;7*jr9%gPjzcM$`u?5r;ltwUYV9U1jY6F^1NNBkw$@f@Sy}U!FC&wPadAbn2TDsy#>U33 zUcE|utGPc*?xb?kqd%}hHxl;bSpVX9IEqe=pP%2{++5Gyhpnh#f+i~~>({Sed**Te z{{9R~DG_yaI26L14;rBH_Q@^ZZ@ zdpcTLaVaU&)sf74H#aw|fb{Ha9*^T)BK_YT7Bjy1 z_wHF)SXkKDY;0_>ArZo-n?DnIY}QAL{o0HPiHIu7%is9>^9l&`q>5Z*gbUBv@*>h= zVq&bu%M0{s$A*T=i;HnJYn+{(*%Rd5vrURmPu*>7Y?ztzv*hCS>OJo%X;s;0m6er+ zhbujQPDM@#EB^j{rS;^uU-_DDE-tZgan$~BC;k2X? z!NEaG*|iXi4v%70o9ZY6ndRl>kf0#jSFfP#!-9flc8;9ZC+r*@n=g0Z`c1;lL>{Gc zp7TBS$D(-!1($`dq}0>ZH3!AT8@^`F)}i; zvDvJRl{GXpgoTAU+ge+%cP9&k-xDYYJR2E#>aVP>9+Q}uSX9K8*yU(%k3#hQeI+1J zos>l8-L z5@iULXJJp z_J#qB0YKGq2XSd6YmR;=LSL-Bz02{tD>3`ir{6O(>{er(grNbL0(^WgEi7pKSspyd z&(9}#Fwobx1r2r8XJ)P`wA8eRoa03&l$_kVV;JwyUcPwle0!Bg00-R=lL7By?`2$Hy?N z=Gb6uUcG*ut8OkUi&eKQkv(t|3oEAPsa-%}S{juoGHUpmN$#Pc$>{j_d{4>im7$}< z!^dHU;TY?AlV4vB7#bQvX9yqv$$(yXcTYfLdx=e0_5G??&x`UQv0RY!*K+@4~{urn8`$n%bQ^(Pt+I7pFTtB`vRO zAHD3)eDen5cA$~5u|M({MmJ#8TjaAk_oMB_j;5bxoF5i?Y9CWZ=&I}LCd1v;)zvZi z(aF@Uh5W8{KPp*ZQO+32xWfMx0H@yLq+FV|9~MbdlL#vSLG|E4!SS(cnsV!+{rK3} zlK==CIXOOP|NRgM*E;wx0_M zye`fTm^BN7#M3Q?3jtf6X=~?~B!`m=$;!(&a`}W3vB8y=Bqoxgq~XR#NBNkU<@PHT zZ%nWTP|VQq!*kHttCQ97E%Q$_H5usWWKvc_Yk@Cb_P2rpA`NJlR5*Ds4q|+K{D!ZY zm6ee5=0|wH0F=t3r>t!ix=k)=lEqTj@H0;iHUa|!$45p!Yn3(+4-@J0IyyQkDk?&s z7?zG&41LZmEQDvyw>#M4S+x4c#+aP=*4NiphKuy8>=$9pFYhIqK`BH$-EO|wYP#;M zHIfEiurgFo?X*Ge*Dz9Mp{b*jl$@;l>eX(cZnb1Mc|p4)Hz(&MJxEKtLd6NKgW=~> zq(J2#_duKb^|Cr(QJ}?3=5xT9&aISc0gSSn6L)et*qr@&c6z#b@3=u3 zBg_M_r(`s}59Hr!{0)UZ)XnN>DbuGvKn?%`+S=Nn_yCDkw)Cb97`>Z?{g1PYai(MM z2)OR%0Fwxjt8+V8Kirz1c3HaTuD{_lmh+?y%H-4fA%*PPYKeHYR4~l|O%+4i7|?2z-~(o#!fqb)Dly?e2+*x_Pe7%e9@Jl8-@NHyZx2&Al<>h=g$+gF92O1^4?Fuv zr5z0_sOtqZ1~3hDOiUO#Cx?gXPo79fN-8Ei%KG;0TV0(e)XCxclp*}mW`L@zPdVobepBM^$_4gm!5iwe?a`5o9gn0mjJgcz2m#nBcII^_9UiWg~Q+Kx_)C`?mTxSxW z+Nq_iYbaz3bBd5#quR$CHqs9tJ<7|?jZ7X1ln^zVc4)O)H7b7kGZ2S|i|Yv|+J{YyVL+fa z*rfD)CL>>-=f&5``8L-rMU0QcM@6Nd=J9aOVza_5Wz-1MUzJR7k-06q{YP%iin8NM<2mvF;OH$MfK0W_fgl> zT-w;MF)=AK>r40cM*9`ok5&bjl_t!!UmFB91CR?eq4qF+Zf*{A8nl)_YPKs87J^IP zJ>etHfBdemuP@+ibV<(gvN`NJNf@`~2>Z>OH&x?q92?A7Yq3-mhf8MU!eeUW;BdiBQ5c(=~%iSF!R=8xTv`N~!b+U&ZVq;LyXvn(HCP)8FBu!~$;vM+zh1G6!&p zi;IH>z2p*Es)#h0v$Q}76S>zU>J*A=f)JRu+;u(GnU)RPJikPD!RL1m2h z_C7{70%Zf=OjZdnP7os;cgK-6bJ8{)r4WNn?2kRXFZkMAfeEoEk9rAJT$mr1m# zQ>mlAPj=h1!T0*n(GefHVQp&3&LRR*RQ5o+v9S^UW$*!MZ=9@*7#UWy}c0~i%fSvXLc%8K{ZTP zJI((B!NJMH1G4ggcKI!l{DOkX3PZkLrOQSp3HwL>AIkYWrWAmU@#P^2`{ZtG zqxtn8J{2Dt2us$Tz=0`s^Ok7u$N`z15k;)52|F<`NJLtDdwY61wfhqcD*xf``7J{u zBPl2ymu+MJh~nah|o0|ZtwXrcXKi>k(jl#l0SaL8#4(Db+a9O}-*VNYX zSdJh`Nb+hLquPvzhK9yQMnJwWK8wW1@WTa5>&_h`3yW&|#mmclqIa8^y>|ptj}5+j z@4fyn#E<`gC{zwlmJD^jP_n0D;1UKk;2Le2G9N(I3%EK zC_QHF_XciW@w-lPf+X2&79O-=L%&66wi-P>5{P_OVjNsr>Y$+!S6y9QUte$eoSeMW z{1+2p=-y0&Ujm0I%&=4;xAL;G*X=R)adC0+v9e&{pw*#7@v%&xRsmDpw-uH zQ)ZNrkpX;xYJ^U`I6tVrd+W_AX%JDo?K|u&$ z!M>D0?Bh~WrlzKZ%?EQpdO(St936Qa|ILQc2Py)#V!Xlz<{`RhPRW$!EzW)1Ml|ky zT=eIrrcS$mR8EW2bJ%;jyMc9hpo;>fefspN|C=`<;?(5fOA8DB9Y@qOG=9Fml{(gP zavj;Jp5Gjn6i11ol9Ov+{q2X#0r;{WFSq*n2HSr6XKQP#x3@Q-4m>+m?G#QKgo#70 zuAu?M_1(MML`3m5HG(yqV0sBStphQK-I&v|n*rtSBB%#$QCS%m>yesWZ4t5As#?wk z$;qbYTT~k3{Z8!~=ZC0P@NwV+`uZYKX}y1UVM0yTdr?q<);(!sNHw#tASEVtKR;R` zV$+M!m9w@k1kMe`A13MGZ)#)Xwa|*|ZbkF(VP8Xo=zak2|KcN7g&ICe00@AQgO5Nz90mn! z1^54ozZNuQO$}N7OAQSTsM*EEMe4|$^mN~r`TJws1j9GguY`H@L|U#!4=(+v2_xkJ zXZ**&z>Xh|FgrW@(|XU^)tg#1&c&gj9r5~}FRiR(tRQdic&>rg4k=e?+PnG$WW~R0i{bCO zmS}l$^75y%ffTgajV&!o36D&^lwuqvG&EO`;tmmpmX?;(JF>RU&PJzcqK?*9gVNEnUHdn}W~*X3N?{)I^lCaE zsEO*B85{vO*x1+}m8(AiI+c)+Aar|YZx2S%EB?u*rbY14e%$Fv;wy#E9W6Bl4(YW& zY6_K9d3R5qzO=Hk5}<;XwsCaS1(+3u$1bigmaL4-Xt~w+@~?cT zRiGzZSHc4WF{9fWQzH!lcmX1zWTAMV;`mca>=$Lh>I6FW;|EHR1xD4whjx?SUISs+ z-`@Ul^7G4=F93#M8*?Od0)e3PKXk7P3sbPOdziv3C@9F!Pa^W7boBiE9FaCNW8hA# z_T)(!)K;zA0hIB#swxR_ap~Gk5LWB!)>Tp#U`Nk2XTm#v{78BFlorq9WUb=eyLUk9 zf`fx)F*3R{c7s22=Y^4$sO740gx36c_-k1Hfw*yN-xPAQiv8JX5$`=C@lZTsot^qy@fL+jWbp(t!*iKxOii!%fELaAX z+@uG3{r`y(dE_pP3TiS8CZ%hXm6HScMhs&jDXG)2SXNe+HdR4JMyuR1VFBYHsAc{o zc;jGCK$Zooc9==wq;%zyUE{W6I0P zVSMl)R^E5vcB*7Xa6SPo!yG0kV34HX*wpI&Wq$FGw8gr4(~d596^%UnV69@h@L3sH zv&{GJ%Ye7F7jPhDG!3KwCFir}&u5{Hbaiwf>I2aTbPF2C!pw}3>*=E<)ll%7E5LY< zpS|<}SDeAA$%xYQ@Ahx4oD3843*~wSH5Bq3Ve(-43~+ zb3}tdQ1}WG1(p^oE32cOT?1QMNy#?6mnl0jc(r7=G4-Mw0s{vwk^q~Xo4c7v5a^4f zB!;Ip5>=U_LyHIYMpb3yNMD~yn?V&P7Z)H6aJj8+(Y_jJ2p;PR=#rKPPo2{f6UUoE ziHh{=yO(zAPu8npAc5}c>g}}!7FS79`|TS)Y}iE3O(f^O42-=*ZYvVM2AE;ZN>YcX<|okX476n79%+D%|L==@3owODTVobN>qaE7AXbSpWYt z0{^Gsid;@@7XBaOx0b1Ds_K1MJwSJ89ni$r(a~RlhvHhTuY1jD!$ymbj}OdtZVnDL z56HjJAxHva!oC8XXCLB_yz`&MfZ!N@Y3}l1va719g05L;1X9eOoDv)RYiNiNiKKiz zy_Qz9Us=g(WHb+7)0CZeenU-kO6q2s~tgQjDRABVvNT@5j_mX=Hn z#3LWT4+LKoE8quU=}d5{=P__CLQfVXqEN54eQD?VzeJ{klf4JAmt4@>w_umV>ih<` z6Ed?KzJFF%PiOpapoCiIw-COEKs6MT`6ZBz5EgqK|7G~k^*JG1V9R_$V&Xg(9=aWj zXh`@%Q_sMf1TO)~d61c8qRfFe2^{u?rKOtzKY)sijE(|@_N9dB3O5?k!lF|NBRIzS z1_VXB=I$mYCeSI+1)xRaJJyz$T~7}mhPTY`9Dx`o0FFv{)H}jJp#>xtalO__%zTZ7 z(BgRaFA&QNRq)pf0aXvtt}s4)OhjsHq>n;fox%ZK``>dM=WKASiwzpC{vw*14)cIM z2BHfCiIn4oybb9|CgXCg91x6JHy%`wVm1*z{;l;fkZ&FB?Tvd-Igm0#@;M zWd8_*MSrG@z1v0{+oe~$O;zFuW)Ppl?-{cz|1fdz<$f}x{uvEsL`m;WRg3CWgI0t{ zR9FfOg{V{Mt09m7&AlrHTV9g{gdvy}TjB(68yI$Lw=ihHPNAo79vX67Y>z$6yQh4c zx+R;h#!H=;pTG)zQTWA243LN&2KrbPyAh3 z31!ewSAVLd1p*+f=h7LktgfD4j-Q#C>Fwg_y_OhXJtR@6S^Yow`$TuO^YWl?!N(>KJUTvpM0|@sd3|n_O+z&Uw9BUsx|2M+xraj-XXb-3idwd^11eE;l-vKwSlZdNf z9%sKs7&KH>`zI$K9GG?W^lSjBIH0N$`;@1Cah6`%si$McWc>FHmU2NqDxPIuzfq?-B2ZsvFQB+1>RCKgy=X+do z^6nRn@&!Y3eD1X{MT z(($4+IVlN=0u|ET&C0-lNd>1hGT;agn6Wy|?S{q1)ldFEP|T9j(x!sW%YgPfrT^~k zE+}$i2Ky?VQ#(hP4Ius9oShl9&KvwL6A@SU}U9we|3hC*n>fDBO^Z%DI^MP znL`dk5IG=5LWbV`J40lR&o|55F3U$zA|Zq}Iy>H*+Yy6}Ycs5e7eF-4XnrzY<-ic% z0UJsXEUuIy_`LWj>=m>LXqGw6<@x!6(b1z{n)!JMFB%w~;l#M8t3Hp{QBZ7CUKbt&n4vOjKVv)HHfKaJ{HTNr#SjW9f|u;9 zsp)#XKd{{%k&C1TgI22(f&ZBZj%wy*Wt9QnxpU{vV&d8MzegD@hQ)7iD6GxR^US=# z{;8X3_&4)&-1pLf0TMwS`R6jAZfb(Q2kDiSn>z{sJ~N8C2wxpPWT2e zfRNLzaoz$B<}Q3uy-`QXXTJcpg!%?aOb1wQtgMA)WwDe&At6|&x9epu&C><$eaPk* z>z8X^bbTl(c?5@Put~YWQJbS+`xlYDPlm%Eb^e#gRr(|rteBZS01~uYy8r5&<{zKc z-*w=hAjvgdtxg%hy6Clgy?7v*IhHflV7GX($bsz`$K(w zR8Dg6Itv4Xi1+VDCMOlvqZT15t@gSQE{ss|m(2na_2hqRYRw#sAXe7IC!X5I130`zGc8egrUb#Uqt|7!NebEITL4*FAfPgbd^ba4#cTCo}lmd7_p6cl-oRZ_3 zJO%54cjpeA^6D{u1Yu{Mv4r6qe=Vd=6V*;i?wXzeYCeyZ)zmUF6*mCpz&Zs3Sk1o3 zc9g$%AX^DEHW(D4ZNPs!U3PxA#hqShtJ&3Ap`P-pMNEu90s?k83|!rb5y0p!zbcICAvsA;Pk%4} z!oi{R(QC{=$dV!>eQYFB0e>SRJ{A<5LEhQ|?qy4h6ePqF5`bJ_ z&gE@CgV6%k>0#={DFYZ;EG(<1M>~~O@`e5Vs<3HrKp9@0Sy3L32AW>k+mX;2D z{|=`CJBI#padMJ@5efGF&`=y@5R|Wy@R2c;D#V2GEVte7E$>RF3CeBz(Y}_rDnf~v zlW5Xf^5-zkZ}TSG@oAxxXJB6F{HS*c48DkTfqRB`63WX zK@CbtwfJ1a1b-NE(lo`Q`d}v}>4w5!>htn8!Z4XLCdjWtTjsGBhOV*yflYz~w{GV` zQRzn};pxHA^|jheSH=)vjUgKwks`xjWBkr8kCfr&qQ4>vPM3lzG<;|qZg%2e*?INag zlvb3`_l#B{Dbun8r!qE3niS>Q-KewMVo_r%&`MDX%< zok)xdvuf)0Y+)F;>)E0Hh&~@OQxp( zlYI4M-%41Ib?d^$OwIkkGRdBUmA|&8ER-Shwwu~ULGgg4kl^Q*mnul=l!+cCxwb03 zUx(6<2Obgcbz4@1znB(6+LbFFU$ErVuIz=SQhK^cu8H(0ztKW(cHe%{ez8{7=y6eM zQ~!mS-cweYi~`?D;ivh0$}hE-Jqk7LCrcTqu0ua7{Rg62)0P4q6{E;?4vA>s8bXJB z+xdh192b6~aU@K&96~C4_b@V5J=o+ovqw~)?6NRif5wVS zJBFNwV*fe1iJ{u(zOEzP*PON#P3v_F6=cqC;o{xGyLD8S^UfEk%2Be7ZOe{tSK??X zNL`yu}7f^hco+|pf>eXO$)w1lFI#XeCtB-WX!9)a6wrAyjnC! z^CJnO|MBwHpL&oJrV4E-`}rbK z_+>l_?-d=0Uv1f+pO1KXN_n3rz?jCrn2JY?U!*|_W3tlIkz4N zpKB2=rkV&&SaYlvmC(lDQ9n#`FpnB}=I*Yq8aA5U(2;GP zU&j$hiA}$_Q7^kB9r7aj6#Fyk$M$M!w_J)Er9Tp{>`4jR6XBDPXDrS=r$1%pCULG) zsc6eA&q^v_p`@)oPcGBl!A++We>K6{O5@Kp%sP$RFR9&~{8$YC=h6D@dXGdkZCk-* zuO)^@y768HTzcB0E_~Oio{M>IJ9*{O_%r^b=Q|qRI~ER{B!IuNC{#wG1|uCbU2BTM zkk@h3w{{B5mh9!u-ByRUI&iPIO)ep{izvqL^muN@%rvgj`1)$*yr)C-BM0YsB(iRb zGbLjv@4g|;xvx(uF=n^q`JC{ZYN?$gh}SIbUwq zIw>iH%GXcM7jEPAHH7lLVpg#(EspEFo*8O$hia$cjp)AMZs;ABMddl7rr3`-F3z~N zzWyC5Env2BKDE3eXxJGQzABY3#3bY~=UVZt2EXidV*{VcKZxPL-f%zbbo55Op4e-`P>*{i(oeF(TO{8X24uQ?bnKIUF3_M1?*J+MdW1Y!8Q!B?iR`#}u}cwF6vp zRjCN^maxp)8(!IeHe{66O99PBW_^HMH z1n!M4hF5oOI5nm}d$6bvkesjU6ya#Fkp23}N8V8DG`}o#`hI_8&~yuN*-2AJ)4v3q znIuBFoqoytD+LyEoe5FA&h(i?&kY{LJ-*HSVA|RGi1W?Q7UuI2&s7b5ePL&b-B%CR z6GSdfOEo*__`NP(UMTTY?-99^tqNZ`A1NgIq!`Obk1nR?b^XTfUG%>u=w1{z{%e26 oqJGwaf#!|(Me5&=p=@3VE#9ulH0KO}KiWf+kx&#bL>c)0H>UJy!2kdN diff --git a/source/clients/linbo/media/04-webui-menue-linbo-name-for-start-conf.png b/source/clients/linbo/media/04-webui-menue-linbo-name-for-start-conf.png deleted file mode 100644 index 695a4259d26e1b25f9d54f61cd9a72b8b5fe493c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6355 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 TT(85I`k^;fG?jA|A3pyt)9?l+ diff --git a/source/clients/linbo/media/08-webui-linbo-edit-new-group-os-infos-edited.png b/source/clients/linbo/media/08-webui-linbo-edit-new-group-os-infos-edited.png deleted file mode 100644 index 51bf50583e7ae59fa6a21c9d34bd70d0cbe07b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39220 zcmce-1yI}J*De@JTM85?P~2Ly#oe9Y#odb+ha$l##odZK#XUf9NO70q?(QBuoBn6- z?zeaD?0h?OXET$@&+>cyoaa2}dBc6h) zbt`l$$~0_jil$2|mN&H)9YP=wT}!*NMoATA(H?)s4u52Ve%b)h{^h6VP*vcPsIt+R zi1*s|iF0=BnaA?(WmCtSpP~T3*%EGQGomWvA3k6K06*S%AgUwPkBq2=I62}R`vP$u z8jAt|d<_&t98zu}0RV&_|L;d3@hGnYa=F7xX5*0nYnYH&lx?E)B=7oTc2HkuO<=Y~ z8-(_0K=+bZzA|k6D$S$TS6I^*KJh)?t^D!6tHA<#v#)4DZ$ysmYxXDi4gBvzm^rj#qA7piWm~$gXf0ec;*U4(IGFmmP>;Amqm}= zJgMt}Nmde11Nc4ffujwR7>LIA66&R7z&H;6E*c7H2Y1n^f^>$eD}V_!cO}GuI=TjoiY-tdyWy|=4DP@ z5gK1F>k1i#`G6CD$&6F?(V-vHy3`w&CJ!4#+<7S})`p#q-26H~v)_uSkOcm`pISK8 zH0LJaKhMM*Wq%r>I`myIT_Q2H*xsAA1E!P(sOma#7ievcPUO zycT^DWqYi@7zDe*XU>9lHll=Z&ytFylw*em=HZ?bg;y>wu2|QXC4C7-LzdmHcdM_D z(rsA36Qk(W{r^2G}!cTU!WdM4UPy7ZSqg8y5qv1qBja0FByd7;3jn+J(pGM~D`6^W4AOY<>5CEXO z55D{{CeSLf%x2r(SAp#8Pe6$36@zSFzm1+filL!twlL!bu zZM5bOroWeq=dKj8;@Qe%Ez-?KLIJp^37v$733J?kZC4rtJm}d8+SnCs+3##!_QKKl z4dyGvh-W(f`d1pYs=I+c#_!~QR6tiej^H==`*HYmX5I5TK5Dwo(HfV11Hu=OQAH-? zl!!Y&r-$yr*VJ$$h1aZ#jExG!(_+!b)&*g~>})^dVebzO%03#AtLuwYe_sy5-!#H> z1rh@QOY7$sqRKQUBDAPS)Airel3Z<0Exn%B>VNZXzaTYz7r-)F-)PW(n8Zc15$StWd`< zdc49QqiEb$w|W(q0=~)SEqYw_`>p8%QDD*FZ*+G%0JV@=Fg`Uu@XQFHG*`nu>5StU z36SAIxmp^(#Lj!Uki$)Q1cLjUW`D_+Uh6^q96~EXt5Ez9QRqX5Ib_gq zeAxhx=eEYq4ETdAs0jbjc=3H@ z_{+r_9*Ob*Vu>5YBqFT;*>DG5GXNm^A16Td&k4Ny=LG)z$6o;d`3u&6{sQnHe-Zi5 zU;J-+6eqp;1%|GUPHIV+=+4egVdV>eAi=oE|H>8pfACt@jv@j+7uo23^5g8~+9vyR z>|f9NpY3etr9c01ys4tGv3krS(ABJ{PbQM$iM6 zzlI`B+ptwX4zJyc6-C%-%A4jP>5cF<&wIYmQ0?95_4Tb`9Mo4OaYPp4 zFy z!qi$m7}3d+Y26#6mLjKPeU=)|ScZTTQ(LWO2}FoYTVUCZq**NOX(JCWZ>%YkL(QX> z7G1uXSR5b_#8gguw%>=d)(<%6JR6!7G5lV&+BVAWK}xAJMX9OG>&fONNj2r&45L&# z^>Visi`(q?ZYLiXV|5~=w2z*TKwY;WJ#xd=jmBVsyORtBCL`@f-C1;o6~(g$ZwmsB zjflzmiswUR3viC@jNMkZv9DV>0#8)M&@ai488Xh4^3D2A76$UqZl`mZ(PTj|2v6M~ z=8U!uR!ipZBY#~y8Q57two+4S&Ehaz5ke4v{u_ z@9mH7Z{Q}QH{W*TyA7c9S=Z0AOlIAz2CEG43xealAgZ)l;G?UlhF;8*d+EvY+zbU2 z|7*uPBKo1}jHNo-5s!_$SzY#2Y>~(I_2LJc<@epY1qKJVGwG)Kz~p-G3!5(%4Fr1A z>n&Wr-hWH1uzR*S(+QDM)HlgWH&*NA@AB%I9i-1AN%m)M{uz(rZ&UG zjNjQzdKL6~e@8G|HbH_6h(<70D2FPc+DEIHSHq5sjcvL!v(WX^I7K=Wn^pgd(C%D? zrAz~TLDS1;ovUBLrv1t6dSxkm`KdMBG{$1z;VFAe;Y;&e zd4baOfN5`@!Y=;Ks~{TJ1vMmqJ7ZzW+WWWW`~j(u%z{7`IfW+MoE8!XDQj9LCi)rY zf(3zKk9-Rp4P&;V*(6OO7i=Eb`EXdoptAGN6S*(?Ni8v2Pa;3Fzz2MJEyfQQ4wwd7 z`>s5Sb_R7jo^zpJE#q0F81(^k?Psi-gK_zCQz=INA>MbGV^Q4My)i#R(So0?o`?J;~l$e;9+KgsqZwSvM1GtkLZy}t={~PB2 zZyDM>@F~bZU0uE9`df;xA;LI88`7&^BuHbV-A#PL)dT>tq`0}cW59SPAPfKiNXUXH z^#3Qv;u?#x1RN^InywJERIQa^DMj$_Q@knI$4!C7!>sLBti%Vm(J8`;hGmzc#Ac`;OZk;KNf=u16Dxaw8AzJUr;FiwGnz&02 zEL+aFGgXV}zCuu7pSG791$=OAX2VpZ9TI)`*T{{Zo-a8gAmrtxv>R!=s>Qa@)%5!%K>%c#+yflSFZXV znXu`!xRSFwxeyE`Al|OHTA?RtVyjX#e<@(`4E9`|7gw}cW&Cef!S+!G`XUr5SrX^V{mm(MlXeH~jNJLa;aY9JdS2n`*aG)*u!@B&rOnv-cmsb-bY%l(6iyp`%QBS#- zm(g~j5Q8Q~E3E?s`O4pm-rQ?=hB`V>-IrE)dYC1@CFXIe(qKQW*I(jwkULLJ($KTb z;?S5B<7!GQ6$};Q#)PG(T$dzL{c3O1rb3tk!lDy#!kMC-d4(1FmfN4I zxd^_xGUtbNQ_an6!YB}xxf~YyGEre>z}16>J}Wddu7QHLQ0ee+fvV4e-M=gN%0&@M zocX=Ay7=m%;1{LJB{oaciJehtYewVEVB(8*1yh&yTyoYVy9F=V$KmkQr;{e+WU6F^iZTbWX0q^AscQ|Bmz8+^Sr9?Gzldez{uCJlVh zo%;9O;(?scYOi^niI#qvpUalq3F(K*ELpGR=Pona|DvHirKe}amhs1Yk)lerjTAR! z`e$xD|1=Lb{u(DZROZu2_-Z?c@TPUUTp1TD=7wI2MGqr36;}d#h z2de&RlHQz_B-jqDu>wOIRj&?EO{ePvia4J(f;RE_rd*T-1n5<5UK-+Ek1Qbr1&ine zl4vL?!RnNhl)W{RYafezmpvV?wa)e0LfZLji{>lx+$(e$SQUR-+;?oqy)xF(?hcbHyB?I%4-*jE0T!yy{Ad-AX=&+Ds8#kFIf@c~1= zP&WA;j`ri>N6s0Kr{nVXhlLVyFnDbtO%e2#+My`P_TF8gdnfp|-%w8I(GzN}nC@JC z^$HFp4C_o%sAvvK^*Ys|xU)GEVa3HS_K9J%>DPN7#t5n`az{>TH=EtxTg>DO*y%3(*SG%5 zeYL2563TvrW%b8G-OZ|P5k@UilqMt(x4aWkzgsY=3kzt-7w|x-EtfGxfJ3KnQh)7l`=jNsu~Q-Y z9R0I~={3$;HFY+Q&Qb>DJEu@^6RcV*_&&`jEbP|OYe_QGpFzTp_yGI&mEGw_V}r*> zQb}NUbBK~}$13+}f4v_iW_}qx?=qRu*Iad@$`%(+c9U7F0O=U8PutvJaz0bABE@7u z96b%~O=|~}%f^-=v+Z>z5+@+?hl)HRjChLpZ^shTJx>vXLqj%gUw-IXT3EPMC7+Q6 z7j^oycg3JQ{r7pR|M)O=4e~8X--~;P&%t_dTy+#E`}1sU&Bk>VR_WPGCBP3)*xPHY z+l@${hly}(S^ywsQ)e(BJ@Zy=I!?oKL>D_+SkO=A4!rBTxKvZIOjaYGpp}eXA zqJ1!4AT2#mFid(ve#lnuD<(WcX~HNZNEUI4cIR0^1Ng(yXXf$e(mOHxRd5qmN>^x4 zFB@arl4|8_;<7XU5A5XyaZ0?)r8W~phm%KJUHn<8ac@_Ks-COk2~exR@1xjEJ@GE#T}!;Q+D+Iz_`!9Gtwpl%7S) zyyryF_Uzo%I4o3VJo$ikgNuL?M7!v6WkZcKzrf(kY`{cE-{SItx%MY?w*Q@}J@eCDfq4J)AA`gzP66Q?G4eyy?aUfj`)0UJK6TC zFUJFLv)YOxa-Y3=aa{!8=UqwN`4L~;kV>ZF2ZjuzmjFkl$PZH&U(vFJ(3M^ZiV$VF zx%;vM08^;{{fPPZ0@Nr-u0XYH8e+&O%2ZQV=i=ztI9qm$DbWRjpPp@&JUwV2R?Fm@ zP09alQTG4#*d1u1rUl4B!l@&GIV{zQT+2BHbx(9uJpBnX<)3GZQ4d_dIsp0c?pzPT zNA{@OPAk>Ht5E2P#hxBT%#B%g@dQ8#K`l5YUreSa!=1~gW+oect7iN0N%!dr>JkD3 zqYxCsv=d)yDt*nN@Lkm3EE7uq&6lK2UCsaxfO4ixr7~-0P=eP@1IcP_0VKto$fvg% zE18V`lykFIYa!hV6Mnmrt@B(Jy{T2zzc1K-cj0fU#c;%rd0?7eLv`P}(CV>TQib6{ zM~QP0U3q_XIys*q(T80XiRFmn9Q1i{=9vVw(XI-->FK4Lay#-uz0;dr)HO2G zZ}pFqt<%Ad1A*_Y4^Xu-E8p;$?1*rAz78GFtkL_qrXx>daR-O;#Kik&yTK_yi&?;U zQe>C31?J#TCfvYs??Qx)?Zi`AtS?aKj9*E1$3UslwcA&D&vX&F0h5Go92Q1qle{SDj9whhWpoo4Lrz7QZ|C-ECMA=wM=ijh}tfCCM<( z13XnOxrlG^>kGC0^l8ttLES`tWBC#$vh=mRha{e#iJx(CGHN`-Rj|f1cbAEc;1j zFm|&obHsqZ5wm)pNJm({=D{yfHAx5uDzvz`;o}t)6=shOTMGH;4Mm3FFb?6!7N`by zo3KexC(0nu(C95$Tv|F?_oqa;;49BIsS0dDc|DTP*rw(Vba;c))8=UeU;%0E6Y^HPVuorytiXnbvGl1?!}aWooX%h z6z?(6h`t2+_S6n5t8~awzYRNXUF50_9opuN21W_E+Be%Q&P$Z=q*_SmGLS!${2|yP zIE$QESeTIOIMcbi+umZHe2=FUtDYOnP6MQV6Z(p^Np}nxtpCyUErCfrnFDugZA7HG zPVQHD!;ne%OM2bQnPD zoQx_HYaoSne-+DTC(=J%sNgb^;F5D`|6Hg zm+#v?^VFGeB>fgpL~HVjj~xrwZr(6^^%tCNB(TrF7Xb1ZtGZ*LlZEl+LJnUAU^ zvR2s~*Q|dVMk)ZZYWGp=)roru<(_#f1T2bg`OZtZVIrowq!4$QgE`7wbCYFZnZRA8 z?I-JTJjXX$Q=1*4{i{1xIlk4jLIM7_O>e+42Z>hga8q(4N$4I@J#Hj)^)T@&yE3|| z7+YpW@XzXU1~%XA4f)(qpV%mSq=XHe+~-A_BLdNP>+ghyHp++Op$mFmokKLUV-}Lj z@fyqG7-oBo@EYEnY_A^8fC;I}tn`F;Z~uBX{HbOh$={{)eb_Z?&$H8x!DQZl zAe5S?w-t5o>rDywvv4Y)G&hxfZc?LD%w$lhJG#4=@>S5LG_e)9ZHPUiOs*Hk$^w~` zFY9qbm;@+rJwBr-MU_ zH`GtS+g3f+{@Ro{4aB@w-*_TO%)H-2S>`oSv zLbV%&)eKK|KW&WKePJ@oK>3oz-k&HC2fBKk7qHfxq&EI0y~{+0X26d{xJE~tH=b;S zPD3f2E|kzLp;3+(8cO&Odp;@USq*H>libSvqEc4v|AdV)#tOFS-)a!IcJ~KYLlVJ? zc0MEs;IL$|!2|t5O-X5Wb|~_iWY&r7aeXWxEVSQh;c@(crn>$(c+86DF(7mfRE*qo*{t#N4RY%%B0Vp%G$q?5nNJc>AOC#iMkAx5TZ z2(!emt>vMioGDUm2kLAh38Jq^`n`k0CIRf0$%nPA0|Y5Km7?f9U3IOE{;x`Wv8&O?)hyW|XlEE1^4OF6Vhw_Or0z zx`4%v9!Il4Z6weWq{|L`q19o0a(YL#S4l%LG}UxXLADV%`cW{!y3J47>E@IMYPsOi zsIBt1=PIJL)im9LaXUSoZD~8@+Q#0!B_WBxUE?INZU{AXn|j^GUQdT^Y$v>*Dx~40 z`jUfGY32>}o1dCKt9J9Wh9e^zO49J!zH-U++}hVBrCD_08Av{!+Aj3yo3G_Ck1pL6A4|LVcC1XO zCYI*)#t(Z3w@wYodmEn?9$OxF{!9xWbnzS`4>)aLGM)CAiV#z{wp!#l9=X|DKmD^m z_^g-PD=S{_Au7WW^z7+*A0(LT6>nTKP=g7Zu*I$8m_#<5CEu{s z&E`8IRZi5g)@q4JvoAs40093rW3uFgl+(ZVjdnI70IZ|hr`2;E!aN!mhRo_%xl#Rg1aS~*i}k6T^*aEueT((km9tCMz1 z1U{BRQ!EymJGw;40isOR>Fw%#E}oDe%AkoFnD)?$seJvT>e-=qg8Ex>^40-cLrpuye#TFhc=h%j2|I1$Ge1i* z<7+AX9zB#ai55SZ4IXys4%rl`0~!OCuL>r1gf)`)SPIW|6J_iZq26LTa)Q{OLlk*n z#}+(3Rvj0wXiI4YQ%Vq7*C@lb^I%x{*y>HqIDuhX9+<1D!eTL&h)ie3xuap3-7kwG zfvwt=Za=^#A-V3dt`(G$eAjg(>i6_*%Y66DUSXcDlHre<+`>|k^_Zw1n?f>`~dDyBnKv_HF~ zP1GEfy^21m#KQAln*QyjXh9MfLT~hGD011WIo2;v?uFp;udb6f0VJnyKT@_>Q3x>W z+s)fVdak~fIN_2wnI@iv>PgCuPBZ9$8oxtw-uszdcTYVb$0ejsUJL2PxMjTG`zGi+ zTU6!ikT^fA)aM=+CKvN`+X0Tw9zX@~@Y+}?X|W}m9~(VA%;3(} zl`FKcoerZpw{pm7&#rx)ryEKttS4mkDOQVO`#rYsFd37scFBicG-|r*A_VV=kyZ~j zbuOxO5PH6BvKzJ2CW>>fkTGC(J>+s7{Y1gQybUY(8)-LM@>cTJONiOGonE2Ka#+xQ z#iO@opNz&8KJ+srJ~>$$h>3{_(|G}rB!6dk=lp!}3P^23^6C1UJn-U=<97A_tl?qS z<=?=9x_%LDAFVPF3OZhBR~d1bj3sJoDL#AXmKChXV3pUibZk&rC;Iq1p1a~@b%&B*p!CXOz4(oZ^TI;gIgM4skH#yR>{zxdb zg3$8y-79`(9wtbg0hHVxpAy_z0=9$Tuf{^2itISAjwLw+j8<+Pq)J4CBfMsSM$q4z z1E0#bdUkQg@Ey_U=+X~TjaM3jk^`DTyXzIwwUhP-Um{q&G7v*Ss4*+gvg5xduB<%Q zjtNg%Lv$-{5C^pl4bp^DuS_S6k~|x~-u=voq3uWRDj*l0o>9R}x951y9AvRicbX^d?uDY7k^v=)i&3k5zNY$6Z>_ImVv_A_BD@IY0c2f|;zd z$|umlO?I}>Xpub24l_~eX6OBEeQ{AA~vEnEc>g| zzfDQW4kPA=c&#_bJog`RH)cvgu7`<1L{GhzMr|uQ6U|JY?@Ox)M}d!|Jt3pI7u&Ph zis?@!34 zk$dP*HdkB%=tEi#?sT9eSWt?D-KC8_(4#_17UKQbnA-8 z1_ha{y$yGkLCh0IGHtFt7ggv(sv8VipTe{aH?IfW4R=g=5tF3axXZfXi(0mWE|ot+ z8xC3Kq&-kR5J^-*tJ>RtxIu4PPg6Zh%nZ@d26C-zZzHK>3QH&jGlF^hI}BE8t|ld- zyI$A*33~!41=v)%vV;{Ie~>x&tI22k8aollICl3m4bp(PylC~6GmT#9xU9*NAL$K^2zO@ zYTp!Az88FfVBDtI4a?Y9c8If>F`S+eijf0~|4Gf5*PNoHS)y(YX`YFARV8s zWBMnkd#rw83>gIl<*@(>An5AY{uwY;qYGtNaPA3=SwxU!f2c(DjAqGqc=V-H{RII( zLcUkIp`ohGp4dOV5-W}{61V{5yxtwn#;y^(f;6j4ajoUN!I&SK%DGv$?%FHAiTJgMfuzQ7!z*srWrN1Q-Jz}%7SrP_*$rZ?! zy#@klXlVE|M^{#|LQ@taS%hTi*L?8+${e|9S-TKjrp_FHW%@+jilp7U((Jzp1QF+y zfJTXF=q#)31!Sz4bi25lTK=w^c;eP_J{fRYhu;`NojaiTowEOMYG6za8 zt0+0AXfKu|HI9a_b)qGukRidpo5ebib4oQWl+vB&l(*_cKuW2}(@PPt86J z#7jiY!iiphUg>eYjWnsbj#y-%^&HU5oJEvZQ4pD(NnH-Ed#LQ>mwh93!r?e5Kf`Q0 zQni5bAZ*Xd@(z1n3C@0rRWvT8Bu^;Vi)W2Uaj-_^+FO8FBKzrM_RQ^=%y;U+DT}?G zjb~pKB{N+Kx)lvV_?I8drMklnr-&ot_IrOF29G;? z#`EegkJYEs^RBw_~7mD!>1{Ysi=Ag8+jg_so2BY|X;6WU|v7>s@2B z%MVIvQ0evx%*$r&?#+So&93KZg9L$(Da*V3H&}J8WGEgeGtzu*O-v_i(RimJJPike z)pQMhpznOxiJ1$aIk2AyEL;sb46n7lg)L(Bo;*}G2tTRHc0o5$5OeU$@A<;Vp0KpN zqYEY-bK@4YmQ#9NS3?l&gKAQ+5;;=OV6SqW)74zB2mQBq5#uM0ewy%oaJNs?yc3jr>o*hnuoRBfvGq%)exz z5z0=xbTjcSWV|;%UtB^}?7Glz+G82_B*GOH&D!O04V>^d%w7luYj59$mwo+vNibULMiyhVWi@O~CnU(&H>Std#*FmItOoIr89JWIgsnF?|S)!=P*x6a{c?;$) z`68%P!##zpt1Nta#*JG^3;n@m8Xu5_?Y!7uX86N`$$Vi^_R+S7ZT{XO{bE%{nT4-_ z3}55uS!)GU1c80t&8=4W*)m^f_dwU?QB^5dl=YOBz0k&{K|VLVldA}2%UErj9WV1c z6tLg|*87^`KjVYlN?j)5cB30ITMMAC5&3OpSQ#)3tQrd$>VzRVv?x=cxTIuHLVJ+s zKMQ`ZxtUsst+SobYW8=XThCLcp%$;@Gq9=w-1zuY!tO|UiIG~_g>f08MZm}Amg^&^ zNJ@W*bLLnSeK6@p9t%61jijN>J?rjWrD8b+|*U^XQCH zohdx-$FgXy1$KW5cpX&dL^i$>85*i`zV23LA=hkk6cVN9X6}su>yZBXp9?bu_7Q!hn=J+@FCF1qo(@ZCAJ{df>z`qmRDJ6vtJo(61K7U9 zXGN-2U#>Z%%T>S_sp)UHfo=&zU7aubm;N{HjN+zKH;nW-uZ!@^1OYX>AQZx;~k;Hf;Ipg>TQextRpjc_xfi?`R_A>@)Zq!4y@1vqqEe zR|ty`^;=fS4T)H=u$hPjN5>0B%>5@wh39U)jmuJAjy{w;1%)!?$G|1BwP(+;%~?7H zX62La3()|za)NiS3sreMJ`l>uqkYHFGL6y4`E|_SkQBErH+%p!VRuH;FgJPNexg%2 zS^na}WHIfq81Fn(z^x#FnR;Pz$N~3quygBgE%;56`Mf)e0Zx{aS>Kv}>LK#^WU@Ys zLe}TQO;^o|$N&tGudlp1cOu|ST3JUHWRX0PW%z3FlWvs!xU0Zkr&j3P+7O(S%!A=> ze2{`!ANdhJHFK>OlQA}pW+8{t5PM$RDU|Ya%kHqDJ9B7ri@E*Dh?rnuYript6p({C zJ>o8yO$M>;=u}ERZDWLyj6*BpKgJPJ)i}b?PnNr+6@qIj9D_x};W2^AQLUUmh zuD3F^C0A^E1t?B`MlxMBzY4v%*cfhHM&V|pijY(j5D0F6)cu5gK7W)tMOJE3F`i-^ z$}2XL@2q_)#V)0+Wj_)c%ByI$*es33Q;^a)EP!UY+!8}PHF+^Nk8C;7_7HVE3kJGe zoF(P`q+BT$4HrVDo4kvSQtfAG`WwBNY7^y7#V**mqn^B5s(ZA#v3-;4x1&C&rEq0j%l;;1k)MhJ_e>^OLPU@p5W-rVBs@`~b!YN7VcJo)m zzq?jix!x@;F7_D^qFq@DSE(arcd&A_K#1rc6B`BUwJf0_3q&BhQwIiE5-9a-&>eQD zCv4;;NpGI7irSU@KJmhLIuQ8Q#yDye2_U*$7wD~Gy(OYs z+j$u_a2ILkNQcENBFExb5Hz1kH<~@TF4KXV3;}7VJ8c$f>MDK!r>3SfxvJ@jA%Y=S zB8w5yAT)nM4(I)@EDPPznTr=ygKhC{d>?Bws9XQ=bAb>Z@>b!{Tv%VVCOR|}d~st( zdq-#Gkl*H~7Iq+)YkIpUDw+964ET{%NFpzIYV9MO8mIk3`sGc`Sahz{ULj5DZ6Di)os$-&Na8hn9n$M_w3X2jhT9R z%rXma3GsF=VqMLIJl~#d3}?nH_yTtcj+mG190&O{Ypgqrd&0vGf{nM!Gzv2zpEg`N=!*T&92a#cJoqTx(JT!D<7Ve>}_! z@#k*M6)Ge%rhRfrl~x@pARkE=JUk@?tep!UR!~)G?i%vBajOiaFM0*GaWcnS0+G~WnP2YL7w(A!)o)V8;{_Jpnp3Q{>5YemHS2nZJaK0&T$i@ zQ5uEUHAR{f^7(TL}Cp%1V+;XM_+f z6de19yKn3Z8vBrhvvJR_iJuE3H`Cz_;&&y>D90fRXmteg8J)B-j>4X6>N-Li_0fnh zXDzjN_fe>JtR;@#KlH8DY7A);7h^-6k`v9B%7w7xpiW49lBfv3Ox)Ba|@(MZAZq_U60(E%i3%bB1C_ zVr^2Ri@#DEoDHi!+f-cufj{{Vp3dg=zI){II!$|RcD10mq91U%41%0`Fm}i%5mAPF zVHokN;6@rU{z@8lGa%jJkO`IA74Uv4u(l%L(M&^&NtRcPg-Nf?ev*Z1aHb++7BLlp z)4H-^26=IM%f7+*rX_WZ8YK=q`@!e}vjz7)&2+-F8xMRRnK5$%UR0fiwf1A9mfrf5 z2qQNymi>krR?G9bnw#k#onSrLTj(=LAhw=Np~tB;yh~09QB2azSn(Tnno?eD>{l}n zu0^#vS>_)&)lRrR;>(Hp`EjPij>P;V>P2Pm#ml?{Cim^H@%@8}B_p9CNg5XGM?2J1 zlC%ECrEOlLgn{w5#kFKz0p$#;m}DTb=kL`CzkuvP;uEnJc~1YbB4vn)2W#H6B3njH z{D+w9))9zV6M>lh2xBQknAq1Noogi4co~9EzFjg3J=zQra~A zC8+l4>!Qfa2#TTx|NcGKYNMB_zu=iqdLJLJC5Z>;W*&Q`^YaPg`CTeOlf_3&IM=C3 z(T{=bm#ywrU9Cj$h__Gnp>}0RPrn?F9yxe;+`UnpO=RpllKvTAX3CDQtehzwl-BPy zCGm7xo|iH;j1R04GBWx9C2Stw%Uuxh-{n<&7rKi<+J_FbIDQDkcX(zx2wsWxbDvIH zif#9`(04mJmhD0_c?`Ys#vM^{_7T5t>(`*6nZhuYOmMy#U)Dz>cNooCkaxr23B z?&JNlol}taa{Hz91mHq6-(`wIw*|(ZWsL=J1s>r|j0iM>=+G%m$^#zUuFtV-A6Z8z zKpxlm_683=-)|R0s$Sp0ba9I4;$2gl+#BtC0<(k+A9EeYEeLcpG+*?YM zNUXn=k}>Y^yqd0|6$P7l4$$sCGezrSpX}ADyNZtHRW<{aqCNwc%@NPpcJhO}_M4^_ zsCMeCss|IFUcp3v%NI|d$SORE;H5wes9j`BP8{dO3GCtuiHVVT;w=WJa-*LLS8t(c zW7Izs&xb(qqhDDaNww6~r}88t`aU%+l#AL$5eOlVNtf~74~$PUJ>NP_bzQ5UIG!x= zk&uuinfI8m4b?CXg##($WV)B6GzuliRgw27-m&oB5U>8W?Mq8(g*PiMZ5uGuTT86m z`SxI)UUME9wqJX{!j4<_mQ(pt79o6Zd+sQ?6dm{?>$Y`ob=JsEXmiNu875}*_Zgb! zz@7h0Fa@2Pn}gWQY8uqI9WTtyX{$}6tSO2QK+461;y#M3|M^^KH5ts&up~-P=|sW$ zG2iTP;r3B4iZ44ot<-LoZmLJ$>;z{C8WEfJJ&KC5cZQ|EPZtSs2arD>?g$utR9_ItosM4>{ul$4a_Yf)QUTQf7W$wCDMJ%(cS@=dwHtli)B zH5~9^Kd_Rc^4wlk)hj4RQ|;6gUa8r|WrTf#=i4;G#;qc#;*}{Og$ErWUjJZc@Q6AVG|jE9-edi?e}#!bXVx+GGavw> zdmN6(5c+MY(W#@Oqp%Wt>cgEB5w=Dq-n+KU4GSu#hKh?vWas+K+NS-3TW>2-4^guf z>%H5Vh;~77ASDU~#e72?N|o2Oi+Xk_|EPzOt8vNgi5;ONgHaLF!;OXK4eVF)YO5|I z$hm#CqGXM4qRI&R_~^ZfRal8G__I7OygU!hRE9A(y*J36SNG|gGNORLp51}f!w9iU z3swrh`}C>N@Vq)R1csW;-Cl52Y155RZfwn&UKEo+pKfnvRKp6?4xbZ>_!u0SNZ$Ru zJ>OI?cvVa`2J@D9V!K1Ia)thv3S}h?mkKsR9F7P!&|Pzk2eGw&@}D>OKcNNjoHsi_ z&^hbU|GDT5g1-D;>`J^G04O&IN*Go}m~db*l_3~MOGq{feWF~2=By_e0O_BYm_T&l z6a?^1+gb#Rl$7)=83CE5Iv)QYn;KXU8(|A zS4|&ND_gldn5bz!`LI%5Hd`Iuw2F}fehe_C2zgHwk6WWxysyE2dXm0^!A;eM>EMed z@!>+*tO!=L@ch!&hOg>>XaS0<)X@VXhYvS*9@mI2nl1Ye<^AT4mOEXKYjhxB2C;+?ni1x`GB6fP=# z)X76)3sJBRtJf{=X~pC14%3broUhU0+Qmqa;4}-tO)9Sv=T`{(XL_AQm?T3BzEB8!AvzpQyz^lzV-Ao&2!c=4hl( zkF9a@y0uNe{5?BFR~pC?gXZ;^iP|HuN`5_Zo)Ox#ED`METqB;?y3+>s`T4UMEA8U0 z{SYC5k+|tFuMLKwVWN>d4&syn&wcQ=T5>;|<9 z6;`$tD(Jyh^4Hhf!~?vdJw-O+*P&$JXWf{{7a2Z%D4y;2NN2xv8$IMQKi0?!l~I;% zqY(CzXJ&a%SLx~C?GDSa7i$Yvyko9xOrkJ_r~IcAJW(1doSLB7meX)u-9bhsbKuk= z`Ju@BUe7*}^@eFH=DfaMZn#;kKDpIJ-X4W22@6c$2Pph? zQYkBH;Gm+!3IE-$<2kpP3C%NozRS4|8*86S9m2)-qcWI<^%*?)k?qnuAMtvw4_2tK zwLp*3nk;NQ%|8$_AL%C_!1l9lQ$kO70~>h*G0|Gv=`JXxsf#yY1@~|F?5m=mJv*4U zrxN3wz%3$IEvZfwZxI7AR^(-1mNT(O@3%sb>?zbTep{O;t|>oDLpa(?QM<=cS(F|$ zRcNsK;ZQ!6@AY(8gb{SzFU8Ga|}~qHelo4D!VuL(2L?PGj|W#i@@Gja_Yo+KLFYv{yxXE!Wf)d|btDR~i0qFfXN>}T! zz}o`}iX%nhdG>?vvjolbfi)W&-$?`xgF&3p|5#KRnZZZj?UNZpW=*t+QjE59OZbgp zMVo#w?6N9DRkD6_C@Jrw8T`{EI8ZzgH1XIPoL;VM1Of9TvJ`b~Om4HJ7 zC-U;pvW&wB_;GTZOAO(_bjFEdIAdNlqI%HBGtj_6w#Y#?Z`K#)MN;32p> z!Ciy9I|R2NL4yYm?(Xgq+}#Q8?#_Yf)O7L3snboL?!DJu_N{Mi)QcWj zs2F}k*Yn9hH|A%YcMr?xODZrA)T{INrZzTbcc?qvKmYjBQh!_@&=U6jt!IYoC*luc zI1Itc$p%0Am!_OR6*DX}gyG^TEBx%0mKYRoOsK)OyY2Pb1nu^w2@B35TvpqdY9H~3 zCYFVwr9r@kTbVluz89Tc^OLq*}rq}_hk zw_@w{)ns5d+XL(MAU0%GgQZ_V80!U#)SlpM(C5YUv@JWUp$YI=T~LqLjt|HcPe7f_ zp$dVe_C-;suwU4t};iU%wMX6ssTd z&-JW90QC0nADXpk4sA!_0KIpwhEuVt?=;(mVr}ZvD3Xjwjjioob=83UOu>R{Dni)d z*DNwqEHVmjMHK8CQ?d#sClxI%4_*2jSDwvmM&n-|-S-A{<(eDSJb4S-H}qt6f_M9k z!4pB=kb~>@a56f#4;rFGea~i9n#It!ny1Tbg1fZ%mW2FXC7GF@qsfv-C?ulEB(Ot! z3@U%%00QSP>_NvO2$}IF1^I|TF!e%hsX#uRFpN*BGR);DUvI$iuZtr}az(&x;&=!R z!ElppvOetJKjh^N9!?E0vM|}41{W{5^#oIM1{ZQdE2kOA+G}UdZK^&yH?a=Rmsmv0 zKG$qX$BUQc9OE*0OC+!{nd5Cj2^NSL@5TWg-EY#6yM+64KIW0*ADEXx&Y4L)N1CW_ zQyU%_;b4HZ#u3hMcCwZU8?3l!=z_E#Da*I60`@Xtnq=|zS%=501tsf}ibAwgF5IF^@?!>=L73rD$ACK3yLlb=>8my7M{yn|b9InOVrs{B(7Q zCRzR|`zi{94KvNq2Y>mc$*pUcrnSKp-b{%PnYE#zshNuEusur9qOo?HN4mR2D(w@C zi_+%y!sF{_jzwOhsxMF1ci~}pnE~O9^+yVKX|&!wKkx?56ZB$)6-ul#|HhR64BJCs}1B?vEL{CR!0zSk}g{z+3nAbFEte< zAv^dkM66DZl(k}yI9A>}djnD-!wdw|hw9_J?*y(Q)NjM!Xtnli`=No1*NRF*xDiTd zs z?DVv)fthSEx?Y}ABXhL|*a-ZSA{ew=`uXP)DIW>v?$R*Hvc%J^L_h9=@t#W47o?`= zhMybwT&Q>7N=!W-Zt6}^2Rz{lDT7vru!|Q^({6Ih?eNv}u)+7&jOnv>4qAbfD(A?R zAM4z=r{9X@gyOCxy0|cJW0W{Ycs_X&ES^jFnwcKXHrw9beCe%aev|kX0OITp%ZBq3 z7-ss=;1d#pj=g`cuaH)sm8`l`6uP|UQ#kh32DZ>YHBI*g#x%}xZ?NNzQyK$ zr#k;LafT7oI#8t48St8P?MdJlFGs#*ze2DiEyjKHoMcd8O=TbF4GcN3VM@4{1EA1B?%`E=q9xHdHqy`5GdvYXTmjh*Rj|B2U zH)eG`qJ^$s0lur|d;Z^LjqHDyip@z$6}^-1<3scx@5@x*$)+}6xJ@_MUB_>_oSO<( zU{{3597G&M@ilv#r2n|1gx!u)##p0n<>*^~()6a6(k>V^xCjl+)%y(t?as2qHv}8aYiBZYe2}s5r+-a%UL!GaF0PO|y z`NvxE#rN^A$!8;gAvS=X6Y>+~HhF8;57ZM%F?}%V7s1BOO0}PmXEInI3S1+nR<@#G zk~1-biS(K4m!&C^GK-MvTO)F#71=l+49LR|1!H4W5-HRL7vibH7y0_#uAupNowix_ zNPe!in_V^LnaSxbQ~ONKc0#UCuF!zv%}9n)kMQ6~Uu=dHr6uay*_Dak4#GjZ?_%=k zB9h*y(x0x<)cxdXQIN!Q<1nip)S&?~O?J)l9GNJ#qU(|?6-88n%U1gdi)0|#f(V&) zIfaigi57_=X%!SS>nqE5R*M;j8$eiY8OUA}5hP>Zo9-HLd7+v1T;~+Yf98?SEihT8U|Uclg2e+*vM; zOsDxw!3q*E08xvbcp1Y9H6v#l12vEW0;R)b^NTh%ufh_$e8^ljnFZjY0Y| zewX>Ox*^o@6Buqn1L%T#o1Ynm@kicRb`=a~7+VU>h?S-6mIkLbBeatCWc#>%&ofWT zqYlZUlB7#edaJCVVPS0zLFIgTe1e(m7Pdas`N$kIIJ`BMD3lN``LtUW` zBAf1Q8@%2K7O)l$Cw84*Y{;Y(G&xd}yp7Jw`{=M^W@=P$ydYFiT<^U9oJ_{+xEc@} znGFT?*H*KhQ^;B!xfQ2eCq_4{`2R0ClN$^;q0qr>%+lVg6b zo*q+clB{p9Kns7huFuVB*B1#7uKSis5CR*^Ya)nCDq%SnFxz|h?)xW08K2Na+wMVf zZABum+yl3ZF zkZ%{=OKZnb@4A#+qo+4tZHJ6yN7GQ0{!oj~CtV>Noo5;KJ=3z;p4A|v zc61tWT;Ma=9pSIo<9P2N`7o?P-jH1jqrDxzNwIg^f1Q-{5Bl;yXZ_$09&exoDyyr( zEGk^g8$l9tgGn+MvM)zXTu2DMJ|WEt)Dc~M9G3PC6p)8SQ~uGPJHjGySMS+7MFlVh zH8g7duo10SgAEB-=l|UBHsN9M59LG6!=cjk7FiL`l$Ksw2#1%2+RYpTDiF72TN%~yHLXa`AMbu~D< z79KZLXoSPD2~y9`nl)C5W(!Q`&ybu#YM0Je;1vv11%);;1mrNWJBZ($ z2dTL{OU@Wx@I{$ox(=n8wUAe_J{jMFlHz;V3r~Ts5Phy)%(QMgtC3?leTA$CF zxfW+aF7jpmwqERI!jkUnnb$1M7Lr;2MPfM7?=!n1Quiy>0?;7}vn#{1UKa}(7b~ru zt@bb_lJc0~wurdNGI8fNEh_4Mfiy>d2{r=CdtpQ!Pw&=+ThIAr>Xq_`9MWUYXAtzd z6WPlX)bBa!J^Z{?ZR2oB{C^74@Gv1NlLp{lh^|I|~kO4|* zj`H$k1RCw1Aa~HaX2m-xp=DR&+qsx92fN6N?8RxViT0dxcVz= z?&W?4t$%srCRAwlE5(J&JW>&cU;2FmO>YU61=!U%Nxo;_IU?8)}XgM64XFrOe3-(1_CXC=)rFhtM9V}1uTtAW^ zWLCy~|A>!}rts*jXoms=2$-qO?>VeAJ-#CGA9onhPXM(gxAF?q#_%e4c{SNlxG$7a6k&R)l|g1-zLa8TdEUMg@*1>4_Hf}S zU5w&P&6f{l`mT6M-|ATS*+_zB-D%&Wr!00e5vGTth$GaN$$iV}fX{*L#gR}NEyKTV zX#GT9x`u*%o*kl8o{A(lLX&|0jiC4>o8o%b5DLLM1!e45yF#G&@>iqKQ*$4o#{DK| z_)TiF)8uebQ988(<$23_>QZ+NKNyW)CRuu2YO4g&dLRDg}DVjlQN>c66R zIU*-IvJR7!KFoByedxB|Uus~!d5Cj9?Ah9EkIxs1E?5x2s_OBk&tRNL431T42aMd4 z-j~sZpj+sy2CzxdOwoH1vWwNFGihC*{EhQLbA>L5^j`^pwP!Q%^0!I*=F?x(*(O(?o?oK2A1sn3864l2 zV-7Ri2t?dz{Uls-^2K*iH(h!U<&_fltr<;-)5j z?#LbfYlYQ%YLxrK!HRErqzi7XW1jV5u;1^>#@r8x`K@!^@4nX+O?UYnk|Ksb%^S6i ziFXwT=~AR^mqnB+AY`Hq1Xb`SMF$i!d+vQ!$!L5>JtjTKWRE)%kgps(z~HhHxict| zi9hR4;VR>>ZKS>E(pI!PXW4p{nDwF11aefE#cf)ydWNuA5o*{R*ly>hVPs}L=Y|h| zAoW^`iZ->3CNBg>c(Lr)jCKI<6So014a+RAhpw^C+R0UmD49?zBb0d?;-$qc6Hbhv z8^;BX*C|D#wx-U5Ag^c6cq4;PfPD;`sWqm&oF=+uEzrI;fg* zoDtKE4|8x+YY(l+#Zke>>*w3#@jweq{fYH%FYwJv6pJk4hI7R|R|B}3t`i1g_*)we zdG5yUKW`oc!k7{zM;>(yAn_*}vu7nd4|RMlC^{dS+E5I2vT|}n09=hl_>6g9JAiF8 z>)5}vlEwpHp~QvoEm^Toh62Z%8PVsP@Q@kb&Rcv%VRaKV&#mvN3P~C4Ra-v7E|qAd%x#zI*EaWU$h*dZ5^ca{ENuL7d<_rI@owOAzTC1OHl7V2@4-;dG$A-eTgviabFzQi zfTfIk{aA&PZ-``O9pu9)W#X}4ZOpFX=@wzDfE}ZyrINd7ID291i7Z|q!CURTO|)KU z&}Lp&D(z(IRZZYd12ujxG7+<{l(uBM+6V<289UIxjO^ti=)u zU!slF8T#=!PZiK6;k(E(xZg-7MPUn1jPS?5*k5?@O^i~1eZELsuGQiBMm8XZ^L*7e zVj5dyciMgfymMeLP=2{tuj$hRBJZ$cE#g~ z18=GXGH?;Lb{)gEGOBufcT69e*KWt)`WciO^~AS6EC(CI5#B#zV+9u$%~`d~eEU?( zsAz4C)G)QlF)qI-BLMPjx9NKdUf+&0H*8?uAH2wOx~B#WYgHNKS?^SOW8^rE$rtWA zi;eT&R4fC#lYLp0&?75pReOVp&tM2f%GWwLk4Z93T|e&9<^AMYS_g1o(*zCr&C3onfl z9q<#bj4oyC4E}>9H$-%0Nd1^gji%4v-&AEPtcD{$;~~zD&q@h@YPh1B5f&q`keV8s zkxT-IC(Qe!7de(vTB!j+UvA&WDMtje56vD~dFmG1DW#|oV14{M830hk+b)lD>=bTg;3D^nO1o$63HY;w zo~|Ef0KiHU%|#o-XYO}?{+V4Tro`w7{`N^WOew5n(JZ7zCY@(A3lJzYeEE*81w_;u z!Vgrpd<@LZ%hid)#e(FB_H+oBuj5=lnCI9<-G;+Q9+vef&mJy}DM!a^+;1!hA+XMb zZhSCIQ#k1DU9=Kh^7v_a&@--;G}`)J=V*UUy>Vl-wmTx5(s9-ZW&npp_hk#diXRV< zDz9cvX}9>Z+Av{)SC_bY$M=W|sau0aSX94GD(CGPF!FkHlk`!4f)$?#Z^KbzxwyI321EjkBq>z=3PAzV4x0$qkQ1yg6Jo)q7 z&iySFwN>k=N<Xn#!Vzg4n#oQ?Wp=D?=~8<4sqVD_Y9l%K($}3+BC3`8^x*|yG50Bv@wTOl`6j9 zWo1?3AyzB58YUf)khG+F7kaG$@wc9JxyfonF)qxbp006WGK2ws<_X1ra`p0MK~=lT z-pCFyeo2&iWLKn!A1Bd^7ZOM%6(!x}Y;#9zgPg$@2hH*3Y%rKC#50byGu+#QJaEib zD4@fuQ{yoqp*)_43^ZR7eK_@|M*@*78%QLqHdCHRCf{^$=CW@lmD7a{F2 zD%aI_TuheU<}#zTC7y@@`YsM~r{Rge4U6p-eDj)c`YMB@b`rZL$n7;^T{on&Jmqk( z03a``K)h4lxH9NQwDxq4w^=r`&10&=8frX90OT$4XLgV-$Tt$%#!AX{p z$!S~Fdyd8*aBk0W%&M=qSs)sC5r$~Hu~YEbuXB*eN2MfbvOXtyncq${lOt=#UNC5q z!L#XhkiVsAvwQ#aI5?(laC>Mf4UI170iWve`E%jS7pKM5mp?IVS|zu)pv@IEhAm%p zoOA4SiEnry5F}~~(mVi@jfiq=kVSEKm}1RVMRO1#h`Va}OQQbB9)1qs}D9 z_Fc9O?^-jtpQAc4Oa@cL$Vq#B$n*)vUJyCyVhljgOaHFfedg#pJ~@x|>)S#pFP2G5 zVt(`4xK(VT2>RHsj?L0)i(;W`x44h$;~Vs1@Rk-%2*0>;p3JdGOTV$ANY#$Dzzz(l zM&3{x7vejrTCbv(k+zpFcZUhyYRQvZ)b3r0)YyfEP z`gJNsS$5ay!oAepTwG}Ha4m-sB2)85FrDN7B^wE$i`<_hI?<}jNbi|La zYVD*4T6r&L19n5-m9-u25s7M6ljOd$@q1h+_U99kqf+M$aF(FlU37K^fo+2`a{XM4_CoWA33iQ)LUpB~@gkv@5^0Qn-;kVYuHJ#_+dKRGAu zG}y?06POo|37ws`nU}btWk*(-B%9`uzGQx}c+ORiN{A{oN?#mZtZ^@MUsax1b$4^B zxdGckd0UMfI8xczx^88HVwK_`Gi7)a{YIsM0(6!QXW(wTp!9HS=}6&vA@*c7Q!ZY$ zQ!s`3BpzeIf7&%R%aq@?86GBj$Zn>7idd1Ry1kI636r2A9X#Q~;BNYAk2%G1{8%{4 zCN4pw-6(ja{Zt&3QIwG~Zf4r9b+L5u<#YyCPe(idIv#Z zo5y(U`5ecR5M8*Qi0sg-9Iw&r7iS=}KbW_0TM9Lk94+7;c`=@FtS?)geGT`bQ09DM z_~7s%Ld)wWD>a?Y{g?dAMBlP_z=-8)j|lyXIn>zbz?HeQAh|LwX5Yzn=?e!}TgXRQ z_u<<5@@h9mYIG_b@;>7)71LLXGplq#@~ky1DykoRvX^usm6b^00peI0E7~tV>Qk43 zz^SV;DJAM>_MMY67+K{WJ6_V|f^ONzMnK9b+x^9N%SO=3Ctvx3qNJ=$-sGa^hJg>@ zHu|sn2^B1Ize|sh=`RS|<&Zh~?d`tpY*oe)T!~+(zAG_WhnjNY!e+J_f?le#NdZ6K zUbV%geX}>YA9~9qMNVA$Hra*j&^js@-Cg&zvEr2lJ>Dv_QWA< zH7N9t-`Y%Wqe6q`tQ+)?Qjy12(c&(-WTxe}9cz(7kVtato{x13Z_s%*3A5YwcW%%2 z=*5J%=m^RlFTThe6}H|6D4Eb75R(}=L%ycZ=!FB^U=lgq2OC$H?5`U)eRbMf;#I5% z*4kMKtxhcO9bv!$YR5-b1MvFn4&5xIIJ_PjR8W9m*KdW(b3<85N>*ssIvciyN?7ch z@{fLJqFnaXDe0a}SvmLa_WbEVzE}Y)FDg8G|1gW1U zr@4zTfDEhUnE|zhObE@o54Bt*hwFxp4r{i-w9^)j30cJ_ts_|i9Txs>wzJ}MFUZM} z`mK_G(s!Zq(VgHAj7q0sg8!MCaNFcA)=&8R6f;_f+EP=`_Xpl$Hds>ly6rzqPq;U4 z-FUCQYP$O``s`?);;{zxMe?UymnA#%zxN*xvOMe}8HqZ!dd%4AzflUL-~GQ!20FlU z1VIGguTCQg*h!A0D5s+-j-Cid*8PBhJ)krvuiSZ_j6gC?!J^9Z6U&&4zwlMnI$}Ej zAdBEgT3KJap`_EcHbJO3ZJL_7;E=%-3F63GG~7n%-mlkIN626B+|q`Si2C?r2Hu(J z$ua;+*f`12$mdwRFSNuAJ?9A+_bVqmwhh}mnz`Of!*2v_yMLZCbUXHVQ_vKFO+5yF z&~d0x)0ll%Br!XA20Ojgn+|Rm$zTqED{kBbWQr|GQJ zUZw~2yp^k;`mwJ)#Wo|sKgD+3{d;Zxk7AVn)QaUsn1H78!TRs(D1T8eE2dS`ob{P5 zC#F6V8vmq$*&v~&gRqlDn=gil?)x%jvDi7PD>h{q=-=R9sMBAg;4gq}uUfr`HLSm6 z7U>Gibb zRSD1bWF|s=CRD^r-Qi!& z#Bcd+ymZzfLqC^_3;!cuQBYs~y(%q$695pF@QYU7NC6E%PG)#5-s{`np9>n52a%90 znUIx_EF*<+2t(;Oibhz63MIwMTSoNH<0QO{R&0!;ZAq`NsrFku#C-Rjp2|-&)po=v zP53br!yhJDH?71i^ed+yLa%9{rROi24+9|!UVW#Aju`c_OQbIPJz~4@abFJ6H0zvG zTo1?71qZj*y;|8Cyj%>FGU_(=1#q;Nt{`Kk(I4X+-}7mu@#r|Uc|xR3)s6X z7wFcqourn;*jscp!9*33v*wJq+#c1wemtx{hkCZACuG>Jyj7}Fn)M<;0+2@z&{fx0 zq#*5dMP)@Q*a&ZvX{)CLpe0OLWfrd?23w6&eRH2SoC!INb1a)x%g}RmIWfP{rCggCY{`bIApsTaNK_CvbFs_iS7LB^pD!tvM--5 zUfXlG4z!OR^g6C@w|8Fcq%O~BHgYtF<>wur3emQrKjsRVZvPibXvG}IJAXIzJ!zo* znR)!xhF5A0MRrPH9U+s-YUO* z6bu+EE~HAJu0mHQ!y^VLb=05mx%CS>wS@L|S3CwEN1Lm67UHR9#~wy~$2 z*Xr#;;r~Bi5yB8iU02&jtVD>fWMKZ1Wg29-F!ABmON+B>a$JR`e=rJKyy}B(-jF%S z#LF)EqM#@$QQZCB(!+21#~CuCkTQjCqw-{CHuXTPsVQ~{HF4v|_rCfEdFB77^nro8 z)blHJ!I8E5$uWNnv0#ypD=*?~#hD31IA}1&bU|K_t4m?umDO@Yf96#bqWk0T^GI;> z@m^jJ3cI#%g@gDi&MzlF?1fZGX2y$ZdUQTFv(4&s$M*HURl8v zlInBRdLg{<{apL)2h3_NyEiY(>xYhe+Xe}=MFwj#6EIGgW5>3>#}Wvc32I5B**M2| zeAk^>^lYg&^Sl$&1?lbAQ9mJ)oDp8Dh=@Ng?^-UR?eQGdJNk`?dZmmVjw9g!0p$d2 z9A(yMLAq$@ue!~$d-o$ns;C7GvYMyhmUm^FFS{BZTIUiy`omSUhC1&Z@asFQwNfqb zZ@O?w2zA)&RVS0bHBN8#1h0Tw%<=0V4~^1p%z*Z1q&Q*4s0ZGV2HMU|>tzuP~F=UGkOZf@-HV4HmRVq`erKXJ(uHNqv2smN~tF)g<<)gPyW*|XE; z->L0g>GG|bkB_b}Bg*`1NVPK|4wvaFY)QU)mrg8ppD4i~2Q@TZDGoRmHFrpN!J?|Z z3;YHTP!$af7fM#VsXNJzwccGPc{UeZWp>7#eK~Na*%Qtq?g$EAx!xqIcPN$!kLbb~ zWgv(0k#`~5(zj(97kLL}J8ly>DcvVR1S0V=v-6b=WAGQ_cNXa}Nv`zG+aOH%OGG0Q zmh$wi1GQb!SOoncVAns9jj*GlSJc|9iv}@lb1YO23bM+A%R~GrkclmcC4OBAx+V6J zCPdv1{u~Gs=&i4k$Llyxy<4tbrb3k>FFXp_u+x1U->tY?)KWr&P+RA%@6j^OxT$~0 ztc*|;5u6|S&}HXt-5&C{jB%PP$8lyq>;;8YbH9YO|GpiYI$A#bTBJ_-%g%k=Dv|WZ zgebv7zRUP470buc&A%W>X`oB+X%76lJ z+@-Fzp%ire7kl}Cp8i{W`4jqI@#P#$ysd-Lpx0svof89Ir1Z>1oLI+tu{tqo<#aqz4HVg z?Y|c-TxJ)#P6(q6D9S3X%=)1QtZ{1oN>`VS3$EI=p-aF7 zzC7OZXO;KKDjq3@S(aWVjRPz9z<3SGXToOlE8AnX7tYbW>t6ebd)uHDBm|w4--R)J zZgX3wOnpRJ>ojCZ6}Z-zH-C|H`1v9|2C5U;_z%C4uN;T3#U<=wRC zt?X5l%aet!?A5(o9EWOD&vkD427f3Z<5G6?J=l=;L*CJI8&U7QTl1~sElNt&z5Bb% zmDRn+-+wE4VR=l4F50sXB8WGB9eiv;0^fO&?L$Q2%HwJ%b$g5c1bHdA-4iK2QTnP< zILJMF&(Qo91G%Kij-LJY`7kbcXN48YVbMiAb!+|oohbbHv+|5X@`=rd9T2PgM zrd0HFpIoDIG6DcU4x z6)^>6uCp5Yf0@QMRaUYkkKYh(CAl-QB;+~J2jO@;IGOZlHyg4zD$?_!R=5@wNm^$F zK|lUo{&MeQJ|Z8f+fqd_RG6N(Nu8#$D=Dea%~<8%4=#aw6R9LQ89o=tV*pga4G>py zXdgX04l)3!nDKwY1EKHQ)P=t}i(_tCQPbF={lO1$Z$cae(8q|j2DMOSW&&aK{=YN0 zM@g@ZF;HmrHQg!u{!Tvuk7;O=?j$QlT1)^3Tex8sjc0Uu0V7L~o|0f#gP3ZNl$Q=;_Xaf=#SSIBAuv$*!^il8IzHpR-^d0=6DZ3xvDqke}cd9 zZXI`!@ietPOT0U~Rlj@=JE;AmlslBMg3q49m51bstyYEjPB-8aJ#GH?A!t#$gnDPg zH+mi*M5`>$e0gw#BEPL1!2Qg)$TMX&B|U=ZDRVQr`|E&D(>X)pq^HuUO0w~N8ZEqN zEV^B@4;iDxv=%y4zoejuhO#o zAxaVIxvXmQtf;TVGVL{wd&?MsbdqkrXrp10>DMq=zzzMtYAhOlm*C~{bVkIEO1m0q zR6Z2x1)i3s|A&H|@#kv~#yAOmO4;NFlVok6;xK4BO1^Ba zDHq220V?N>r8f4my=H~2%c_4ld`Tm*r^2gAy@Q+5?C3e^`FF{b(N(Soa67W3`Cg2* zF+a(}A1pc^a(v=U+nm>6e4ZwX#=Ll}ST+{}pBG1}w4mZ@Tx>eh!WPx5QwSYwOQ-Lg zCVMeCv1X7pWrjKy9OltxAY_W{5>oI$17Av<)a1{ZD9>9{Ln#SHGyHqYY;Lsd5}S(F zRy9@CHB|Uy-9cc=e6dJKMqOWryykSeE5sE8vUWiKf?3af*PaQ|5tv4w+PYl2T$~3- zZXH~)=7wixWIHp zys!2+CnvpP$yFbaqb~Cc4_B1J!mcF@gWoe0+@<6h%({cwDP7siL-ddPZf);~!p_#hhcFC+ce!txi zv6a&MQK=8d`)HC1(9?W`w6sJryd2FlavK_eQnRQTg%*u5m78(DWurxha*@-}tnBH& zYr=;eqjID2t%LnGlIVsqI}$PT;}<30gZ@piE(bE8!(=Y`N}}NK5J4?0NA#lnk|A-@ z!-Y^>Jm|9!56kL{t$%4J`S-Q6h7fx7V`N9-`{^nr^(yc7vimn$bdi9ddZMk-ZkEUo z!u*_p5S!(p*_z7fVmHUbs2ncRP3jtls;N%Op1<52a0C&SgQP1W7T$Q+FE$L7L1D(r zUe~#`@sW1{q_k3KNKL77G)~OyWKh6f$@sDZ(Io;t_At zdqTo^z<^UiUqZf)TEi6-ywA8J#H0=!E+q)ZN28Zxf5YFf{%N}Hs3H99fiso6!2YV~ z&5IkTo=qMVrfKaL;&|~dW)Of$HoYB3kdfSUww}n0weZF?dy9vCOm^}8_u|%z-vzP$ z`CM}`xR;FD>ic3@L^P%knIG7k;3H;>1f}|@uh05f5rx-{kBw1EumABT-QKM&I z#18=Wo?4lMPCz0wIQI?@=9L&wpcZfT;6nif;*J|PjCla;g?S4mdU`0IChyOVc9MJB zZ$T28r5E2&3>qN4J(At7n~!U3Se~vbd(;c_6B6ml zG}udAR4~&mkH`FZ0pxr(xM<^jfot!s)0@U!)Sh;T5?%<29^{HvL4?zl!2Rkdr(EA` zeQ)>BY8aLp0QNZ`_j)9t_vX25T04au{WC89JnX>u$->ChE!g0j!ZBjR(j0gk@{gxh zxWz3OHm>S=r`!$d{P6$$Qs~f0NY`q&S*POggsjsuncU(emii3(t`UbN6$AIWqg+w3 zchbjE5Zhk4TNk#SXHz==@r4DQV9BS)z58!H*DMg5p*Jx}FqC&o zf+rK&2~34x2R6|Wf~kPigs3@jrWpYfnFHe&sGoU!p?n^8De{Mp_r#BuLB2OB$$MO# ziUWf)D*N3svh`)N?}5d|++_DNiORT8*k)PKdJb23`S4LlzsokErV0%X;UR)ZFO;ob zC}TE3G_C(h=d=A*<51LY8P8zpqaMX89S0Sg)^+2_LmnFpBy= zKB;_@NUiZt8oT?9DoOs^<5|LeyK%6Nkkim22pe}^H^%Pv;qSfZ#B>@GNXwL1>Ka!+ z*=Bw^Kbp1NM$SB#oDdE+JzW8#mX6B({q9Y*1+I&vcAo<44hZPn0wawtzavd~lA9_3 zpctl{O{|Ux>CX!oamqXV4K)5&jvn@3VENyCzrPWuh3CUTycYS)EL~4N>TWiPzead! zTXW=yFpLvTPr|+kT4&5nE>2I4O(CDU8b25@CVeJoFG2x1pJm6BQwFb8C2GkJk%kiJ z`M=$L4P7py{b%@{%nJ4pm9Gv6r0Lz)ESU>q>|Q+7aVB3AopBUB9DJS6_XYsm775|c zUsQG$N4d+#3ZsIPvTgNEE({!U29?Eflan{(8V7i~S+eDJKKjMy`Ea)0)qcN&pC}CnfOOc$>p5L0 z0WysH`+Humr@P*8{7@YFG-lJ$y@_no;a>`BYHGJSk2lAc7Z(@T*UK$#4h9BUk&%%f zhyYwpdm}9^EjzpOr~6A!Pfw5A6JG1Z8W(Mjdi8%{H&`lBl-lMYsxS;G2~{ws#EK$r zrRvpMy1(u|UFbU6-gep^!~(>{#r1G^Is;wI1N;p?U*E~8se0Shm3D9M9wb@SavjL(%d^YXo&pU`G5_;j_Kkf~-pkYFSPZ2c z96UT40oU~Gtct4Y?P9GZ@H0C4L&6XN0fB0%Ms9hz_j+eQwdok2>sf|ODRI!hWXo(o z7?RXtvWnx2{z)x=xp(#D1N&_i-TeM-Q9?-xm)slLmBjk`+i-k#BPMk-v%UFBLvYx) z?C(dC*?D<*4szeKnEeb1K??1$cXsxAxS|I3_V;DdczQ7nG&U9%tLK9w*d$na zhK;=q8w^VeupHS=UgB;~3Qsge9Uu0GblOKxJ%**1?$zB64kMpIDO|nOfrEp4czBqY zm;l>Fg47E}Hnuj;$D34c7k6;L=#8zNKC7#%(|NaX-LL)j+uYpr{Prz2E)Gk~Vh%-F zL7}jys3^H>XCyg0D+?ML8r;hQ2JrIox;vJV-eg9m<{;7(^bDL@3x(sY-Y4P>-1-rd8 zXq|L?hoRSM$N+yYFYkt8?gSjw{+}fIvZ;8C2L2Hdvdc=~a|Q+mIz_5!XxJ>(9UsgT z7psqo5ux^}tgI|voNRD#@a@bIH%Tk)Kc0hzAE^uxZ|IQ~ zk6zJZyqyir^$cym$0lCdK>9tG7KxKRP!b^z*Uykg7@zWTTd)C5xz06y9^P9bBJac5 zQci~*WPCO&@QM&WEG#UH;GCQsqq#C|a5R9g&rkQ$(_cceHa0h@Log6tDHeW-;$UDn z16QOUJQ^H882NV}#I61}japt8TLWw}iOByHObeV?QXWpvRShl_0C%8L8#A3`ky8i? zKwO-1z0EQpK#cBqID0I!@m-5fx7K0?6#qu86CB-dj0W95`uoMB$*QZW9&V0@HqXJ? zd5iY2wx&l!M8wKk3%2j!bGs0hk+BA!Ekv5j<;2R^Sb0gc^6Pr%_E5s=XM`AArtz{K%fUr-Z+VzQ+1n7!O!w+VL1 zS!{AT^w=Ry7+PLlwq0qtuWSBA%>pvk|Gg9yxZndrR>0MsJL3jqWM<6`GdB9m}(x(3%B*kY$$lfjJQuLh(o5~a|o>t)>hAp-KmF)F5fb4 z8eV{+$!a+}Jw1(!kN{FACsA8Ru&?e`^g*_UmDl~s)idKD z`SSYjVcmJbLIPTXOg55Ms-3aJRVs~`6$fZMcXlgG%osSi{_TrJS&(;1nR~(z(*zkF zOXIaX(VXiS#zkK7&(AmYgY=$Wj+?NvQTk?4f%oxD(gE3K-WyaQ29;@Y#Fj;_ zXSSCU47kKs=0%TmcMtH>*erLi-N#lHvd;nUTLjOI6*pXN3&z^^42pY#%EKLBhbfR) z7^BGkssf+;{2>7$Q%-nURmhhZH&EfJ9V^sdXHM_<*fVX(KPpPWk8;c2&DsS|(zUp^u9oeao395`t>4I~@c?^F zLqkq=E>k=A`h|}_dY?fCf}jlI|4iEcS2ovz`xRX0EL|rh%3sYSvxmONL-)-lNMLuC zu0Q|v-|w!?7xtWRH;@5>Kn}}=y;^5GK82$fSzi#N>2QiyO;}ioMzXV)58L!V;hcCE zvPtS^(tX^%p#P(~3h#7umc}L7{iHK_2$XtBNjwHU0ZXim0DTCU9Z#~)PRDg*Ep-{s z07;9ECN!}-%Ah6yEriXnV$J)%b3aQ`SkhR1jRYtq{$EvHX*`r)8-A3vY=y`&h_aL+ z$=H`rwh57aX_2KGjD3p*0GK)N%I%kmyjiE)@j1n!h8JRFYo(&ncw{8 z!+Fk`bFS;U?{m&|o7%tH{y_CNnI?QqmxXExn=!c+@ATGu0Hh^|+#uH1zZ6h5hrd}^ zSO7C&thIFpRJ;h<{w)jvpQihi>9)xyTjK!84@R6bRiEt2iHbU|j#hEQZ9V+_UPeWM zeXAQUclY+T7WmT-^?71VQIN{z%e^GhjSGnqH(&58%EI9{ z;cwhWD%vI|9Zawr8ygpP|fGV{v?of6BkV>WjRvKg7$qCr)m^yGX-`eRxz;Dkml zkR=6+h)w;k%%hOzVu3h`|vo%uMp{aAu^Lb3n#Nk+Q=)a04ODl^o zv+V|Dp^EYunV@*i4Gpw8=nJZd0g9WcZ#<030p4OFA|ggcM)GMWH#c~aeojt~*v<5U z+}v3*ITMF_t2Qu|Ua=EKl0R`*g z;AaPTjz>Dn53V>{AvvRCkPvX!<|N%>i-T05N)505D~}ANgpo z{rzh*GX)_|F0RF;rKWDgAiqa2$VU3ed}P-c2q_6_Xz3;!+SxU(b#-6Mj{oMAseqm? zu8tb+=@Gwl$t)NShns7kGBD@>8^U&tfj*l{gZW08B}iLx?f(-YE5t|}2FyovrbkPj znIG-a7#kRJgdmw;4hvsW&o8Qe58dbOcDS3c80OK}P@${x$A;UFVK8wO@M5C}PbG6TW`w_#pu4-VNI=hA*U8th(HK~z zFEoI^X+CsI2Ulnk?y08}GtXl0^30DAoL@K$6nvq!E-EyoRbYxxISkM-Ef&4J?`1_+ zH@&eH7>g9s6B?Z7RTIsIJ`2`v9#YrTWL^I<1Vw_S{Um!7pME@*CxJ5Lh&1K9b7 zd@B}v6!iS%W4=M8rqg16|=I*fLRFR={OsD)B( z7dhazg8RG!uA(s_RsScH^t^lIFGGu2=N69el$xkkY+C+S*y!Bb&-Z-EA!9V?Trdb7 z!SDZWfgUj*qcFyHOEA|*HK`9LA(da($$6}sqC%22Y&r?ZPo(0}BLA0gN6Dm{%W}x> z#zHy2x=x{1ec8fyh8?H<)g~Wk7L@g5dlDOPLjaewNhXMRapn1m;8AuQBlk*0&ZM>acaIT`S?cFY~d~YRO3TuNH-Fv~Py{ z>Xy`X^W;+Bo&BO^Y8F?KjCP5+$HRu~mw2q9#faey&PFQhAJjfDlYyZ5YGngN1K((6 zIA^fp*L|SOfkIUz?!a{_4sK3TaUpgUdjp-d+Q8~@e@*Q)*r z4A0;{b4E>Rp)@GJ`3^@pV36$Wlt$vhT$NlLP$zSmlu<;o&4RPrR8OADQhzuo4xgJbp!%YQ&m-$&nl<}T2O)%yyiQBgxH%3X9F>4^Lm$Z zVnCnXCy7zo3%n2y zgLZkaXL)!4bG?$TJTbHX(Tri2L1aHV_bN3&E7~q<_>cV-+Vfpd5JB+S_hbFpm$pg7c{lLGfk;Y``)MrXsx z<<->;ggXrCOhb?(1w();i6~hHVj!jS{!M$$&*9O+ioM*-+u<~!2~&0YDrG)8CZ;^B z?2@|e_Zeiz+8#~F9w`%Y& z7mtBtoV)n#h6O{me}eSI9++{_Vt5Ec5)4)0XB{3K1mdT-yxipV9A&KztjBln-T`6A zi=|9Imj>&)s;Nnh_XS8FnZ2F^r7o&!YR0OcY=CP9qoYep4`bfK0%lKbjRF)QQyFZ2G_W4O?t5y}_P-6?-na$XGyCxW`fMn_RUg(wjKiO;&m)QdvTgH7D zlAYLeS3{_5IZkp!_;Bmae40Cm3MdDAWFt|umDO229IYk7Y9j6tDw+Qu7aPlH{nKTrAOgh6#!wUDT6<6c%4~d8U8F73RJlsT3;D zeSi~12AoCqqS(YLVk3JZBOM3t(mwT)yR9ewINH6l`<;NuS)<%bY+{tG!b0JZR;~c( zd@-)iud!P|;} zNyx=$jJ!(FPsYy0o@MK-bc4?Cinbqz83+!rv{Jx{%ixb& zm&>!Nuf0;sUdcH#q0igi@v@MR_f=m{1t0<{bGsY}@n6%nQW5bY34ag`m&G&VGJa5 z+v)-x7V_}+(WQxg;G%OoQL_EkowVv38x8@1<}qwtpOR4Qshm5;^}z)htV#XZCyWYy zL{XD_*Ou#Bv+jJ$^8fwlkVXcUxrMtROhS7jk%}6!4Gwo0`>1~^@v>Jlek<5#I+R74 z>RBh6Ia(>Z9Ic;gi}^n6oW>^flwOxnovX!3yS_pW-R+P z7fC7G+8%Uz=R)LBwEYV^^98dyR%2mq?&NzCh+00D0}tb;{}s80o=qo6=s=Mt#CM>C ztGv8COxZV9i1A3MX7eTRt@H8nRzDt@mghf`w%L5c(Hvs+IIvLK# UNuTe7dnAya&Q0x-Yj?u_18vqU%m4rY diff --git a/source/clients/linbo/media/09-webui-menue-devices.png b/source/clients/linbo/media/09-webui-menue-devices.png deleted file mode 100644 index 0bb8e12a33bc85cb74a5ba67f06897616504a464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5076 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 U;{J=ytDgbDH4y4}HOsJn0fBQs;Q#;t diff --git a/source/clients/linbo/media/13-webui-new-device.png b/source/clients/linbo/media/13-webui-new-device.png deleted file mode 100644 index c896a2813a041015ec92f77e5d156d3bb18a1cd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13036 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 diff --git a/source/clients/linbo/media/14-webui-save-and-add-devices.png b/source/clients/linbo/media/14-webui-save-and-add-devices.png deleted file mode 100644 index d20a0cbee36d1d8bebf38fc5be001ca725211014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7088 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 diff --git a/source/clients/linbo/media/15-webui-add-devices-log.png b/source/clients/linbo/media/15-webui-add-devices-log.png deleted file mode 100644 index 919a43791323dc553d8a521dc1fab84cee6c38e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113919 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