# LINBO

LINBO steht für Linux-based Network Bootconsole und ist Teil der sog. 'Selbstheilungsfunktionalität' (Selbstheilende Arbeitsstationen, SheilA) der Schulserver-Distributionen paedML Linux (bis Version 5.1) und dem freien Fork linuxmuster.net. LINBO nutzt dafür das Imaging-Prinzip, bei dem ein verändertes Betriebssystem durch ein vorher erstelltes Speicherabbild (Image) ersetzt und so wiederhergestellt wird. LINBO ist das quelloffene Pendant zu Rembo.

## Ursprung und Entwicklung
### Version 1 und 2

LINBO wurde von den Knoppix-Autoren im Auftrag des Landesmedienzentrums Baden-Württemberg (LMZ) entwickelt. Damit sollte verlässlich sichergestellt werden, dass die in der gymnasialen Oberstufe im Fach Informatik verwendeten Arbeitsplatzrechner auch in Prüfungssituationen zuverlässig funktionieren. Die Entwicklung begann im Juli 2007 gemeinsam mit an das LMZ abgeordneten Lehrern, die die paedML Linux betreuten und war nach rund einem Jahr mit Erscheinen der paedML 4.0 im Juli 2008, welche die Version 1.1.0 beinhaltete, abgeschlossen. Unter dem Dach des Landesmedienzentrum Baden-Württemberg wurde LINBO auf einer Instanz von Trac weiterentwickelt. Mit Erscheinen der paedML 5.0.1 publizierten die Entwickler ebenfalls eine neue Version von LINBO.
Im Februar 2012 veröffentlichte das Landesmedienzentrum die Version 2.0.9 im Rahmen des Releases der paedML Linux 5.1.
Mit der Ankündigung im Juli 2012, die bisherige Entwicklung der paedML Linux, von der LINBO ein Bestandteil ist, an eine Firma vergeben zu wollen, stellte das Landesmedienzentrum die Entwicklung an LINBO ein.
Seitdem wird LINBO auf GitHub von der linuxmuster.net Open-Source-Community weiterentwickelt.
Die Version 2.1.1 wurde am 13. November 2012 von Entwicklern der linuxmuster.net Community veröffentlicht.
Im März 2014 begann die Entwicklung der Version 2.2. Neue Funktionen sollen unter anderem die Integration des OPSI-Clientmanagements und die rechnerspezifische Sicherung von Aktivierungsdaten einer Windows-7-Installation zur Offline-Reaktivierung sein. Daneben wird durch den Wechsel auf den LZMA-Datenkompressionsalgorithmus LINBO verkleinert werden.
Mit Veröffentlichung von linuxmuster.net 6.1 im Juni 2015 erschien die stabile Version 2.2.16. Neben den bereits erwähnten Änderungen flossen noch Verbesserungen für Clients, die per LAN oder WLAN im Schulnetz verbunden sind, ein. Zusätzlich können nun einmalig ausgeführte Befehle über linbo-remote -p an einzelne Clients oder ganze Clientgruppen (Hardwareklassen) versendet werden.
LINBO erhielt im Juli 2016 eine Aktualisierung auf Version 2.3 infolge des Erscheinen von linuxmuster.net 6.2. Mit dem Kernel-Update auf 4.2 gibt es künftig eine native Unterstützung von 64-Bit-fähiger Hardware. Daneben ermöglicht der Wechsel auf GRUB 2 den Betrieb von UEFI-Clients.

### Version 3

Auf den 12. Knoppixtagen in Weiz wurde Ende August 2014 die Version 3 vorgestellt. Die Entwicklung dieser komplett neu geschriebenen Version begann im August 2013. Sie kann unter anderem virtuelle Betriebssysteme mit Hilfe von VirtualBox und der Open Source Virtualisierungssoftware VlizedLab verwalten. Durch die eingesetzten Werkzeuge und die verwendete grafische Oberfläche (bestehend aus einer mit HTML5, Ajax und Django geschriebenen Webseite, dem dazugehörigen lokalen Apache-Webserver und Firefox) wird zum erstmaligen Ausliefern eines Images ein NFS- oder SMB-Server benötigt. Es ist noch kein öffentlicher Download einer installationsfähigen Software bekannt, da die Entwickler entschieden haben auf ein „From Scratch“-System, nach dem Distributionsbaukasten-Prinzip, ähnlich zu Linux From Scratch umzusteigen. Im Juni 2014 wurde dazu der Quelltext von LINBOv3 und den grafischen Oberflächen für den Client und Server auf GitHub veröffentlicht.

## Verwendung

Das Mini-Linux wird beim Start eines Arbeitsplatzrechner in einem paedML/openML/linuxmuster.net-Netzwerk per PXE geladen und stellt dort die Möglichkeit zur Verfügung, entweder eines der lokalen Betriebssysteme zu laden – damit fungiert LINBO als Bootmanager – oder das Image eines Betriebssystems auf die lokale Festplatte neu aufzuspielen. Bei nicht PXE-fähigen Netzwerkkarten kann LINBO als Live-CD gebootet werden, um so ein Image neu aufzuspielen und dieses dann zukünftig von der Festplatte zu laden. Nach Änderung einer Konfiguration lässt sich ein auf dem Server gespeichertes Image von jedem Rechner des Netzwerkes auf dem Server aktualisieren, es ist damit kein spezieller Masterclient notwendig. Da ein Image ein vollständiges Speicherabbild einschließlich der spezifischen Konfiguration von Hardwareeinstellungen und Treibern usw. darstellt, müssen die Arbeitsplatzrechner in Hardwareklassen eingeteilt werden und für jede Hardwareklasse ein Image verfügbar sein. Bei uneinheitlicher Ausstattung der PC-Ausstattung müssen evtl. mehrere Images gepflegt werden. LINBO unterstützt Linux-Distributionen und Windows-Betriebssysteme. Die Windows-Images werden durch Registry-Patches auf dem lokalen Arbeitsplatzrechner angepasst. Das Paket kann auch bei anderen Linux-Distributionen eingebunden werden, z. B. beim Arktur-Schulserver.

## Funktionen

* Registrierung von Arbeitsplatzrechnern am Server
* Verwaltung mehrerer Betriebssysteme (Bootmanager)
* Formatierung der Client-Festplatten
* Erstellung und Verteilung von Images (vollständige und differentielle)
* Reparatur bzw. Aufspielen eines nicht korrumpierten Betriebssystems (optional bei jedem Neustart des Rechners möglich)
* kann direkt lokal oder per PXE geladen werden
* Registry-Patcher, um Windows-Installationen zu verändern