¿Invitado de Windows de 64 bits en VirtualBox imposible sin soporte VT-x? [duplicar]

8

Instalé con éxito Windows Vista de 32 bits en una VM con VirtualBox. Ahora estoy tratando de hacer lo mismo con Windows Vista de 64 bits y simplemente no funciona. He creado la VM pero parece que no arrancará desde la imagen ISO Vista de 64 bits. Escupe este error del administrador de arranque.

una

El sistema operativo host es Windows 7 de 64 bits en un procesador Intel Core 2 Duo de 64 bits. Ahora, hice lo mismo e instalé la misma versión de VirtualBox en otra computadora, también con Windows 7 de 64 bits, creé la VM, y luego ... durante el proceso de configuración de la VM noté que tenía opciones adicionales para elegir cuando elijo al invitado Os. Aquí hay una captura de pantalla.

si

Puede ver esas opciones intermedias donde dice 64 bits, no tengo esas opciones en esa otra computadora. Ahora, este ejecuta un Intel Core 2 Quad, un modelo de gama alta. Es compatible con la tecnología de virtualización Intel, mientras que la otra no.

Así es como se ve el mismo diálogo en la computadora Core 2 Duo. Aquí hay una captura de pantalla.

C

¿Podría ser este el motivo? ¿Eso significa que no se puede emular un sistema operativo invitado de Windows de 64 bits en absoluto con VirtualBox, a menos que su procesador es compatible con la tecnología de virtualización de Intel? Entiendo que esta tecnología hace las cosas mucho más rápidas, pero no te permite emular ese sistema operativo ... eso es un poco extremo, ¿no?

Si es así, ¿qué sugieres que use en su lugar?

Samir
fuente
@Ramhound ¿Acabas de preguntar si estoy seguro de que estoy ejecutando un sistema operativo de 64 bits y luego cambiaste de opinión? Recibí el comentario en mi bandeja de entrada. Bueno, por si sirve de algo, sí, estoy seguro que ambos equipos están ejecutando la versión de 64 bits de Windows 7.
Samir
@ Limitación de Ramhound del hardware? Entonces, ¿está de acuerdo con que esto tiene que ver con el soporte VT-x, o más bien con la falta del mismo?
Samir
Independientemente de las limitaciones de hardware, siempre debe poder hacer cosas en el software. Ese es uno de los beneficios de la virtualización, porque le permite reemplazar completamente el hardware físico en el software. Sé que Intel VT-x es bueno, pero ¿por qué no debería ser capaz de emular el sistema operativo de 64 bits en VirtualBox todo en software, incluso si es extremadamente lento? ¿Por qué no te permiten hacer eso? Esto es más bien una limitación en VirtualBox.
Samir
Emm ... ¿no quieres decir "no puedes hacer algo en el software si el hardware no lo admite"?
Samir

Respuestas:

18

La Sección 3.1.2 del manual de VirtualBox establece explícitamente que necesita soporte de virtualización de hardware para usar sistemas operativos invitados de 64 bits (énfasis agregado):

VirtualBox admite sistemas operativos invitados de 64 bits, incluso en sistemas operativos host de 32 bits, siempre que se cumplan las siguientes condiciones:

  1. Necesita un procesador de 64 bits con soporte de virtualización de hardware (consulte la Sección 10.3, “Virtualización de hardware frente a software”).

  2. Debe habilitar la virtualización de hardware para la VM particular para la que desea compatibilidad con 64 bits; La virtualización de software no es compatible con máquinas virtuales de 64 bits.

  3. Si desea utilizar la compatibilidad con invitados de 64 bits en un sistema operativo host de 32 bits, también debe seleccionar un sistema operativo de 64 bits para la VM en particular. Dado que admitir 64 bits en hosts de 32 bits conlleva una sobrecarga adicional, VirtualBox solo habilita este soporte a pedido explícito.

Fuente: https://www.virtualbox.org/manual/ch03.html#intro-64bitguests

La Sección 10.3 también establece esto (énfasis agregado):

El soporte para invitados de 64 bits de VirtualBox (agregado con la versión 2.0) y el multiprocesamiento (SMP, agregado con la versión 3.0) requieren que se habilite la virtualización de hardware . (Esto no es una gran limitación, ya que la gran mayoría de las CPU de 64 bits y multinúcleo actuales se envían con virtualización de hardware de todos modos; las excepciones a esta regla son, por ejemplo, las CPU Intel Celeron y AMD Opteron más antiguas).

Fuente: https://www.virtualbox.org/manual/ch10.html#hwvirt

Por lo tanto, necesita un procesador que admita VT-x o AMD-V para usar invitados de 64 bits con VirtualBox. Sin embargo , QEMU, Bochs y VMWare Player admiten invitados de 64 bits sin soporte de virtualización de hardware (al menos de acuerdo con esta página ).

nc4pk
fuente
Sí ... y eso es lamentable. Pensé que se refería solo a invitados de 64 bits en hosts de 32 bits. Pero del capítulo 10 dicen específicamente que la virtualización de hardware es un requisito. Sin embargo, me pregunto, ¿cómo es que esto no es un requisito para los huéspedes de 32 bits? ¿Por qué solo 64 bits?
Samir
Le he dado un voto positivo a pesar de que ya publiqué este texto exacto en mi propia respuesta. ¡Gracias por el esfuerzo! Combinaré mi respuesta con la tuya si está bien.
Samir
¿Conoces algún otro software de virtualización (preferiblemente gratuito y de código abierto) que pueda emular un Windows de 64 bits sin el soporte de virtualización de hardware?
Samir
@sammyg parece que QEMU, Bochs y VMWare Player lo admiten, vea mi última revisión.
nc4pk
No es verdad. El reproductor VMware también requiere virtualización para ejecutar una conjetura de 64 bits, al igual que otros hipervisores. Solo puede ejecutar conjeturas de 64 bits sin virtualizaciones en un emulador como Bochs o qemu o un software de paravirtualización como Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv
0

Ningún hipervisor de máquina virtual admite máquinas virtuales de 64 bits en una CPU x86 sin virtualización, porque el aislamiento de la máquina virtual sería imposible sin ella.

La razón fue mencionada en Wikipedia (énfasis mío):

La versión inicial de x86-64 (AMD64) no permitía una virtualización completa solo de software debido a la falta de soporte de segmentación en modo largo , lo que hacía imposible la protección de la memoria del hipervisor , en particular, la protección del controlador de trampa que se ejecuta en el espacio de direcciones del kernel invitado.

La revisión D y los procesadores AMD de 64 bits posteriores (como regla general, aquellos fabricados en 90 nm o menos) agregaron soporte básico para la segmentación en modo largo, haciendo posible ejecutar invitados de 64 bits en hosts de 64 bits mediante traducción binaria . Intel no agregó soporte de segmentación a su implementación x86-64 (Intel 64), lo que hace imposible la virtualización solo de software de 64 bits en las CPU Intel, pero el soporte Intel VT-x hace posible la virtualización asistida por hardware de 64 bits en la plataforma Intel

VMWare también dijo que la falta de virtualización hace que desafíe la protección de la VM

Retos de virtualizar x86-64

  • La arquitectura AMD64 inicial no incluía segmentación en modo de 64 bits
    • La segmentación también falta en EM64T

¿Cómo protegemos el VMM?

  • El soporte para invitados de 64 bits requiere asistencia de hardware adicional
    • Verificaciones de límite de segmento disponibles en modo de 64 bits en procesadores AMD más nuevos
    • VT-x se puede usar para proteger el VMM en EM64T
      • Requiere un enfoque de atrapar y emular en lugar de BT

Lee mas:

Las CPU Intel requieren compatibilidad con EM64T y VT en el chip y en el BIOS para ejecutar máquinas virtuales de 64 bits. Este artículo le ayuda a asegurarse de que su procesador sea compatible con VT, y también le indica cómo habilitar esta función
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944


La única forma en este caso es usando un emulador como QEMU o Bochs , o un software de paravirtualización como Xen.

Leer más: Ejecutar x86-64 ASM en un procesador x86-32

phuclv
fuente