64-Bit-Windows-Gast in VirtualBox ohne VT-x-Unterstützung nicht möglich? [Duplikat]


8

Ich habe Windows Vista 32-Bit erfolgreich in einer VM mit VirtualBox installiert. Jetzt versuche ich dasselbe mit Windows Vista 64-Bit zu tun und es funktioniert einfach nicht. Ich habe die VM erstellt, aber es scheint, dass sie nicht vom 64-Bit-Vista-ISO-Image gestartet wird. Es spuckt diesen Boot-Manager-Fehler aus.

ein

Das Host-Betriebssystem ist Windows 7 64-Bit auf einem 64-Bit-Intel Core 2 Duo-Prozessor. Jetzt habe ich dasselbe getan und dieselbe VirtualBox-Version auf einem anderen Computer installiert, auf dem auch Windows 7 64-Bit ausgeführt wird, die VM erstellt und dann ... während des VM-Setup-Vorgangs festgestellt, dass zusätzliche Optionen zur Auswahl standen wenn ich den Gast Os auswähle. Hier ist ein Screenshot.

b

Sie können diese Optionen dazwischen sehen, wo 64-Bit steht. Ich habe diese Optionen nicht auf diesem anderen Computer. Jetzt läuft auf diesem ein Intel Core 2 Quad, ein High-End-Modell. Es unterstützt die Intel-Virtualisierungstechnologie, die andere nicht.

So sieht der gleiche Dialog auf dem Core 2 Duo-Computer aus. Hier ist ein Screenshot.

c

Könnte dies der Grund sein? Heißt das , dass Sie ein 64-Bit - Windows - Gastbetriebssystem nicht emulieren können überhaupt mit VirtualBox, es sei denn , Ihr Prozessor unterstützt Intel - Virtualisierungstechnologie? Ich verstehe, dass diese Technologie die Dinge viel schneller macht, aber Sie dieses Betriebssystem überhaupt nicht emulieren lassen ... das ist ein bisschen extrem, nein?

Wenn ja, was schlagen Sie stattdessen vor?


@Ramhound Haben Sie gerade gefragt, ob ich sicher bin, dass ich ein 64-Bit-Betriebssystem verwende, und dann Ihre Meinung geändert? Ich habe den Kommentar in meinem Posteingang. Nun, was auch immer es wert ist, ja, ich bin sicher, dass auf beiden Computern die 64-Bit-Version von Windows 7 ausgeführt wird.
Samir

@ Ramhound Einschränkung der Hardware? Sie stimmen also zu, dass dies mit der Unterstützung von VT-x oder vielmehr mit deren Fehlen zu tun hat?
Samir

Unabhängig von Hardwarebeschränkungen sollten Sie immer in der Lage sein, Dinge in Software zu tun. Dies ist einer der Vorteile der Virtualisierung, da Sie damit die physische Hardware in der Software vollständig ersetzen können. Ich weiß, dass Intel VT-x gut zu haben ist, aber warum sollten Sie nicht in der Lage sein, 64-Bit-Betriebssysteme in VirtualBox vollständig in Software zu emulieren, selbst wenn es extrem langsam ist? Warum erlauben sie dir das nicht? Dies ist eher eine Einschränkung in VirtualBox.
Samir

Emm ... meinst du nicht "du kannst nichts in Software machen, wenn die Hardware es nicht unterstützt"?
Samir

Antworten:


18

In Abschnitt 3.1.2 des VirtualBox-Handbuchs wird ausdrücklich angegeben, dass Sie Unterstützung für die Hardwarevirtualisierung benötigen, um 64-Bit-Gastbetriebssysteme verwenden zu können (Hervorhebung hinzugefügt):

VirtualBox unterstützt 64-Bit-Gastbetriebssysteme, auch auf 32-Bit-Hostbetriebssystemen, sofern die folgenden Bedingungen erfüllt sind:

  1. Sie benötigen einen 64-Bit-Prozessor mit Unterstützung für Hardwarevirtualisierung (siehe Abschnitt 10.3, „Hardware- und Softwarevirtualisierung“).

  2. Sie müssen die Hardwarevirtualisierung für die bestimmte VM aktivieren, für die Sie 64-Bit-Unterstützung wünschen. Die Softwarevirtualisierung wird für 64-Bit-VMs nicht unterstützt.

  3. Wenn Sie die 64-Bit-Gastunterstützung auf einem 32-Bit-Host-Betriebssystem verwenden möchten, müssen Sie auch ein 64-Bit-Betriebssystem für die jeweilige VM auswählen. Da die Unterstützung von 64 Bit auf 32-Bit-Hosts zusätzlichen Overhead verursacht, aktiviert VirtualBox diese Unterstützung nur auf ausdrückliche Anfrage.

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

In Abschnitt 10.3 heißt es auch (Hervorhebung hinzugefügt):

Für die 64-Bit-Gastunterstützung von VirtualBox (hinzugefügt mit Version 2.0) und Multiprocessing (SMP, hinzugefügt mit Version 3.0) muss die Hardwarevirtualisierung aktiviert sein . (Dies ist keine große Einschränkung, da die überwiegende Mehrheit der heutigen 64-Bit- und Multicore-CPUs ohnehin mit Hardwarevirtualisierung geliefert wird. Ausnahmen von dieser Regel sind beispielsweise ältere Intel Celeron- und AMD Opteron-CPUs.)

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

Daher benötigen Sie einen Prozessor, der VT-x oder AMD-V unterstützt, um 64-Bit-Gäste mit VirtualBox zu verwenden. Jedoch , QEMU, Bochs und VMWare Player alle Unterstützung 64-Bit - Gäste ohne Hardware - Virtualisierungsunterstützung (zumindest nach dieser Seite ).


Ja ... und das ist unglücklich. Ich dachte, das bezog sich nur auf 64-Bit-Gäste auf 32-Bit-Hosts. In Kapitel 10 heißt es jedoch ausdrücklich, dass Hardwarevirtualisierung eine Voraussetzung ist. Ich frage mich jedoch, warum dies für 32-Bit-Gäste nicht erforderlich ist. Warum nur 64-Bit?
Samir

Ich habe Ihnen eine Abstimmung gegeben, obwohl ich diesen genauen Text bereits in meiner eigenen Antwort veröffentlicht habe. Danke für die Mühe! Ich werde meine Antwort mit Ihrer zusammenführen, wenn das in Ordnung ist.
Samir

Kennen Sie eine andere Virtualisierungssoftware (vorzugsweise kostenlos und Open Source), die ein 64-Bit-Windows ohne die Unterstützung der Hardwarevirtualisierung emulieren kann?
Samir

@sammyg es sieht so aus, als ob QEMU, Bochs und VMWare Player es alle unterstützen, siehe meine neueste Version.
nc4pk

Nicht wahr. VMware Player erfordert auch eine Virtualisierung, um 64-Bit-Raten auszuführen, ebenso wie andere Hypervisoren. Sie können nur 64-Bit - Vermutung ohne Virtualisierungen auf einem Emulator laufen wie Bochs oder Qemu oder eine Paravirtualisierung Software wie Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv

0

Keine Hypervisoren für virtuelle Maschinen unterstützen virtuelle 64-Bit-Maschinen in einer x86-CPU ohne Virtualisierung, da eine Isolierung der virtuellen Maschine ohne diese nicht möglich wäre.

Der Grund wurde in Wikipedia erwähnt (Schwerpunkt Mine):

Die ursprüngliche Version von x86-64 (AMD64) ermöglichte keine vollständige Virtualisierung nur durch Software, da im Langmodus keine Segmentierungsunterstützung vorhanden war , was den Schutz des Speichers des Hypervisors unmöglich machte , insbesondere den Schutz des Trap-Handlers das läuft im Adressraum des Gastkerns.

Revision D und spätere 64-Bit-AMD-Prozessoren (als Faustregel solche, die in 90 nm oder weniger hergestellt wurden) fügten grundlegende Unterstützung für die Segmentierung im Langmodus hinzu und ermöglichten die Ausführung von 64-Bit-Gästen auf 64-Bit-Hosts über binäre Übersetzung . Intel hat seiner x86-64-Implementierung (Intel 64) keine Segmentierungsunterstützung hinzugefügt, wodurch eine reine 64-Bit-Virtualisierung auf Intel-CPUs unmöglich wird. Die Intel VT-x-Unterstützung ermöglicht jedoch eine hardwaregestützte 64-Bit-Virtualisierung auf der Intel-Plattform

VMWare sagte auch, dass der Mangel an Virtualisierung den Schutz der VM in Frage stellt

Herausforderungen bei der Virtualisierung von x86-64

  • Die anfängliche AMD64-Architektur enthielt keine Segmentierung im 64-Bit-Modus
    • Segmentierung fehlt auch in EM64T

Wie schützen wir den VMM?

  • Für die 64-Bit-Gastunterstützung ist zusätzliche Hardwareunterstützung erforderlich
    • Segmentlimitprüfungen im 64-Bit-Modus auf neueren AMD-Prozessoren verfügbar
    • VT-x kann zum Schutz des VMM auf EM64T verwendet werden
      • Erfordert einen Trap-and-Emulate-Ansatz anstelle von BT

Weiterlesen:

Intel-CPUs benötigen EM64T- und VT-Unterstützung im Chip und im BIOS, um virtuelle 64-Bit-Maschinen auszuführen. In diesem Artikel können Sie sicherstellen, dass Ihr Prozessor VT-fähig ist, und Sie erfahren, wie Sie diese Funktion aktivieren.
Http://kb.vmware.com/selfservice/microsites/search.do?language=de_DE&cmd=displayKC&externalId=1003944


In diesem Fall können Sie nur einen Emulator wie QEMU oder Bochs oder eine Paravirtualisierungssoftware wie Xen verwenden.

Lesen Sie mehr: Ausführen von x86-64 ASM auf einem x86-32-Prozessor

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.