Virtualizace MS aplikací na desktopu

Lze využívat výhody Linuxu i v případě, že potřebujeme používat některé aplikace z jiných operačních systémů?

Je toto řešení použitelné? Více v následujícím článku. —- článek je v přípravě —

Výchozí stav:

Dostal jsem k dispozci Lenovo ThinkPad Z60m s jednojádrovým procesorem  Inetl Pentium M 2,00 GHz a 1GiB DIM pamětí a pomalým 5400 RPM harddiskem. A také úkol udělat „z ničeno něco“ –  nejlépe, aby na tom bylo možné kreslit v AutoCadu. Navíc byl notebook vyřazen z používání, protože původní Windows XP  na něm byly v naprosto katastrofálním stavu a notebook nebylo možné používat ani na běžnou kancelářskou práci. Co s tím? Pokud použiji znovu OS MS Windows XP, zanedlouho bude notebook opět v nepoužitelném stavu jako předtím. Přišel tedy čas na hardwarový upgrade a na jiný operační systém.

Hardware po upgrade:
Lenovo dostalo navíc 1GiB RAM a také rychlý SSD disk. Ten pro následující věci není podmínkou, ale když už se to dělá,
tak rovnou pořádně..

Instalace

  • Protože potřebuju stabilní operační systém pro desktop (a chtěl jsem se vyhnout co nejvíce možným komplikacím), zvolil jsem pro tento účel Ubuntu Studio LTS 8.0.4 (novější verze LTS nebyla v době instalace ještě k dispozici). Úpravy konfigurace pro použití rychlého SSD disku jsou popsány v jiném článku. Nyní mám k dispozici základní instalaci.
  • Jako virtualizační prostředí jsem zvolil VirtualBox (non OSE edici, protože tato nepodporuje USB). Pokud použijete tuto variantu, doporučuji si řádně prostudovat licenční podmínky. Bylo by jistě možné stejně tak použít např. VmWare, ovšem moje zkušenosti s VmWare u virtualizace desktopů není nejlepší. Zároveň by bylo možné použít Xen nebo KVM. (KVM rozhodně patří budoucnot, takže se možná k tomuto způsobu virtualizace ještě vrátím).
  • Nainstaloval jsem tedy VirtualBox (Pozor: na rozdíl od odkazu on OSE verzi!). Vytvořil jsem virtuální stroj s názvem WinXPP. Většinu hodnot jsem ponechal defaultních. Nakonfiguroval jsem přístup k CD mechanice, síťová rozhraní. Nainstaloval jsem WindowsXP.
  • Doinstaloval jsem přídavky pro hosta, což mi umožní měnit velikost okna, používat bezešvý režïm a mnoho dalšího.

Úprava WindowsXP:

  • Protože potřebuji jen úplně minimální systém, vyladil jsem Windows pro výkon:

    • první část jsem udělal přímo přes dostupná nastavení
    • druhou část přes starou (ale stále dobrou) utilitu Tweak UI
      (Pozor, při jejím neopatrném použití můžete Windows dovést do nepoužitelného stavu)
  • Vypnul jsem tedy všechny animace, odstranil ikony z plochy, vypnul všechna stínování, animace menu tapetu plochy… vzhled jsem nastavil na klasický.. prostě vše, co se dá udělat, aby byl systém co nejrychlejší.
  • zároveň jsem zapnul automatické přihlašování (nebudeme se přece zdržovat).
  • Do Windows jsem doinstaloval potřebné aplikace.
  • Na ploše jsem vytvořil spouštěč s ikonou, díky kterému je možné startovat přímo virtuální stroj. V mém případě spouštěč vypadal takto:

    VirtualBox -startvm „WinXPP“

  • Nyní je třeba zkontrolovat / upravit práva pro přístup k usb. To lze učinit více způsoby. Nejsnažší ale nejhorší a nejméně bezpečný způsob je přidat uživatele
    root do skupiny vboxusers. Druhý – lepší způsob je změnit práva u příslušného zařízení tak, aby je mohl VirtualBox používat.
  • První část je hotova.. uživatel může vše používat..
  • Nejlepší na celé věci je skutečnost, že virtuální stroj není nutné vypínat, ale stačí „uložit stav stanice“, což je o mnoho rychlejší. Dále je možné přepínat mezi různými režimy obrazovky (PrCtrl+L) včetně seamless režimu (PrCtrl+L). Toto řešení myslím vyhovuje drtivé většině uživatelů.

Plná integrace (s omezeními):

Ladíme vzhled „oken“:

Já bych ale rád, aby Windowsovské aplikace pokud možná co nejvíc splynuly s mým operačním systémem.
Budu tedy maximálně využívat  seamless režim.

  • pro integraci s klasickým prostředím Ubuntu je možné použít některý z Ubuntu XP skinů.
  • pro integraci s tmavým stylem Ubuntu Studia se mi ale více osvědčil vzhled přímo od Microsoftu – Royale Noir

     

    Postup:

  • Rozbalit soubory do “C:\windows\resources\themes\royale noir
  • Dvojklik na  “luna.msstyles
  • Vybrat “Noir” barevné schéma

Pro použití tohoto tématu není třeba žádná další úprava.

Spouštíme Virtual Box při startu (a vypínáme ho při ukončení práce s počítačem)

Virtuální stroj můžeme spouštět „na pozadí“ při startu systému. Máme dvě možnosti. Buď pomocí init skriptů, což může být výhodnější v případě, že všichni uživatelé používají jeden virtuální stroj.
Nebo po přihlášení uživatele.

a) Spouštění a vypínání virtuálního stroje pomocí init skriptů:
Do adresáře /etc/init.d/ umístíme dva skripty.
První s názvem virtualbox-start.sh skript s tímto obsahem:

#!/bin/bash
VBoxHeadless -startvm „WinXPP“ &

Druhý s názvem virtualbox-stop.sh s tímto obsahem:

#!/bin/bash
VBoxManage controlvm WinXPP poweroff

Nezapomeneme je učinit spustitelné příkazem chmod +x název_souboru

Dále můžeme použít příkaz update-rc.d pro přiřazení skriptů do odpovídajících runlevelů.
Správně by to mělo být takto:

 pro start: 2 3 4 5 S pro stop: 0 1 6 

(Pozn: Pro další vysvětlení zadejte do políčka „hledat…“ na těchto stránkách termín „Přehled runlevelů“.)

Takže použijeme příkazy:

update-rc.d virtualbox-start.sh start 20 2 3 4 5; update-rc.d virtualbox-stop.sh stop 20 0 1 6

A raději zkontrolujeme umístění symbolických odkazů.
Samozřejmě odkaz na startovací skript nemá co dělat v adresáři pro vypínání (/etc/rc.0)
A naopak odkazy na vypínací skripty nebudou potřeba v adresářích startovacích skriptů.

b) Spouštění virtuálního stroje po přihlášení uživatele:
Pokud nechceme spouštět virtuální stroj přímo při startu systému,
v Gnome přidáme příkaz:

do Systém -> Volby -> Aplikace spouštěné po přihlíšení.

Povolujeme vzdálený přístup k ploše

Pokud používáme TweakUI, musíme dát pozor na správné nastavení, jinak TweakUI umí tuto volbu úspěšně blokovat.

„Plná integrace“ pomocí rdesktopu

  • Nainstalujeme (pokud ještě nemáme) balíček rdesktop
  • Do adresáře /usr/share/rdesktop/keymaps umístíme opravenou českou klávesnici,
    kterou stáhneme odsud (můžete si vybrat). Tedy nechápu, proč není možné stále tuto klávesnici
    přidat do oficiálního balíku rdesktopu.
  • Pokud chceme spouštět aplikace pomocí rdesktopu v seamless režimu, použijeme k tomuto
    účelu aplikaci seamlessrdp, kterou stáhneme také odsud.
    Obsah archívu rozbalíme do adresáře C:\seamlessrdpshell\
  • Vytvoříme skript pro spuštění winaplikace například v tomto tvaru (k tomu samozřejmě potřebujeme znát
    IP adresu virtuálních Windows.. v závislosti na tom, jak jsme ji dříve nastavili – toto je jen příklad:rdesktop -A -k cz -s ‚C:\seamlessrdp\seamlessrdpshell.exe C:\Windows\notepad.exe‘ -c ‚C:\Windows‘ -T’Klient vzdálené pracovní plochy‘ -uprihlasovaci_jmeno -pprihlasovaci_heslo -dnazev_domeny -n jmeno_stroje_s_windows -rsound:off -X:0x560027a -rclipboard:PRIMARYCLIPBOARD -N -5 IP.ADRESA.STROJE.WINDOWS
  • Uložíme ho na nějaké místo (třeba do adresáře /home/user/bin a vytvoříme spoutěč aplikace na ploše,
    který bude inicïovat tento skript.

Nyní můžeme po spuštění virtuálního stroje na pozadí pouhým kliknutím na ikonu na ploše
spustit winaplikaci, která se plně integruje do linuxového desktopu.

Omezení

Ačkoliv získáme tímto způsobem integraci winaplikací do linuxového desktopu, má toto řešení několik omezení.
Například je takto možné spustit vždy pouze jednu aplikaci. Také se nevyhneme „probliknutí“ přihlašovacího okna.

Toto řešení je použitelné i s ostatním virtualizačními nástroji (Xen, KVM, VmWare, qemu atd.).

Obrázky – integrace s Ubuntu XP skinem:

 

 

$HOME/.wine-bottles/SCHUCAL