64-битный гостевой Windows в VirtualBox невозможен без поддержки VT-x? [Дубликат]

8

Я успешно установил 32-битную Windows Vista на виртуальную машину с VirtualBox. Теперь я пытаюсь сделать то же самое с 64-битной Windows Vista, и она просто не работает. Я создал виртуальную машину, но кажется, что она не загружается с 64-битного образа ISO Vista. Это выкладывает эту ошибку менеджера загрузки.

a

Основной операционной системой является Windows 7 64-разрядная на 64-разрядном процессоре Intel Core 2 Duo. Теперь я сделал то же самое и установил ту же версию VirtualBox на другом компьютере, также работающем под управлением Windows 7 64-bit, создал виртуальную машину, а затем ... во время процесса установки виртуальной машины я заметил, что у него есть дополнительные опции на выбор. когда я выбираю гостя Ос. Вот скриншот.

б

Вы можете увидеть эти опции между 64-битными, у меня нет этих опций на другом компьютере. Теперь этот процессор работает под управлением Intel Core 2 Quad, более совершенной модели. Он поддерживает технологию виртуализации Intel, а другая - нет.

Так выглядит тот же диалог на компьютере с Core 2 Duo. Вот скриншот.

с

Может ли это быть причиной, почему? Значит ли это , что вы не можете эмулировать 64-разрядную гостевую ОС Windows с вообще с VirtualBox, если ваш процессор не поддерживает технологию виртуализации Intel? Я понимаю, что эта технология делает вещи намного быстрее, но не позволяет вам эмулировать эту ОС вообще ... это немного экстремально, нет?

Если так, что вы предлагаете мне использовать вместо этого?

Samir
источник
@Ramhound Вы только что спросили, уверен ли я, что у меня 64-битная операционная система, а потом передумали? Я получил комментарий в моем почтовом ящике. Что бы это ни стоило, да, я уверен, что на обоих компьютерах установлена ​​64-разрядная версия Windows 7.
Самир,
@Ramhound Ограничение оборудования? То есть вы согласны, что это связано с поддержкой VT-x или, скорее, с ее отсутствием?
Самир
Независимо от аппаратных ограничений, вы всегда должны иметь возможность делать что-то в программном обеспечении. Это одно из преимуществ виртуализации, поскольку она позволяет полностью заменить физическое оборудование в программном обеспечении. Я знаю, что Intel VT-x полезен, но почему вы не можете эмулировать 64-битную ОС в VirtualBox полностью программно, даже если она очень медленная? Почему они не позволяют вам сделать это? Это скорее ограничение в VirtualBox.
Самир
Эмм ... разве вы не имеете в виду "вы не можете делать что-то в программном обеспечении, если оборудование не поддерживает это"?
Самир

Ответы:

18

В разделе 3.1.2 руководства VirtualBox прямо указано, что вам необходима поддержка аппаратной виртуализации для использования 64-битных гостевых операционных систем (выделение добавлено):

VirtualBox поддерживает 64-битные гостевые операционные системы, даже в 32-битных хост-операционных системах, при условии соблюдения следующих условий:

  1. Вам нужен 64-битный процессор с поддержкой аппаратной виртуализации (см. Раздел 10.3, «Аппаратная и программная виртуализация»).

  2. Вы должны включить аппаратную виртуализацию для конкретной виртуальной машины, для которой требуется поддержка 64-разрядных систем; виртуализация программного обеспечения не поддерживается для 64-битных виртуальных машин.

  3. Если вы хотите использовать 64-разрядную гостевую поддержку в 32-разрядной операционной системе хоста, вы также должны выбрать 64-разрядную операционную систему для конкретной виртуальной машины. Поскольку поддержка 64 битов на 32-битных хостах влечет за собой дополнительные издержки, VirtualBox включает эту поддержку только по явному запросу.

Источник: https://www.virtualbox.org/manual/ch03.html#intro-64bitgtests

Раздел 10.3 также утверждает это (выделение добавлено):

Для поддержки 64-разрядной гостевой системы VirtualBox (добавлена ​​в версии 2.0) и многопроцессорной обработки (SMP, добавлена ​​в версии 3.0) требуется включить аппаратную виртуализацию . (Это не является большим ограничением, поскольку подавляющее большинство современных 64-битных и многоядерных процессоров в любом случае поставляются с аппаратной виртуализацией; исключениями из этого правила являются, например, старые процессоры Intel Celeron и AMD Opteron.)

Источник: https://www.virtualbox.org/manual/ch10.html#hwvirt

Таким образом, вам нужен процессор, который поддерживает VT-x или AMD-V, чтобы использовать 64-битные гостевые системы с VirtualBox. Однако QEMU, Bochs и VMWare Player поддерживают 64-разрядные гостевые системы без поддержки аппаратной виртуализации (по крайней мере, согласно этой странице ).

nc4pk
источник
Да ... и это прискорбно. Я думал, что это относится только к 64-битным гостям на 32-битных хостах. Но из главы 10 конкретно говорится, что аппаратная виртуализация является требованием. Интересно, почему же это не является обязательным требованием для 32-разрядных гостей? Почему только 64-битный?
Самир
Я проголосовал за вас, хотя уже опубликовал этот точный текст в своем собственном ответе. Спасибо за попытку! Я объединю свой ответ с твоим, если все в порядке.
Самир
Знаете ли вы какое-либо другое программное обеспечение для виртуализации (желательно бесплатное и с открытым исходным кодом), которое может эмулировать 64-разрядную версию Windows без поддержки аппаратной виртуализации?
Самир
@ sammyg похоже, что QEMU, Bochs и VMWare Player все поддерживают его, смотрите мою последнюю версию.
nc4pk
Не правда. VMware Player также требует виртуализации для запуска 64-битных предположений, как и другие гипервизоры. Вы можете запустить 64-битное предположение без виртуализаций на эмуляторе, таком как Bochs или qemu, или на программном обеспечении для паравиртуализации, таком как Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv
0

Ни один гипервизор виртуальных машин не поддерживает 64-битные виртуальные машины в процессоре x86 без виртуализации, потому что изоляция виртуальной машины была бы невозможна без нее.

Причина была упомянута в Википедии (выделено мной):

Первоначальная версия x86-64 (AMD64) не допускала полную виртуализацию только для программного обеспечения из-за отсутствия поддержки сегментации в длинном режиме , что делало невозможной защиту памяти гипервизора , в частности защиту обработчика ловушек который работает в адресном пространстве гостевого ядра.

64-разрядные процессоры AMD версии D и более поздние (как правило, производимые с шагом 90 нм или менее) добавили базовую поддержку сегментации в длинном режиме, что позволило запускать 64-разрядные гостевые системы на 64-разрядных хостах посредством двоичной трансляции , Intel не добавила поддержку сегментации в свою реализацию x86-64 (Intel 64), что делает невозможной 64-разрядную программную виртуализацию на процессорах Intel, но поддержка Intel VT-x делает возможной 64-разрядную аппаратную виртуализацию на платформе Intel

VMWare также сказал, что отсутствие виртуализации делает ее сложной задачей для защиты виртуальной машины.

Проблемы виртуализации x86-64

  • Начальная архитектура AMD64 не включала сегментацию в 64-битном режиме
    • Сегментация также отсутствует в EM64T

Как мы защищаем VMM?

  • Поддержка 64-битного гостя требует дополнительной аппаратной помощи
    • Ограничения сегментов доступны в 64-битном режиме на новых процессорах AMD
    • VT-x может использоваться для защиты VMM на EM64T
      • Требует подхода ловушки и эмуляции вместо BT

Читать далее:

Процессорам Intel требуется поддержка EM64T и VT в чипе и в BIOS для запуска 64-битных виртуальных машин. Эта статья поможет вам убедиться, что ваш процессор поддерживает VT, а также научит вас, как включить эту функцию
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944.


Единственный способ в этом случае - использовать эмулятор, такой как QEMU или Bochs , или программное обеспечение для паравиртуализации, такое как Xen.

Подробнее: Запуск x86-64 ASM на процессоре x86-32

phuclv
источник