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? Я понимаю, что эта технология делает вещи намного быстрее, но не позволяет вам эмулировать эту ОС вообще ... это немного экстремально, нет?

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


@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-разрядные гостевые системы без поддержки аппаратной виртуализации (по крайней мере, согласно этой странице ).


Да ... и это прискорбно. Я думал, что это относится только к 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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.