Чтобы ответить на исходный вопрос, а также на сообщение форума бродяги @ blong, это то, что я сделал, чтобы сделать эту работу.
Я пытался сделать что-то подобное сам (фактически Vagrant/VMware, где размещается Vagrant/Vbox), и я выполнил все оптимизации, о которых я могу думать, давая моей «хост-виртуальной» большую RAM (24 ГБ) и 6 ядра, отключая замену виртуальных машин на диск (это KILLS в Windows, когда это происходит), установив «Вставить всю память VM в зарезервированную память хоста» и разрешив файлы страниц VM (иначе они будут отображаться в файле системной страницы, который ограничивает количество виртуальных машин вы можете запустить сразу).
То, что я делаю, работает отлично, проблемы с сетью, которые у меня были, были связаны с корпоративным прокси-сервером, с которым я позади. Как только я сконфигурировал, что моя виртуальная машина получила доступ в Интернет, и все было правильно с миром.
Мне пришлось вручную установить --natbindip1 и --natnet1 через Vagrantfile в дополнение к natdnsproxy1 и naddnshostresolver1, которые уже были установлены в моем примере (Virtualbox) Vagrantfile. Эти настройки можно найти в документации по Virtualbox для правильного использования.
Чтобы подвести итог, используйте опцию «виртуализацию» VT-x в настройках вашего VM-процессора, предоставите виртуальной памяти VM, не разрешайте замену этой памяти на «корневой» хост-машине и попробуйте убедиться, что ваши сетевые диапазоны не перекрываются, или у вас возникнут проблемы с маршрутизацией.
Здесь находится Vagrantfile, из которого я работал, он основан почти полностью на основе andreptb для современной установки бродяг. https://gist.github.com/andreptb/57e388df5e881937e62a
# -*- mode: ruby -*-
# vi: set ft=ruby :
# box name into env var, same script can be used with different boxes. Defaults to win7-ie11.
box_name = box_name = ENV['box_name'] != nil ? ENV['box_name'].strip : 'win7-ie11'
# box repo into env var, so private repos/cache can be used. Defaults to http://aka.ms
box_repo = ENV['box_repo'] != nil ? ENV['box_repo'].strip : 'http://aka.ms'
Vagrant.configure("2") do |config|
# If the box is win7-ie11, the convention for the box name is modern.ie/win7-ie11
config.vm.box = "modern.ie/" + box_name
# If the box is win7-ie11, the convention for the box url is http://aka.ms/vagrant-win7-ie11
config.vm.box_url = box_repo + "/vagrant-" + box_name
# big timeout since windows boot is very slow
config.vm.boot_timeout = 500
# rdp forward
config.vm.network "forwarded_port", guest: 3389, host: 3389, id: "rdp", auto_correct: true
# winrm config, uses modern.ie default user/password. If other credentials are used must be changed here
config.vm.communicator = "winrm"
config.winrm.username = "IEUser"
config.winrm.password = "Passw0rd!"
config.vm.provider "virtualbox" do |vb|
# first setup requires gui to be enabled so scripts can be executed in virtualbox guest screen
#vb.gui = true
vb.customize ["modifyvm", :id, "--memory", "1024"]
vb.customize ["modifyvm", :id, "--vram", "128"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000]
end
end
Мои дополнительные изменения:
# Need the WinRM gem for managing from Linux
$ sudo gem install winrm
config.vm.communicator = "winrm"
+ config.winrm.host = "localhost"
config.winrm.username = "IEUser"
config.winrm.password = "Passw0rd!"
# This one may not be necessary, I added it for completeness
+ config.vm.guest = :windows
# In order to USE the two CPUs you need the ioapic
# Virtualbox gives an error in the GUI and only shows 1 CPU in the VM otherwise
vb.customize ["modifyvm", :id, "--cpus", "2"]
+ vb.customize ["modifyvm", :id, "--ioapic", "on"]
# We had to modify the network range because we are running Virtualbox inside VMware
+ vb.customize ["modifyvm", :id, "--natnet1", "192.168.199.0/24"]
Удалите + знаки и добавить эти строки в Vagrantfile выше, и вы должны иметь эквивалентную рабочую систему к тому, что я использую.
Похоже, вы пытаетесь запустить встроенный гипервизор типа 2. Во-первых, не все гипервизоры поддерживают запуск другого гипервизора (такого же или diff) внутри него. Во-вторых, действительно ли вы включили опцию в настройках виртуальной машины - ЦП - «Визуализировать Intel VT-x или AMD-V»? –
BTW: VirtualBox внутри VirtualBox возможен, если вы активируете ускорение VT-x/AMD-V. –
Я могу подтвердить комментарий Терри - на моем предыдущем месте мы запустили Vagrant VM в виртуальных виртуальных машинах vSphere, чтобы построить и протестировать новые ящики с ядром Vagrant :) –