[PL] Takie tam, wirtualizacyjne dylematy…

Stary laptop padł. Pogrzeb Lenovo T61 nie wiadomo jeszcze kiedy nastąpi (myślę że gdzieś za cztery-pięć tygodni. Tymczasem pojawiła się okazja (choć trzeba było trochę powalczyć), aby wpisać na swój sprzętowy stock takie ustrojstwo jak HP EliteBook 8440p. Nie jest to w żadnym wypadku szczyt marzeń, ale jest on odrobinę żwawszy niż poprzednik, a jego parametry (niezbyt wypaśny, ale w miarę wydajny procesor pierwszej generacji i5) oraz docelowo 8 GB RAM (teraz 4GB) zapowiada miłą pracę. Ma on kilka innych udogodnień, które mam zamiar w przyszłości wykorzystać (vide Wojtek Poniatowski i jego HDMI), ale nie o tym ma być tu mowa.

Procesor jest nowszy niż w Lenovo, a co za tym idzie powinien obsłużyć Hyper-V z poziomu Windows 8, na co większość z nas (dziwaków siedzących w zagraconej piwnicy) czekała od dawna. I oczywiście obsłużył. Pozwolił zainstalować co trzeba, oraz uruchomić maszynę wirtualną ukierunkowaną na platformie 64-bitową. Niestety samo Hyper-V mi nie wystarcza. Do różnych innych zastosowań używałem bowiem do tej pory VMWare Workstation 7.1, a od jakiegoś czasu VirtualBox 4.2.6. Ponieważ oba (Hyper-V + coś jeszcze) środowiska są dla mnie interesujące, chciałbym mieć oba na swoim podstawowym systemie (jakim od baaaaardzo długiego czasu jest Windows 8). Po zainstalowaniu nowego VirtualBox nie było mi jednak dane zainstalowanie maszyny z platformą 64-bitową:

Rys.01 | Wybór środowisk – brak maszyn w wersji 64-bit.

Rys.02 | A oszukanie systemu…

Rys.03 | …mimo chęci…

Rys.04 | …nie da niestety określonego rezultatu.

Rys.05 | Na naszym hyper-v…

Rys.06 | …nie ma jak widać od początku…

Rys.07 | …żadnego w zasadzie kłopotu.

No więc o co chodzi? Otóż, jak to się zdarza możemy czasem zapomnieć (lub po prostu nie wiedzieć, jeśli zdarzyło nam się to po raz pierwszy) o tym, że nasz hypervisor – obsługujący dowolną platformę wirtualizacyjną jest w przypadku systemu Windows 8 ukierunkowany na Hyper-V. Oznacza to, że po zainstalowaniu funkcjonalności jaką jest Hyper-V w narzędziu BDCEdit (Boot Configuration Data Editor {wikipedia|technet}), stystem domyślnie zostaje ustawiony na obsługę tego właśnie  “systemowego” wirtualizatora. Możemy to sprawdzić podglądając w wierszu poleceń ustawienia BCDEdit:

Rys.08 | Ustawiona wartość Auto dla funkcji HyperVisorLaunchType spowoduje wymuszenie pierwszeństwa własnie dla Hyper-V, czego efektem są obrazki powyżej.

Rys.09 | Aby dać pierwszeństwo (do tego jeszcze wrócimy) dla bardziej lubianej aplikacji jaką jest w moim przypadku VirtualBox musimy zmienić tę wartość poleceniem: bcdedit /set hypervisorlaunchtype off.

Rys.10 | Po odświeżeniu status dla tej funkcji jest ustawiony na Off. Wymagany jest jeszcze restart fizyczny maszyny (ale to chyba jest zrozumiałe).

Rys.11 | Daje nam to możliwość zainstalowania maszyn wirtualnych z platformą 64-bitową (co widać na menu wyboru).

Rys.12 | Na samym końcu możemy spokojnie uruchomić instalację środowiska, jakie nam się wymarzyło.

Wcześniej wspomnieliśmy o pierwszeństwie. Nie chcieliśmy dać tego pierwszeństwa dla Hyper-V, więc musimy z tym brzemieniem żyć dalej. Przy próbie instalacji nowej maszyny na hyper-v wbudowanym w Windows 8 otrzymujemy błąd inicjalizacji: Maszyna ‘trr’ nie może być zainicjowana, ponieważ hypervisor nie jest zainicjowany. To efekt przełączenia go w tryb Off. Obecnie podczas uruchamiania systemu Windows nie widzi tej funkcjonalności, co skutkuje brakiem możliwości jej uruchomienia. Sposobem na użycie TEJ, a nie TAMTEJ wirtualizacji jest cofnięcie zmian poprzez BCDEdit oraz restart maszyny. Co oczywiście skutkować będzie niedostępnością VirtualBox.

Rys.13 | I tak źle i tak niedobrze. Rozwiązanie problemu leży w punkcie trzecim: ustawienie wartości automatycznej inicjacji hypervisora.