close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 11 years ago

Closed 11 years ago

#1882 closed Aufgabe (erledigt)

Virtuelles Windows auf Linuxmusterclients

Reported by: Rüdiger Kupper Owned by: Rüdiger Kupper
Priority: schnell erledigen Milestone: Schuljahr 2014/15
Component: Software: Ubuntu Severity: beeinträchtigt den Unterricht einiger Lehrer
Keywords: Cc: bau

Description

Auf den Linuxmusterclients soll ein Windows XP unter Virtualbox laufen.
Die Idee ist, einen zweiten X-Server ("Seat"?) auf Konsole 8 zu starten und dort Virtualbox bereits beim Hochfahren zu starten.

Change History (22)

comment:1 by Rüdiger Kupper, 11 years ago

Das ist mir noch unklar:

  • Bislang hat jeder Nutzer seine eigene VM gestartet, mit einer unveränderbaren Platte.
  • Welcher Nutzer soll netzt die VM auf Konsole 8 starten? Richten wir dafür einen eigenen lokalen VirtualBox-Nutzer ein?
  • In unserem XP-Image gibt es nur einen einzigen Nutzer namens "Nutzer", der automatisch eigeloggt wird.
    • Das macht in diesem Szenario keinen Sinn mehr.
    • Vielmehr müssten sich die Kollegen im virtuellen Windows mit ihrem Namen anmelden. Dazu braucht das eine Anbindung an LDAP bzw. die Linumusterlösung.
    • Oder sollen sich alle Kollegen den "Nutzer"-Nutzer teilen? Wie sollen sie dann Zugriff auf ihre persönlichen Dateien bekommen?

comment:2 by Rüdiger Kupper, 11 years ago

Habe das XP.vdi von ltspl2 auf meinen Client kopiert. Lässt sich problemlos starten, mit der Konfiguration, wie wir sie auch auf den LTSPs verwendet haben.

  • Startet automatisch als Nutzer "Nutzer"
  • "Eigene Dateien" wird auf das Homeverzeichnis des aktuellen Nutzers verlinkt, der VirtualBox gestartet hat.
  • TI-NSpire-Software lässt sich normal starten
  • Infosys geht nicht, es sucht nach einer nicht vorhandenen *.bat-Datei.

comment:3 by bau, 11 years ago

Start der VM: 25 Sekunden
Start des TI: 63 Sekunden

Bis man also einen TI vfor sich hat, dauert das 88 Sekunden, also fast anderthalb Minuten!

Startet man mit einem Speicherabbild, so geht das Ganze in 8 Sekunden.

comment:4 by bau, 11 years ago

Für das InfoSys bietet sich das Programm wget an (gibt es von GNU auch für Windows).
Damit kann ich die aktuelle InfoSys-Version immer aktuell vom Server holen - prima :-)

Bleibt das Experiment mit dem virtuellen, automatisch getarteten Windows auf Konsole 8.

comment:5 by Rüdiger Kupper, 11 years ago

  • Auf allen Clients ist jetzt eine Desktop-Sitzung eingerichtet, die das virtuellen Windows des jeweiligen Nutzers startet. (Am Anmeldebildschirm auf den weißen Kreis klicken und als Sitzung "Virtuelles Windows" auswählen. Die Sitzung läuft ohne Fenster-Manager und endet, sobald die VM beendet wird.
  • Jeder Nutzer kann so seine individuelle WIndows-Maschine starten (wollen wir vielleicht gar nicht, dann kann man die Sitzung auch verstecken).
  • Es gibt einen neuen lokalen Nutzer mit Username "windows" (Standardrechte), der ebenfalls eine Windows-VM mit unveränderlichem Inhalt eingerichtet hat.
  • Auf den Clients der Rechnergruppe "lehrer" wird per Postsync-Skript eine LightDM-Konfiguration hinzugefügt, die einen zweiten "Seat" auf VT8 startet und dort automatisch den lokalen "windows"-Nutzer einloggt. (Muss noch getestet werden.) Die Sitzung läuft einfach durch und jeder Kollege kann mit Strg-Alt-F8 dorthin wechseln.
  • TODO: In dieser Sitzung sollte noch automatisch Infosys gestartet werden (läuft aber zur Zeit nicht).

comment:6 by bau, 11 years ago

Hervorragend :-)
Dann testen wir mal den Seat auf der 8. Konsole.
Ich werde dann InfoSys so einrichten, dass es auf der 8. Konsole immer startet.

Das mit dem virtuellen Windows als Standard-Fenstermanager ist ja genial - das erzählen wir den Leutchens aber nicht aktiv :-)

comment:7 by bau, 11 years ago

Die Mini-Cases für die DSB sind angekommen, ich werde die mal zusammenbauen und ein möglichst minimales System aufspielen - ich liebäugle dabei (weil minimal) aber immernoch mit einem Debian (Jessie). Deine Erfahrungen mit der VBox ohne Windowmanager könnten wir da ja gleich einbauen.

comment:8 by Rüdiger Kupper, 11 years ago

Hm, die Reihenfolge, in der man die Seats definiert, hat keinen Einfluss darauf, welcher zuerst gestartet wird. Was das entscheidet, habe ich noch nicht herausgefunden.
Aber die Reihenfolge, in der die Konfigurationsdateien eingelesen werden, scheint etwas zu bewirken.
Die Seat-Definitionen stehen jetzt in einer Datei, die mit "30-" beginnt, nicht "50-". Bisher haben alle Lehrerrechner, die ich ausprobiert habe, damit den Ubuntu-Login angezeigt.

comment:9 by Rüdiger Kupper, 11 years ago

Owner: changed from Rüdiger Kupper to bau
Priority: gering → hoch
Status: new → assigned

Nachdem ich gestern Sebastian natürlich gerade verpasst habe, hab ich mich hingesetzt und noch die Änderungen gemacht, über die wir gesprochen hatten:

  • die Windows-Sitzung ist jetzt versteckt, so dass sie kein Nutzer mehr beim Login auswählen kann
  • die Nutzer "linadmin", "windows", "lehrer" und "schuelte" werden von lightdm jetzt als Systemnutzer betrachtet und nicht mehr angezeigt
  • ich habe eine zweite virtuelle Windows-Sitzung eingerichtet namens kepler-virtual-windows-infosys.desktop. Diese wird jetzt als Autostart-Sitzung für den Nutzer "windows" benutzt und unterscheidet sich von der anderen Windows-Sitzung nur dadurch, dass sie zum Starten ein Skript abarbeitet.
    • das Startskript findest Du unter /usr/share/virtualbox-vdi/infosys-session. Du brauchst hier nur noch die Befehle einzufügen, mit denen Du nach Start der VM von außen das Infosys startest.

comment:10 by Rüdiger Kupper, 11 years ago

Hier mal der bisherige Inhalt der Datei /usr/share/virtualbox-vdi/infosys-session:

#!/bin/bash

virtualbox --startvm XP --fullscreen

# Befehle, um Infosys zu starten, hier einfügen:

comment:11 by bau, 11 years ago

Problem ist, dass lightdm einen Windowmanager erwartet. Den hast du zwar in den starter ausgelagert, aber sobald dort mehr als ein Befehl steht, startet der garnicht oder die Default-Session. Ich habe jetzt dem windows einen Autostarter verpasst, der die notwendigen Aktionen ausführt und das virtuelle Windows startet. Einziger Schönheitsfehler ist, dass der beim Beenden des virtuellen Windows halt noch eingelogged ist.

comment:12 by bau, 11 years ago

Für die Speicherabbilder (TI / InfoSys) würde ich folgendes vorschlagen:

  • Speicherabbild liegt auf /dev/sda2 (/usr/share/virtualbox-vdi/) als
    • TI.sav
    • InfoSys.sav
  • Starter als - verlinkt nach /usr/share/applications
    • TI.desktop
    • InfoSys.desktop
  • Startscripte als
    • TI.sh
    • InfoSys.sh
  • Die Scripte erzeugen jeweils ein eigenes virtuelles Windows
    • XP-TI
    • XP-InfoSys damit kommen sie dem normalen XP des Users nicht in die Quere
  • Wichtig: Snapshots und Festplattenabbilder local ablegen unter
    • /usr/share/virtualbox-vdi/cache/[username]/XP-TI
    • /usr/share/virtualbox-vdi/cache/[username]/XP-InfoSys
  • eventuell die ganze VM dort ablegen, dann taucht sie nichtmal im HomeVZ des Users auf
  • Bei den bestehenden VM's der User sollten die ganzen Snapshots ebenfalls unter
    • /usr/share/virtualbox-vdi/cache/[username]/XP abgelegt werden, damit nicht unnötig Daten über das Netz zum Server gesendet werden. Dazu muss aber der starter angepasst werden, da die Ballon-Datei der XP.vdi beim nächsten Anmelden an einem anderen Rechner nicht mehr dort ist, wo sie sein sollte

comment:13 by bau, 11 years ago

Das Problem mit dem NICHT-anzuzeigenden User windows in der würde sich nach

​http://askubuntu.com/questions/92349/how-do-i-hide-a-particular-user-from-the-lightdm-login-screen

auch dadurch erledigen lassen, dass man dem user windows eine ID < 1000 verpasst. Wenn ich das mache, dann passiwrt dasselbe, wie wenn ich die Datei

/var/lib/AccountsService/users/windows

mit dem Inhalt

 [User]
 SystemAccount=true

anlege - lightdm startet nicht mehr das virtuelle Windows als Standard-Sitzung sondern eine Ubuntu-Session :-( Offenbar will lightdm die Session nur dann starten, wenn es den user auch anzeigen darf.

comment:14 by bau, 11 years ago

Start mit Speicherabbild des TINSpire fertiggestellt.

  • Es wird eine VM XP_TI angelegt
  • XP.vdi als immutable disk hinzugefügt
  • Status auf gesichert gesetzt
  • VM gestartet

Die XP-Maschine der User ist davon nicht betroffen.
Probleme machte, dass VBox sich die Ballondateien im Medienmanager gemerkt hatte, diese werden vorab per Script gelöscht. Die Dateien liegen nun auhc nicht mehr im HomeVZ des Users, sondern unter /usr/share/virtualbox-vdi/Snapshots, wo sie regelmäßig (vor dem Start) gelöscht werden.

in reply to:  13 comment:15 by Rüdiger Kupper, 11 years ago

Replying to bau:

anlege - lightdm startet nicht mehr das virtuelle Windows als Standard-Sitzung sondern eine Ubuntu-Session :-( Offenbar will lightdm die Session nur dann starten, wenn es den user auch anzeigen darf.

Nein, denn im letzten Image war diese Datei auch genau so drin, und da hat es funktioniert.
Stell einfach mal die Windows-Sitzung fertig und lad das neue XP-Image hoch. Dann bringen wir's schon wieder in den "richtigen" Zustand :-).

Es gibt nur ein paar zuviele Orte, an denen sich lightdm etwas merkt. Seit unserer Version 14.04 hat sich an der lightdm-Konfiguration wieder einiges geändert, ein paar Orte für Konfigurationsdateien wurden z.B. einfach gestrichen. Offenbar haben die Entwickler selbst gemerkt, dass sie sich bei der Konfiguration irgendwo selbst ins Knie schießen.

Also: Erstmal auf das Windows-Image konzentrieren.

in reply to:  14 comment:16 by Rüdiger Kupper, 11 years ago

kling gut!

Replying to bau:

Start mit Speicherabbild des TINSpire fertiggestellt.

  • Es wird eine VM XP_TI angelegt
  • XP.vdi als immutable disk hinzugefügt
  • Status auf gesichert gesetzt
  • VM gestartet

Die XP-Maschine der User ist davon nicht betroffen.
Probleme machte, dass VBox sich die Ballondateien im Medienmanager gemerkt hatte, diese werden vorab per Script gelöscht. Die Dateien liegen nun auhc nicht mehr im HomeVZ des Users, sondern unter /usr/share/virtualbox-vdi/Snapshots, wo sie regelmäßig (vor dem Start) gelöscht werden.

comment:17 by bau, 11 years ago

XP-Image ist fertig und auf dem Server :-)
Läuft auch auf dem Schülernetzclient prima!

Das Schnellstart-TINSpire-XP liegt unter

/usr/share/virtualbox-vdi/start_TI.sh
/usr/share/virtualbox-vdi/TINSpire.desktop

und startet die neu angelegte Maschine XP_TI sekundenschnell. (-> Starter im nächsten Image verfügbar machen)

Die User können nach wie vor ihr virtuelles Windows (VM: XP) starten, die autostart.bat in der VM mountet das Share
vboxsrv\home nach H:, dort liegen dann die Eigenen Dateien.

comment:18 by Rüdiger Kupper, 11 years ago

Owner: changed from bau to Rüdiger Kupper
Severity: unkritisch → normal
Status: assigned → accepted

comment:19 by bau, 11 years ago

Wird eigentlich beim friendly-logout der windows-User auf seat:1 verschont?
Das wäre blöd, wenn der ausgelogged würde!

comment:20 by Rüdiger Kupper, 11 years ago

Gute Frage. Ich schätze, derzeit wird er ausgeloggt. Da muss ich mein Skript anpassen!

comment:21 by jas, 11 years ago

wie siehts hier aus? funktioniert ja alles problemfrei...

comment:22 by Rüdiger Kupper, 11 years ago

Resolution: → erledigt
Status: accepted → closed
Note: See TracTickets for help on using tickets.