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

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

2 ответа2

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .