Я только что хотел установить Ubuntu на виртуальную машину VirtualBox. В ответ VirtualBox выдал мне ошибку:
VT-x не включен
Я погуглил, что это может быть вызвано включенным Hyper-V в моей Windows 8.1.
Я отключил его, и это решило мою проблему. Затем я начал читать о Hyper-V, и оказалось, что это супер-удивительный инструмент Microsoft для виртуализации.
Кажется немного странным, что инструмент виртуализации отключает виртуализацию.
- Для чего на самом деле нужен Hyper-V?
- Каковы последствия его отключения?
- Почему не работает с VirtualBox?
решение1
Кажется немного странным, что инструмент виртуализации отключает виртуализацию.
Чтобы понять это, вам нужно знать, что происходит с вашей системой при использовании виртуализации.
Если виртуализация не включена, ваша система ведет себя следующим образом:
[ Оборудование ] -> [ Операционная система ] -> [ Приложения ] -> [ Вы ]
При использовании Hyper-V появляется дополнительный слой:
[ Оборудование ] -> [ Гипервизор виртуализации ] -> [ Одна из нескольких ОС ] -> [ Приложения в этой ОС ] -> [ Вы ]
Включив Hyper-V, вы получаете гипервизор, хотя вы и не замечаете никакой разницы. Теперь,обратите внимание, что гипервизор находится прямо над оборудованиемс Hyper-V. Серверные продукты VMWare действуют таким же образом.
Таким образом, когда Hyper-V включен, вы находитесь «внутри» гипервизора, даже если в данный момент у вас запущена только одна «гостевая» ОС (ваша ОС до Hyper-V).
Аппаратное обеспечение x86 НЕ поддерживает "вложенные" гипервизоры. Инструкция VMXON, которая его настраивает, вызовет "выход VM", если включена аппаратная виртуализация. Таким образом, когда гипервизор активен, если ОС в этом гипервизоре пытается настроить виртуализацию, обычно гипервизор просто сообщает гостевой ОС, что виртуализация не поддерживается.
Гипервизор может «эмулировать» аппаратную виртуализацию, если он действительно хочет разрешить гостевым ОС использовать функции виртуализации, но, как вы видите, Hyper-V решил этого не делать (в любом случае, это сложно сделать).
Теперь, если вы используете VMWare Player или Virtual PC таким образом:
[ Оборудование ] -> [ Операционная система ] -> [ Приложение виртуальной машины, на котором запущена ОС ] -> [ Вы ]
VMWare player может поддерживать несколько своих копий в порядке (он устанавливает несколько драйверов), так что вы можете запускать несколько VMWare player без проблем. Я не уверен, пробовали ли вы запускать VMWare player и Virtual PC — это, вероятно, не сработает.
решение2
Hyper-V
— это версия гипервизора от Microsoft (например, VirtualBox). VT-x
Представляет технологию Intel для виртуализации на платформе x86. На некоторых материнских платах это можно включить в настройках BIOS. Без включения этого параметра в BIOS ваша виртуальная среда не будет ускорена через базовое оборудование.
Чтобы ответить на ваш вопрос об отключении, Hyper-V
а затем разрешить VirtualBox доступ к VT-x
. См. этот форумhttp://social.technet.microsoft.com/Forums/windows/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum=w8itprogeneral
Потому что когда hyper-V установлен на Windows 8 Pro, гипервизор работает все время под хостовой ОС, и только что-то одно может контролировать оборудование VT в каждый момент времени для обеспечения стабильности. Гипервизор блокирует все остальные вызовы к оборудованию VT.
Вот несколько моментов из MS Technet. Лично я бы не стал использовать Hyper-V, так как мне нравится схема конфигурации VirtualBox. Если бы мне нужна была безголовая виртуальная машина, я бы бросил экземпляр на свой кластер Proxmox.
Hyper-V — это безголовая виртуализация, которая работает непосредственно на оборудовании, в то время как Virtualbox требует ОС и представляет собой приложение виртуализации, работающее на вашем рабочем столе.
VirtualBox — это то, что вы можете использовать для непосредственной работы с виртуальной машиной, особенно если вам нужен звук, USB и очень широкий спектр поддерживаемых ОС.
Hyper-V предназначен для размещения серверов, где вам не нужно много дополнительного оборудования для настольных компьютеров (например, USB). Hyper-V должен быть быстрее VirtualBox во многих сценариях. Вы получаете такие вещи, как кластеризация, объединение сетевых карт, живая миграция и т. д., которые вы ожидаете от серверного продукта.
решение3
Hyper-V действительно блокирует VT-x для вышележащей ОС. Но то немногое, что мне помогло, это включение и выключение Hyper-V при необходимости (не установка/удаление, что довольно сложно), как описаноздесьс помощью следующих команд
bcdedit /set hypervisorlaunchtype off
bcdedit /set hypervisorlaunchtype auto start
Теперь вы сможете использовать Heper-V и VirtualBox по мере необходимости (конечно, не сразу, а с помощью «однократной перезагрузки»).