===== VMWare Workstation =====
=== Автоматический запуск виртуальных машин ===
В VMWare Workstation для Windows существует возможность запускать виртуальные машины в автоматическом режиме без входа пользователя.
1) В первую очередь следует настроить службу //VMware Autostart Service// в режим запуска //Auto//.
:!: Необходимо учесть, что запускаться виртуальные машины будут в том контексте, в котором стартует служба //VMware Autostart Service//. Если оставить вариант по умолчанию (//local system//), то под интерактивной учетной записью пользователя мы не увидим машин, запущенных в GUI VMWare. Поэтому, если нам требуется управление виртуальными машинами оттуда - необходимо запустить службу от имени пользователя, который будет управлять машинами в интерактивном режиме.
2) В VMWare кликаем ПКМ на //My Computer// и выбираем опцию //Configure Auto Start VMs//. Далее отмечаем нужные виртуальные машины и настраиваем их приоритет загрузки.
;#;
{{::vmware_ws_autostart.jpg|}}
;#;
:!: Внутри сеанса пользователя будет видно, что виртуальные машины запущены, ими можно будет управлять. Однако, т.к. виртуальная машина была запущена до интерактивного входа пользователя - её дисплей будет недоступен. В этом случае можно выполнить операцию //suspend// -> //resume//.
----
=== Сохранённый пароль зашифрованной виртуальной машины ===
Если мы сохранили пароль зашифрованной машины и VMWare Workstation больше не спрашивает креды, а нам требуется изменить это поведение, то нам следует удалить сохраненные данные из Windows Credential Manager.
Они имеют приблизительно следующий вид.
;#;
{{::windows_cred_man_vmwarews.jpg?600|}}
;#;
----
=== Расшифровка отдельных файлов зашифрованной виртуальной машины ===
Предположим, мы удалили файлы второго диска (без полезных данных) зашифрованной виртуальной машины, из-за чего VM перестает загружаться, а также не даёт расшифровать себя через штатную функцию //decrypt//.
В этом случае нам может помочь редактирование конфигурационного файла VM (имеющего расширение //*.vmx//). В этом файле можно вручную удалить все упоминания несуществующего более диска.
:!: //Однако, если VM зашифрована, её VMX файл будет также зашифрован.//
В решении этой проблемы нам поможет Python-скрипт, который умеет дешифровывать и шифровать ОТДЕЛЬНЫЕ файлы VMWare.
Страница проекта: https://github.com/RF3/VMwareVMX
Перед использованием установим Python и нужные модули:
pip install pycryptodome
Расшифровать VMX файл можно следующим образом (пароль скрипт запросит после выполнения команды):
.\main.py "C:\VMWare\W11_recuv\Windows 11 x64.vmx" >> C:\pyth\decr.vmx
Теперь ищем секции, в которых есть упоминание диска, который мы хотим удалить, вырезаем их и сохраняем конфиг.
Пример секции:
nvme0:0.mode = "independent-persistent"
nvme0:0.present = "TRUE"
После правки конфига необходимо зашифровать исправленный файл (тем же паролем) и скопировать в директорию зашифрованной машины вместо старого файла. Шифруем скриптом с указанием пароля:
./main.py -e -p test1234 "C:\pyth\decr3.vmx" "C:\pyth\encr4.vmx"
Если всё сделано верно, виртуальная машина распознает новый зашифрованный файл конфигурации, а для загрузки больше не будет требовать наличие второго диска.
----
=== Оптимизация работы VMWare Workstation под Windows ===
1. Отключение HYPER-V и любых его компонентов.
Отключить //core isolation//, весь //virtualization based security//.
Рекомендация VMWare по этому поводу.
;#;
{{::vmwarews_on_hyper-v.png?600|}}
;#;
Отключить все компоненты, связанные с виртуализацией.
;#;
{{::hyper-v_components_vmware_workstation.jpg?400|}}
;#;
Дополнительно может потребоваться отключение гипервизора через командную строку:
bcdedit /set hypervisorlaunchtype off Reboot
Также, необходимо отключить Credential Guard через GPO:
Computer Configuration > Administrative Templates > System > Device Guard > Turn on Virtualization Based Security -> Disable
;#;
{{:wiki:disable_cred_guard_gpo.jpg?600|}}
;#;
Посмотреть состояние гипервизора и virtualization-based security можно через утилиту //System Information// на странице //System Summary//. Пример:
;#;
{{:wiki:systeminfo_virt_status.jpg?600|}}
;#;
2. Может помочь запуск VMWare от имени администратора.
3. Запретить хостовой системе тротлинг процессора для приложения VMWare:
powercfg /powerthrottling disable /path "C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe"
----
=== Нельзя просто так взять и скачать VMWare Workstation ===
Статья как скачать VMWare Workstation for personal use с сайта BroadCom:
https://www.pcworld.com/article/2388668/vmware-workstation-pro-how-to-install-the-free-professional-tool.html
----
=== MSI rollback is currently disabled ===
При попытке обновить VMWare Tools иногда можно нарваться на ошибку с таким заголовком. В этом случае придется поправить параметр в реестре, меняющий поведение установщика msi. Вот данный ключ:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer\DisableRollback (0)
;#;
{{::disable_rollback_vmware_workstation.jpg?800|}}
;#;
----
==== Конвертация VM VMWare Workstation в HYPER-V ====
Основная суть процесса конвертации: нужно преобразовать //vmdk-диск// в //vhdx-диск//, а затем создать новую виртуальную машину в HYPER-V, использовав сконвертированный диск в качестве диска новой VM.
В случае, если при создании VM в VMWare мы делили диск на несколько - необходимо сначала слить их в единый vmdk-файл, а затем переходить к конвертации.
:!: //Перед слиянием и конвертацией - лучше всего удалить с исходной VM VMWare Tools, чтобы виртуальная машина работала в новой среде виртуализации без ошибок, а затем выполнять дальнейшие шаги.//
=== Слияние нескольких vmdk в один ===
Если нам нужно слить несколько vmdk в один - можно воспользоваться встроенной в //VMWare Workstation// утилитой //vmware-vdiskmanager.exe//, скормить ей только исходный ОСНОВНОЙ vmdk-файл виртуальной машины, а также директорию и название файла-назначения, в который смёрджатся исходные файлы. Утилита сама обнаружит остальные файлы vmdk и объединит их.
cd "C:\Program Files (x86)\VMware\VMware Workstation"
./vmware-vdiskmanager.exe -r "C:\VMWare\source_vm\vm.vmdk" -t 0 "C:\VMMerge\destination.vmdk"
=== Конвертация полученного vmdk в vhdx ===
С конвертацией хорошо справится утилита //qemu-img//.
Загрузить можно по ссылке: https://cloudbase.it/qemu-img-windows/
Использовать её довольно просто: мы указываем исходный vmdk-файл плюс файл назначения vmdx. Пример:
./qemu-img.exe convert "C:\VMMerge\source.vmdk" -O vhdx "C:\HYPER-V\VM\destination.vhdx" -p
Дожидаемся конца операции преобразования, затем создаем новую VM HYPER-V с полученным файлом диска.
:!: Если мы не удалили VMWare Tools, то есть два способа это сделать (обычный uninstaller из программ не срабатывает).
1. Запустить из ISO-образа VMWare Tools сетап следующим образом:
./setup64.exe /c
Скачать ISO необходимой версии можно отсюда: https://packages.vmware.com/tools/
2. Воспользоваться специальным скриптом, удаляющим VMWare Tools:
https://gist.github.com/broestls/f872872a00acee2fca02017160840624
{{tag>VMWare VM Windows HYPER-V}}