2008-09-11 10 views
88

Kann ich ein 64-Bit-VMware-Image auf einer 32-Bit-Maschine ausführen?Kann ich ein 64-Bit-VMware-Image auf einer 32-Bit-Maschine ausführen?

Ich habe das gegoogelt, aber es scheint keine schlüssige Antwort zu geben.

Ich weiß, dass es vollständig emuliert werden müsste und würde wie ein Hund laufen - aber langsame Leistung ist nicht unbedingt ein Problem, da ich nur einige der Hintergrunddienste Code auf 64-Bit-Plattformen testen möchte.

+0

Ich kann Ihnen eine Möglichkeit geben, eine [64-Bit-basierte virtuelle Maschine] (http://www.youtube.com/watch?v=oFtRw38VIc4&feature=youtu.be) zu installieren, ohne einen Hypervisor wie vmware oder hyper installiert zu haben v. – user2050269

Antwort

121

Der einfachste Weg, Ihre Workstation zu überprüfen, ist das Tool VMware Processor Check for 64-Bit Compatibility von der VMware-Website herunterzuladen.

Sie können keine 64-Bit-VM-Sitzung auf einem 32-Bit-Prozessor ausführen. Sie können jedoch eine 64-Bit-VM-Sitzung ausführen, wenn Sie einen 64-Bit-Prozessor haben, aber ein 32-Bit-Hostbetriebssystem installiert haben und Ihr Prozessor die richtigen Erweiterungen unterstützt. Das oben verlinkte Tool sagt Ihnen, ob es bei Ihnen funktioniert.

+3

Super! Ich wusste nie, dass dieses Werkzeug existiert !! – saschabeaumont

+5

Der obige Link führt Sie nicht mehr zu einer Seite, die auf das Prozessor-Prüftool verweist. Hier ist ein direkter Link: http://downloads.vmware.com/d/details/processor_check_for_64_bit_compatibility_6_0/JWpiQHBqYiVo –

+3

@Phil Ross - Danke! Ich habe den Link in der Antwort mit der von Ihnen geposteten URL aktualisiert. –

3

Ich bezweifle es ehrlich, aus einer Reihe von Gründen, aber die wichtigste ist, dass es einige Anweisungen gibt, die im 32-Bit-Modus erlaubt sind, aber nicht im 64-Bit-Modus. Insbesondere ist das REX-Präfix, das zum Codieren einiger Befehle und Register im 64-Bit-Modus verwendet wird, ein Byte der Form 0x4f: 0x40, aber im 32-Bit-Modus ist das gleiche Byte entweder INC oder DEC mit einem festen Operanden.
Aus diesem Grund wird jeder 64-Bit-Befehl mit dem Präfix REX als INC oder DEC interpretiert und gibt dem VMM nicht die Möglichkeit, den 64-Bit-Befehl zu emulieren (z. B. durch Signalisierung einer nicht definierten Opcode-Ausnahme)).

Die einzige Möglichkeit besteht darin, eine Trap-Ausnahme zu verwenden, um nach jeder Anweisung zum VMM zurückzukehren, um festzustellen, ob eine spezielle 64-Bit-Behandlung erforderlich ist. Ich kann das einfach nicht sehen.

+1

VMWare würde solch ein Fallensystem nicht benötigen. Wenn sie keine Hardwarevirtualisierungsunterstützung verwenden, prüfen sie jeden Basisblock auf privilegierte Anweisungen und ersetzen sie durch Aufrufe an ihre Handler. Sie können/können/machen das gleiche für x64-Anweisungen, aber das würde es zu einem Emulator machen - nicht ihre Sache. –

3

VMware? Nein. QEMU verfügt jedoch über ein x86_64-Systemziel, das Sie verwenden können. Sie werden wahrscheinlich nicht in der Lage sein, ein VMware-Image direkt zu verwenden (IIRC, es gibt kein Konvertierungstool), aber Sie können das Betriebssystem und dergleichen selbst installieren und darin arbeiten. QEMU kann ein bisschen wie ein PITA sein, um aufzustehen und zu laufen, aber es tendiert dazu, ziemlich gut zu funktionieren.

2

Ja, Sie können. Ich habe ein 64-Bit-Debian in VMware unter Windows   XP 32-Bit ausgeführt. Solange Sie den Gast auf die Verwendung von zwei Prozessoren einstellen, wird es problemlos funktionieren.

30

Wenn Sie über 32-Bit-Hardware verfügen, können Sie kein 64-Bit-Gastbetriebssystem ausführen. "VMware software does not emulate an instruction set for different hardware not physically present".

jedoch QEMU kann einen 64-Bit-Prozessor emulieren, so könnten Sie die VMWare-Maschine und führen Sie es mit diesem

Von this 2008-era blog post (mirrored by archive.org) konvertieren:

$ cd /path/to/vmware/guestos 
$ for i in \`ls *[0-9].vmdk\`; do qemu-img convert -f vmdk $i -O raw {i/vmdk/raw};done 
$ cat *.raw >> guestos.img 

Um es auszuführen,

qemu -m 256 -hda guestos.img 

Der Nachteil? Die meisten von uns führen VMware ohne Vorbelegungsspeicher für die virtuelle Festplatte aus. Wenn wir also eine Konvertierung von VMware zu QEMU vornehmen, ist die Raw-Datei der gesamte Speicherplatz mit Vorbelegung.Ich teste noch mit -f qcow Format wird es lösen das Problem oder nicht. Wie zum Beispiel:

for i in `ls *[0-9].vmdk`; do qemu-img convert -f vmdk $i -O qcow ${i/vmdk/qcow}; done && cat *.qcow >> debian.img 
4

Es hinausläuft, ob die CPU in Ihrer Maschine hat die VT-Bit (Virtualisierung) und das BIOS ermöglicht es Ihnen, um es einzuschalten. Zum Beispiel ist mein Laptop ein Core 2 Duo, der in der Lage ist, dies zu verwenden. Mein BIOS ermöglicht es mir jedoch nicht, es einzuschalten.

Beachten Sie, dass das Einschalten dieser Funktion den normalen Betrieb um 10-12% verlangsamen kann, weshalb er normalerweise ausgeschaltet ist.

3

Mit VMware können Sie keinen 64-Bit-Gast auf einem 32-Bit-Host ausführen. Sie müssen nur die Dokumentation lesen, um dies herauszufinden.

Wenn Sie dies wirklich tun möchten, können Sie QEMU verwenden, und ich empfehle einen Linux-Host, aber es wird sehr langsam (ich meine wirklich langsam).

10

Ja, ein 64-Bit-Betriebssystem in VMWare ist von einem 32-Bit-Betriebssystem aus möglich, wenn Sie einen 64-Bit-Prozessor haben.

Ich habe eine alte Intel Core 2 Duo mit Windows   XP Professional 2002 läuft darauf, und ich habe es zur Arbeit.

Überprüfen Sie zunächst, ob Ihre CPU ein 64-Bit-Betriebssystem ausführen kann. Suchen Sie auf der VMware-Website nach "Prozessorprüfung auf 64-Bit-Kompatibilität". Führen Sie das Programm aus.

Wenn es heißt, dass Ihr Prozessor in der Lage ist, starten Sie Ihren Computer neu und gehen Sie in das BIOS und sehen Sie, ob Sie "Virtualisierung" haben und können es aktivieren. Ich konnte und habe Windows Server 2008 R2 unter VMware auf diesem alten Laptop laufen.

Ich hoffe, es funktioniert für Sie!

+2

Core 2 Duo ist ein 64-Bit-Prozessor. Es ist interessant, dass es in VMWare auf der 32-Bit-Version von Windows XP ausgeführt werden kann. –

+1

Zuerst sagen Sie, dass Sie ein 64-Bit-Betriebssystem auf einem 32-Bit-Prozessor ausführen können und dann sagen Sie, dass Sie überprüfen sollten, ob Ihr Prozessor 64-Bit ist? – kyrias

+0

Ich verwende 32 Bit, 2GB RAM, Windows 7.Hey Meine VM gibt diesen Fehler https://drive.google.com/file/d/0B9LzXNh-gDLNVml5bHl0clZIdUk/edit?usp=sharing –

1

Sie können, wenn Ihr Prozessor ist 64-Bit-und Virtualization Technology (VT) Erweiterung aktiviert ist (es kann im BIOS ausgeschaltet werden). Sie können es nicht auf 32-Bit-Prozessor tun.

Um dies unter Linux zu überprüfen, müssen Sie nur in /proc/cpuinfo Datei suchen. Achten Sie einfach auf die entsprechende Flagge (VMX für Intel-Prozessor oder SVM für AMD-Prozessor)

egrep '(vmx|svm)' /proc/cpuinfo 

Um dies zu überprüfen unter Windows Sie ein Programm wie CPU-Z verwenden müssen, die die Prozessorarchitektur angezeigt wird und unterstützte Erweiterungen

+1

Soweit ich John verstehe möchte die VM auf 32-Bit-Prozessor ausführen –