[[PageOutline]] = Windows in der Virtual Box = Ziel: Die Benutzer können von den LtspClients aus Virtualbox startetn, das ein Windows ausführt. Von dort können sie wie gewohnt auf Ihre Dateien und die Tauschverzeichnisse zugreifen. == Teilen des gleichen Snapshots == In unserem Setup werden viele Nutzer gleichzeitig auf die gleiche virtuelle Windows-Installation zugreifen. Frage:: Können sich mehrere Nutzer gleichzeitig das gleiche Windows-Image teilen? Idee:: Das kann wohl nur gehen, wenn nicht alle Nutzer gleichzeitig das selbe Image beschreiben können. Sie dürfen zwar gemeinsam //lesen//, müssen jedoch in verschiedene Dateien //schreiben//. Unsere Hoffnung ist, dass dies passiert, wenn man in VirtualBox einen "Snapshot" erstellt und den startet. Dann sollten alle Änderungen in ein Differenzplattenimage gehen. === Wahl des passenden Medientyps === In der VirtualBox-Konfig kann man anklicken, dass eine virtuelle Platte "unveränderlich" sein soll (Medieneigenschaften). Kapitel 5.4 und 5.5 des ziemlich gut geschriebenen VirtualBox-Manuals enthalten die relevanten Informationen: - [https://www.virtualbox.org/manual/ch05.html 5 Virtual Storage] - [https://www.virtualbox.org/manual/ch05.html#hdimagewrites 5.4 Special Image Write Modes] - [https://www.virtualbox.org/manual/ch05.html#diffimages 5.5 Differencing Images] Demnach sind die Modi, die für uns in Frage kommen - "immutable" - "multi-attach mode" - oder eventuell auch "shareable". (Ausprobieren!) ==== Medientyp: unveränderlich (immutable) ==== Ein wichtiger Hinweis steht da, wie man ein "immutable" Image richtig erstellt: 1. Zuerst als "normales" Image installieren, bis alles in dem Zustand ist, in dem man es einfrieren möchte. 1. Dann die virtuelle Maschine //abschalten//(!) 1. Dann das Image als "immutable" kennzeichen Danach sollte jeder Nutzer bei jedem Start der virtuellen Maschine wieder das eingefrorene Image erhalten, **das Differenzabbild wird automatisch verworfen!** Das scheint doch genau das zu sein, was wir wollen, oder? Funktioniert aber nicht, wenn das Image von einer //laufenden// Maschine eingefroren wurde (siehe Manual). Das bedeutet, dass die Nutzer dann auch gerne im Windows als Administrator angemeldet sein können, dann muss man im Windows nicht auch noch Rechteverwaltung machen. ==== Medientyp: multi-attach mode ==== Beim Medientyp "multi-attach mode" können mehrere VM konkurrierend auf ein Image zugreifen. Jede Maschine erhält ihr Differenzabbild (im Homeverzeichnis des Users). Das Differenzabbild überlebt zwischen verschiedenen Aufrufen. ==== Medientyp: shareable ==== Der Medientyp "shareable" erlaubt es mehreren laufenden virtuellen Maschinen gleichzeitig auf das gleiche Image zuzugreifen. Die Maschinen erhalten **kein Differenzabbild**, sondern greifen wirklich alle gleichzeitig auf die Datei zu, wie auf einem normalen Multiuser-Betriebssystem. (Kommt Windows damit klar?) == !Anmeldung/Zugriff auf die home- und share-Verzeichnisse == Da VirtualBox auf dem LtspServer läuft, auf dem `/home/...` bereits gemountet ist, braucht innerhab des Windows - keine LDAP-Anmeldung zuerfolgen - keine Verzeichnisse gemountet zu werden Das virtuelle Windows erbt all das vom Host. == VirtualBox als lokale Applikation == Möglicherweise muss VirtualBox als lokale Applikation auf den LtspClients laufen, um performant genug zu sein. (?) == Notizen RAL Linux 6.2.2013 === Mitglied in der Gruppe vboxusers Nutzer müssen in der Gruppe vboxusers sein, damit sie Virtualbox ausführen dürfen. Das lässt sich bequem über die `/etc/security/group.conf` machen, oder über den LDAP-Mechanismus, den wir für die Gruppe `video` verwenden. === Einrichten des Windows-Images - Das Windows-Image sollte so weit wie möglich abgespeckt werden. - Einziger Nutzer sollte root sein (?) - Ein Link auf H:\ sollte jeweils entsprechend umgebogen werden, ähnlich LtspWine ==== !GuestAdditions für Windows Für 3d-Beschleunigung nötig. Können nur im abgesicherten Modus installiert werden (beim Windows-Start F( drücken). === Umsetzung Das ganze lässt sich umsetzen, wie bei unserem LtspWine. - die "immutable" Platte mit der Windows-Installation liegt auf dem Server und wird nie herumkompiert - das Differenzabbild des Nutzers liegt lokal und wird jedesmal vorher/nachher gelöscht - Die Konfigurationen in `~/.VirtualBox` werden entweder über den Skeleton-Mechanismus verteilt, oder über rsync gesynct wie bei LtspWine. Jedenfalls müssen diese Dateien dem Nutzer gehören. ==== Alternative, die mir sinnvoller erscheint: - Das vdi-File liegt irgendwo lesbar - Die Nutzer bekommen per Skript die Virtuelle Maschine eingerichtet. Das geht mit dem vboxmanage-Befehl: {{{ vboxmanage createvm --name XP --ostype WindowsXP --register vboxmanage storagectl XP --name IDE --add ide --bootable on vboxmanage storageattach XP --storagectl IDE --medium /usr/local/vdi/XP.vdi --mtype immutable --port 0 --device 0 --type hdd }}} - dabei sollte noch das Verzeichnis, in dem die VMs des Benutzers abgelegt werden, wo also das Differenzabbild liegt, nach /tmp oder so verschoben werden. - Parameter noch etwas tunen, dann sollte es das gewesen sein.