Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
client:linux_in_vms [2019/04/25 14:46 CEST] – [Händische Anpassung der Auflösung] weg damit. Nutzer sollten über den vm_installer gehen sritter | client:linux_in_vms [2024/01/31 14:31 CET] (aktuell) – [Autologin] sddm: Session mit angeben simon | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Linux in virtuellen Maschinen ====== | ====== Linux in virtuellen Maschinen ====== | ||
+ | Wie bei den Windows-VMs empfehlen wir, unsere bereitgestellte Linux-Vorlage aus dem öffentlichen Austausch zu verwenden. Diese ist für den Poolbetrieb vorbereitet und muss nur noch um die von Ihnen benötigte Software erweitert werden. | ||
+ | |||
+ | Falls Sie dennoch eine eigene Linux-VM von Grund auf neu erstellen wollen, müssen Sie einige Schritte beachten. | ||
+ | |||
+ | |||
+ | ===== Poolumfeld ===== | ||
+ | |||
+ | Im Poolumfeld sind Dinge wie Abschalten, Sperren, Userwechsel und dergleichen natürlich eher sinnlos, da sie entweder vom Grundsystem zur Verfügung gestellt werden (zB. Sperren des Monitors) oder schlichtweg unerwünscht sind (zB. Userwechsel per Menu der Oberfläche, | ||
+ | |||
+ | ==== Autologin ==== | ||
+ | |||
+ | Da die Authentifizierung in den Pools bereits vorher erfolgt, ist anzuraten, die VM-interne Userkennung direkt anzumelden (Autologin). Dies ist je nach Distribution, | ||
+ | |||
+ | <note tip>Es ist empfehlenswert, | ||
+ | |||
+ | * openSuse: Setzen Sie in der Datei / | ||
+ | * KDE/sddm allgemein (Kubuntu ua.): Öffnen Sie die KDE-Systemeinstellungen, | ||
+ | * Ubuntu: Gehen Sie zu den Systemeinstellungen, | ||
+ | |||
+ | Falls diese Hinweise nicht zielführend sind, können Sie noch die Standardmethoden für den jeweiligen Displaymanager probieren: | ||
+ | |||
+ | === Generisch sddm === | ||
+ | |||
+ | Hängen Sie - wenn Eintrag nicht vorhanden, ansonsten editieren - an die Datei / | ||
+ | |||
+ | < | ||
+ | User=student | ||
+ | Session=plasma.desktop | ||
+ | </ | ||
+ | Wenn Sie die Option **Session** nicht mit angeben, wird im Normalfall eine leere Session gestartet ( = schwarzer Bildschirm). Gültige Sessions sehen Sie im Verzeichnis **/ | ||
+ | |||
+ | === Generisch lightdm === | ||
+ | |||
+ | Fügen Sie an die Datei / | ||
+ | < | ||
+ | autologin-user=student | ||
+ | autologin-user-timeout=0 | ||
+ | </ | ||
+ | |||
+ | === Generisch gdm3 === | ||
+ | |||
+ | Hängen Sie an / | ||
+ | < | ||
+ | AutomaticLogin = student | ||
+ | </ | ||
+ | |||
+ | === Generisch ' | ||
+ | |||
+ | Wenn Ihr Displaymanager die Datei / | ||
+ | < | ||
+ | DISPLAYMANAGER_AUTOLOGIN=" | ||
+ | </ | ||
+ | ==== Unerwünschte UI-Funktionen ==== | ||
+ | |||
+ | Hier schlagen hauptsächlich der Abmelde-Button zu Buche, daneben auch Suspend-Modi, | ||
+ | |||
+ | === Abmelden-Button === | ||
+ | |||
+ | == KDE == | ||
+ | |||
+ | Unter Plasma (KDE 5) finden sich die fraglichen Knöpfe im Anwendungsmenu unter „Energieverwaltung / Sitzung“. In ihrer Funktion erhalten bleiben sollten lediglich „Neustarten“ und „Herunterfahren“. | ||
+ | |||
+ | Das Deaktivieren des Abmelden-Buttons sollte eigentlich mit Polkit funktionieren, | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | sudo -n poweroff | ||
+ | </ | ||
+ | |||
+ | Vergessen Sie anschließend nicht, das Skript mit ‚chmod +x [Skriptname]‘ ausführbar zu machen. Damit es funktioniert, | ||
+ | |||
+ | < | ||
+ | student ALL=(ALL) NOPASSWD: / | ||
+ | </ | ||
+ | |||
+ | Anschließend löst ein Druck auf den Abmelden-Knopf einen Shutdown der virt. Maschine aus. | ||
+ | |||
+ | == lightdm == | ||
+ | |||
+ | Hängen Sie in der / | ||
+ | |||
+ | === Sperren / Benutzerwechsel / Neue Session starten === | ||
+ | |||
+ | == KDE == | ||
+ | |||
+ | Fügen Sie der Datei [/ | ||
+ | |||
+ | < | ||
+ | [KDE Action Restrictions][$i] | ||
+ | action/ | ||
+ | action/ | ||
+ | action/ | ||
+ | </ | ||
+ | |||
+ | === Standby-Modi (Suspend/ | ||
+ | |||
+ | Erstellen Sie im Verzeichnis / | ||
+ | < | ||
+ | polkit.addRule(function(action, | ||
+ | if (action.id == " | ||
+ | action.id == " | ||
+ | action.id == " | ||
+ | action.id == " | ||
+ | { | ||
+ | return polkit.Result.NO; | ||
+ | } | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | Sollte obiges nicht funktionieren, | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | grep -r ' | ||
+ | </ | ||
+ | |||
+ | Dies wird vermutlich die Datei „org.freedesktop.login1.policy“ im Unterverzeichnis „actions“ zu Tage fördern. Editieren Sie diese so, daß unter den Einträgen „< | ||
+ | |||
+ | == grub, systemd == | ||
+ | |||
+ | Ein | ||
+ | < | ||
+ | sollte unerwünschte systemd-Targets (sleep, suspend, hibernate) deaktivieren. Eventuell ist auch empfehlenswert, | ||
+ | |||
+ | ==== Automatische Updates ==== | ||
+ | |||
+ | Automatische Updates ergeben im Poolumfeld natürlich ebenfalls keinen Sinn. Als Faustregel gilt, alles zu deaktivieren oder zu entfernen, was automatische Updates auslösen kann. Dies ist je nach Distribution durchaus unterschiedlich, | ||
+ | |||
+ | * Deaktivieren Sie automatische Updates womöglich auf Systemebene((Debian/ | ||
+ | * Prüfen Sie evtl. crontabs auf zeitgesteuerte Updates. | ||
+ | * Deinstallieren Sie packagekitd. | ||
+ | * Wenn eine komplette Deinstallation (z.B. packagekit unter (K)ubuntu) nicht möglich ist, deinstallieren Sie lästige ' | ||
+ | |||
+ | === Ubuntu === | ||
+ | |||
+ | Ubuntu ist bezüglich automatischer Updates besonders nervig, da eine Vielzahl von Mechanismen im System verankert ist. Deinstalliert werden sollten update-notifier, | ||
+ | |||
+ | Das Verzeichnis / | ||
+ | |||
+ | < | ||
+ | APT:: | ||
+ | APT:: | ||
+ | APT:: | ||
+ | APT:: | ||
+ | </ | ||
+ | |||
+ | Da die Dateien in / | ||
+ | < | ||
+ | APT:: | ||
+ | </ | ||
+ | anzulegen. | ||
+ | |||
+ | Darüber hinaus ist es empfehlenswert, | ||
+ | < | ||
+ | systemctl mask apt-daily-upgrade.timer | ||
+ | systemctl mask apt-daily.timer | ||
+ | systemctl mask apt-news.service | ||
+ | systemctl mask esm-cache.service | ||
+ | </ | ||
+ | |||
+ | Ein letztes besonders lästiges Popup kann durch Deinstallation der Pakete | ||
+ | < | ||
+ | dpkg -P gnome-software-plugin-snap gnome-software ubuntu-software | ||
+ | </ | ||
+ | verhindert werden, wobei es zweifellos eleganter wäre, das verantwortliche Plugin zu identifizieren. | ||
===== Drucken ===== | ===== Drucken ===== | ||
Zeile 7: | Zeile 172: | ||
===== Hilfsskripte ===== | ===== Hilfsskripte ===== | ||
- | Die für Linux vorhandenen Skripte | + | Analog zur " |
+ | * die automatische Anpassung der Auflösung, | ||
+ | * Einbindung | ||
+ | * ggf. Ausführung vorgegebener Startskripte. | ||
+ | |||
+ | Das Skript ist im Poolbetrieb | ||
Händisches Mounten aus einer im Poolsystem gebooteten VM (es wird angenommen, /mnt sei leer, Rootrechte erforderlich): | Händisches Mounten aus einer im Poolsystem gebooteten VM (es wird angenommen, /mnt sei leer, Rootrechte erforderlich): | ||
Zeile 13: | Zeile 183: | ||
… anschließend finden Sie die Skripte unter /mnt/linux und können diese, wenn gewünscht, umkopieren. Bitte lesen Sie in jedem Fall die mitgelieferte Datei linux/ | … anschließend finden Sie die Skripte unter /mnt/linux und können diese, wenn gewünscht, umkopieren. Bitte lesen Sie in jedem Fall die mitgelieferte Datei linux/ | ||
- | Die Hilfsskripte beziehen ihre Informationen aus den im Grundverzeichnis der Pseudofloppy befindlichen Dateien openslx.ini und shares.dat. Die Datei HOSTRES.TXT wird nur noch aus Kompatibilitätsgründen eine Weile mitgeführt. Stützen Sie sich nicht auf HOSTRES.TXT, | + | Die Hilfsskripte beziehen ihre Informationen aus den im Grundverzeichnis der Pseudofloppy befindlichen Dateien openslx.ini und shares.dat. Die Datei HOSTRES.TXT wird nur noch aus Kompatibilitätsgründen eine Weile mitgeführt. Stützen Sie sich daher nicht auf HOSTRES.TXT, |
Damit sich die Auflösung innerhalb von bwLehrpool automatisch anpassen kann, muss ein entsprechendes Skript automatisch bei der Anmeldung ausgeführt werden, welches die optimale Auflösung des verwendeten Bildschirms ermittelt und diese Auflösung anschließend setzt. Bei den Vorlagen für Windows-VMs ist dafür beispielswiese die ' | Damit sich die Auflösung innerhalb von bwLehrpool automatisch anpassen kann, muss ein entsprechendes Skript automatisch bei der Anmeldung ausgeführt werden, welches die optimale Auflösung des verwendeten Bildschirms ermittelt und diese Auflösung anschließend setzt. Bei den Vorlagen für Windows-VMs ist dafür beispielswiese die ' | ||
Zur Auflösungsanpassung stehen bisher zwei Möglichkeiten zur Verfügung: | Zur Auflösungsanpassung stehen bisher zwei Möglichkeiten zur Verfügung: | ||
- | * ein Paket mit Auflösungsanpassung und nativem (innerhalb einer Linux-VM) Einhängen von Netzlaufwerken. | + | * ein Paket mit Auflösungsanpassung und nativem (innerhalb einer Linux-VM) Einhängen von Netzlaufwerken, sowie |
- | * ein Skript lediglich zur, verbunden mit etwas Handarbeit: resolution_standalone | + | * ein hauptsächlich zu Debugzwecken verwendetes |
+ | |||
+ | <note important> | ||
==== Paket Auflösungsanpassung und Netzlaufwerke ==== | ==== Paket Auflösungsanpassung und Netzlaufwerke ==== | ||
Zeile 27: | Zeile 200: | ||
Der Ablauf stellt sich in diesem Fall wie folgt dar: | Der Ablauf stellt sich in diesem Fall wie folgt dar: | ||
- | * Das Skript ' | + | * Das Skript ' |
- | Dies sollte unter den derzeit | + | Dies sollte unter den derzeit |
+ | |||
+ | Also z.B. innerhalb der VM: | ||
+ | |||
+ | < | ||
+ | wget https:// | ||
+ | sudo bash vm_installer | ||
+ | </ | ||
=== Auflösungsanpassung === | === Auflösungsanpassung === | ||
- | Das Skript resolution wartet eine gewisse Zeit auf den X-Server, paßt dessen Auflösung an, und prüft noch eine Weile, ob nach dem Userlogin (etwa von Seiten einer Desktopumgebung) evtl. eine andere, unerwünschte Auflösung gesetzt wird und korrigiert | + | Das vom ' |
+ | * Anmerkung: IPv6 kann stören. Deaktivieren Sie IPv6 testweise. | ||
+ | * Sollte die vom ' | ||
+ | * Wayland kann derzeit noch nicht unterstützt werden, daher ist X empfehlenswert. | ||
=== Native Einbindung Netzlaufwerke === | === Native Einbindung Netzlaufwerke === | ||
- | Netzlaufwerke (Home und ggf. gemeinsame Netzlaufwerke) | + | Netzlaufwerke (Home und ggf. gemeinsame Netzlaufwerke) |
<note tip>Sie können überprüfen, | <note tip>Sie können überprüfen, | ||
Zeile 45: | Zeile 228: | ||
* 3 = VMWare-shared folder nutzen. | * 3 = VMWare-shared folder nutzen. | ||
Bitte beachten Sie, daß Sie für den VMWare-shared folder-Mechanismus entweder die originalen VMWare-Tools benötigen, oder im Falle der open-vm-tools ein hgfs-Kernelmodul kompilieren müssen! | Bitte beachten Sie, daß Sie für den VMWare-shared folder-Mechanismus entweder die originalen VMWare-Tools benötigen, oder im Falle der open-vm-tools ein hgfs-Kernelmodul kompilieren müssen! | ||
+ | |||
+ | Die Einstellung des " | ||
</ | </ | ||
<note important> | <note important> | ||
- | |||
- | ==== Aktualisierte Skripte per Konfigmodul ==== | ||
- | |||
- | Wenn Sie die in Ihrer Minilinux-Version enthaltenen Skripte vorab aktualisieren oder einfach nur einen Bugfix oder eine Erweiterung einbringen und testen wollen, können Sie die enthaltenen Skripte per " | ||
- | |||
- | * Legen Sie in irgendeinem Unterverzeichnis folgende Verzeichnisstruktur an: opt/ | ||
- | * Kopieren Sie das zu überlagernde Skript in das Unterverzeichnis ./ | ||
- | * Falls Sie eine der von mnt_shares oder umnt_shares nachgeladenen include-Dateien ändern wollen, erzeugen Sie noch ein Unterverzeichnis ' | ||
- | * Packen Sie die Änderungen ein: < | ||
- | * Es ist eventuell ratsam, eine eigene Systemkonfiguration der bestehenden nachzubauen (mit gleichen Modulen bestückt), dieser das generische Modul hinzuzufügen und diese abgeleitete Systemkonfiguration per Satellitenserver-Raumkonfiguration zum Testen nur auf ausgewählten Rechnern / in ausgewählten Räumen starten zu lassen. Mehr dazu finden Sie im [[satellite: | ||
- | |||
- | <note tip>Sie finden ein solches generisches-Modul-Archiv übrigens [[https:// | ||
- | |||
- | <note important> | ||
===== bwLehrpool-Suite-Startskript ===== | ===== bwLehrpool-Suite-Startskript ===== |