Niestety są takie chwile, kiedy trzeba skorzystać z Windowsa. W moim przypadku jest to system Subiekt GT + Sfera oprogramowywane za pomocą MS Visual Studio.
U mnie w pracy jest szybka maszyna, która wykonywała nieobciążające ją czynności, więc postanowiłem zainstalować na niej Virtual Boxa i uruchomić na nim MS Windows 10 Pro. Wcześniej do tego celu wykorzystywałem moje poprzednie stanowisko pracy. Nie ukrywam, że korzystam z Windowsa bardzo rzadko, w sytuacji, gdy trzeba coś dorobić do mechanizmu pośredniczącego pomiędzy moim systemem a Subiekt GT.
• INSTALACJA
Do dyspozycji mam maszynę z Ubuntu Server 16.04 LTS bez X-ów. Oczywiście w pierwszej kolejności musisz zainstalować Virtual Boxa.
sudo apt update
sudo apt install virtualbox
W razie problemów z instalacją: https://www.virtualbox.org/wiki/Linux_Downloads
Po zainstalowaniu otrzymasz narzędzia VBoxManage
oraz VBoxHeadless
dzięki którym można zarządzać Virtual Boxem bez GUI z poziomu terminala.
• IMPORT
Skąd pobrać Windowsa? Ja wcześniej miałem Windowsa na innym Virtual Boxie więc go wyeksportowałem, ale można go sobie pobrać ze strony Microsoftu (Download VMs). Dalsze czynności podobnie jak w moim przypadku czyli import na docelowej maszynie gdzie u mnie plik do importu jest zlokalizowany tu /mnt/HDD1/Win10pro-Jacek.ova
.
VBoxManage import /mnt/HDD1/Win10pro-Jacek.ova --vsys 0 --vmname "Win10-Jacek"
Podstawowa konfiguracja: ilość rdzeni, rozmiar pamięci RAM, pamięć grafiki.
VBoxManage modifyvm "Win10-Jacek" --cpus 4
VBoxManage modifyvm "Win10-Jacek" --memory 8192MB
VBoxManage modifyvm "Win10-Jacek" --vram 256MB
Mostkowanie połączenia sieciowego, tak, aby maszyna wirtualna była widoczna w sieci lokalnej, gdzieenp4s0
to interfejs sieciowy w fizycznej maszynie.
VBoxManage modifyvm "Win10-Jacek" --nic1 bridged
VBoxManage modifyvm "Win10-Jacek" --bridgeadapter1 enp4s0
W przypadku skorzystania z gotowca Microsoftu warto również zmienić adres MAC
VBoxManage modifyvm "Win10-Jacek" --macaddress1 0900712033AB
Istnieje możliwość konfigurowania VBoxa poprzez modyfikowanie jego pliku konfiguracyjnego. W moim przypadku to Win10-Jacek.vbox
. Modyfikując w ten sposób pamiętaj, żeby żadna z usług Virtual Boxa w trakcie edycji (przede wszystkim GUI) nie była uruchomiona.
• URUCHAMIANIE MASZYNY
Uruchomienie maszyny to oczywiście kolejna komenda. Zanim jej użyjesz skonfiguruj na wszelki wypadek VNC ustawiając dowolne hasło np. secret
(zalecam mocniejsze) i właściwość vrdeextpack
na VNC
.
VBoxManage modifyvm "Win10-Jacek" --vrdeproperty VNCPassword=secret
VBoxManage setproperty vrdeextpack VNC
Gdy „VBoxManage: error: No extension pack by the name 'VNC’ was found”.
Najprostszy sposób uruchomienia, tak, aby usługa pracowała w tle oraz była możliwość podpięcia się za pośrednictwem VNC.
VBoxHeadless -s "Win10-Jacek" -vrde on&
Po odpowiednim skonfigurowaniu sieci i zdalnego dostępu w samym zwirtualizowanym systemie — ja już później łączę się z nim wyłączenie za pomocą klienta RDP.
Zatrzymanie maszyny:
VBoxManage controlvm "Win10-Jacek" poweroff
Inne przydatne komendy, których działanie łatwo wywróżyć ze składni:
VBoxManage list vms
VBoxManage list runningvms
VBoxManage unregistervm "Win10-Jacek"
VBoxManage registervm /pelna/sciezka/Win10-Jacek.vbox
• OBRAZ ISO – instalacja nowego systemu
Istnieje również możliwość zainstalowania / przeinstalowania systemu z wykorzystaniem wcześniej uzyskanego obrazu ze strony firmy Microsoft. Po przejściu przez prosty kreator pojawia się możliwość pobrania obrazu jako plik ISO. Poniżej instrukcje, dzięki którym można podpiąć obraz.
Dodanie kontrolera do wirtualnej maszyny o ile jeszcze takiego nie ma. W razie wątpliwości komenda VBoxManage showvminfo "Win10-Jacek"
wyszczególni konfigurację maszyny dzięki czemu można sprawdzić czy jest już jakiś kontroler, do którego można podpiąć obraz ISO.
VBoxManage storagectl "Win10-Jacek" --name IDE --add ide
Określenie urządzenia tak, aby bootowało się przy starcie maszyny – o ile jest to konieczne.
VBoxManage storagectl "Win10-Jacek" --name IDE --bootable on
Montowanie obrazu do wcześniej utworzonego urządzenia:
VBoxManage storageattach "Win10-Jacek" --storagectl IDE --port 0 --device 0 --type dvddrive --medium "/home/jacek/Download/Win10_pol_x64.iso"
Po zakończeniu prac odmontowanie pliku ISO.
VBoxManage storageattach "Win10-Jacek" --storagectl IDE --port 0 --device 0 --medium "none"
• SNAPSHOT – zapamiętywanie stanu maszyny
Dwie komendy. Pierwsza to lista wcześniej wykonanych zrzutów. Druga wykonanie zrzutu o określonej nazwie. Trzecia przywraca odpowiedniego snapshota gdzie UUID otrzymamy wykonując pierwszą komendę.
VBoxManage snapshot Win10-Jacek list
VBoxManage snapshot Win10-Jacek take "Jakaś nazwa"
VBoxManage snapshot Win10-Jacek restore UUID
https://www.virtualbox.org/manual/
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8248665/
• Gdy „VBoxManage: error: No extension pack by the name 'VNC’ was found”
W sytuacji wystąpienia powyższego błędu można pobrać i zainstalować ExtensionPack dla VirtualBox-a co pozwoli na łączenie się przez RDP (zamiast VNC). Poniżej komendy dla wersji 5.2.22.
POBIERANIE
wget http://download.virtualbox.org/virtualbox/5.2.22/Oracle_VM_VirtualBox_Extension_Pack-5.2.22.vbox-extpack
wget http://download.virtualbox.org/virtualbox/5.2.22/Oracle_VM_VirtualBox_Extension_Pack-5.2.22-126460.vbox-extpack
INSTALACJA
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.22.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.22-126460.vbox-extpack
VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack"