Kann ich ein 64-Bit-VMware-Image auf einem 32-Bit-Computer ausführen?

89

Kann ich ein 64-Bit-VMware-Image auf einem 32-Bit-Computer 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 wie ein Hund laufen würde - aber langsame Leistung ist nicht unbedingt ein Problem, da ich nur daran interessiert bin, einen Teil meines Hintergrunddienstcodes auf 64-Bit-Plattformen zu testen.

John Sibly
quelle
Ich kann Ihnen eine Möglichkeit geben, eine 64-Bit-basierte virtuelle Maschine zu installieren, ohne dass ein Hypervisor wie VMware oder Hyper-V installiert ist.
user2050269

Antworten:

123

Der einfachste Weg, Ihre Workstation zu überprüfen, besteht darin, das Tool VMware Processor Check für 64-Bit-Kompatibilität 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-Host-Betriebssystem installiert haben und Ihr Prozessor die richtigen Erweiterungen unterstützt. Das oben verlinkte Tool zeigt Ihnen, ob dies bei Ihnen der Fall ist.

Dave Webb
quelle
3
Genial! Ich wusste nie, dass dieses Tool existiert !!
Saschabeaumont
5
Über den obigen Link gelangen Sie nicht mehr zu einer Seite, die auf das Prozessorprüfwerkzeug verweist. Hier ist ein direkter Link: downloads.vmware.com/d/details/…
Phil Ross
3
@ Phil Ross - Danke! Ich habe den Link in der Antwort mit der von Ihnen geposteten URL aktualisiert.
Dave Webb
2
Sie sagen also, dass VMWare selbst dies nicht kann. Sie können das Bild jedoch in ein QEMU-Bild konvertieren, wie von dbr erläutert. Oder führen Sie VMWare (bei ausreichendem RAM) auf einer 64-Bit-Host-VM aus, die wiederum eine in qemu ausgeführte VM oder ein anderes VM-Dienstprogramm war, das einen 64-Bit-Prozessor emuliert. Kompliziert, aber es ist falsch zu sagen, dass es nicht möglich ist.
Intuitiert
1
Hier ist der Link sowohl für die Windows- als auch für die Linux-Version: my.vmware.com/web/vmware/details/processor_check_5_5_dt/…
jrace
30

Wenn Sie über 32-Bit-Hardware verfügen, können Sie kein 64-Bit-Gastbetriebssystem ausführen. „VMware - Software keinen Befehlssatz für verschiedene Hardware emulieren physikalisch nicht vorhanden“ .

QEMU kann jedoch einen 64-Bit-Prozessor emulieren, sodass Sie den VMWare-Computer konvertieren und damit ausführen können

Aus diesem Blog-Beitrag aus der Ära 2008 (gespiegelt von archive.org) :

$ 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 Vorbelegungsspeicherplatz für die virtuelle Festplatte aus. Wenn wir also eine Konvertierung von VMware zu QEMU durchführen, ist die Rohdatei der gesamte Speicherplatz MIT Vorbelegung. Ich teste immer noch mit -f qcowFormat, wird es das Problem lösen oder nicht. Sowie:

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

Ja, das Ausführen eines 64-Bit-Betriebssystems in VMWare ist unter einem 32-Bit-Betriebssystem möglich, wenn Sie über einen 64-Bit-Prozessor verfügen.

Ich habe einen alten Intel Core 2 Duo mit Windows XP Professional 2002 darauf ausgeführt, und ich habe ihn zum Laufen gebracht.

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

Wenn Ihr Prozessor in der Lage ist, starten Sie Ihren Computer neu und rufen Sie das BIOS auf, um festzustellen, ob Sie über "Virtualisierung" verfügen und diese aktivieren können. Ich konnte Windows Server 2008 R2 unter VMware auf diesem alten Laptop ausführen.

Ich hoffe es funktioniert bei dir!

Kevin
quelle
2
Core 2 Duo ist ein 64-Bit-Prozessor. Es ist interessant, dass es in VMWare unter der 32-Bit-Version von Windows XP ausgeführt werden kann.
John Sibly
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 prüfen sollten, ob Ihr Prozessor 64-Bit ist?
Cyrias
Ich bin mit 32 Bit, 2 GB RAM, Windows 7.Hey Meine VM geben diesen Fehler drive.google.com/file/d/0B9LzXNh-gDLNVml5bHl0clZIdUk/...
gutes Gefühl und Programmierung
8

Wenn Ihre Hardware nur 32-Bit ist, dann nein. Wenn Sie 64-Bit-Hardware und ein 32-Bit-Betriebssystem haben, dann vielleicht. Weitere Informationen finden Sie unter Hardware- und Firmware-Anforderungen für 64-Bit-Gastbetriebssysteme . Es hat nichts mit einem oder mehreren Prozessoren zu tun.

Peter Mortensen
quelle
4

Es läuft darauf hinaus, ob die CPU in Ihrem Computer über das VT-Bit (Virtualisierung) verfügt, und das BIOS ermöglicht es Ihnen, es einzuschalten. Zum Beispiel ist mein Laptop ein Core 2 Duo , der dies nutzen kann. Mein BIOS ermöglicht es mir jedoch nicht, es einzuschalten.

Beachten Sie, dass ich gelesen habe, dass das Aktivieren dieser Funktion den normalen Betrieb um 10-12% verlangsamen kann, weshalb sie normalerweise deaktiviert ist.

Joel Lucsy
quelle
3

Ich bezweifle es ehrlich aus einer Reihe von Gründen, aber das Wichtigste ist, dass es einige Anweisungen gibt, die im 32-Bit-Modus, aber nicht im 64-Bit-Modus zulässig sind. 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 dasselbe Byte entweder INC oder DEC mit einem festen Operanden.
Aus diesem Grund wird jeder 64-Bit-Befehl, dem REX vorangestellt ist, entweder als INC oder DEC interpretiert und gibt dem VMM nicht die Möglichkeit, den 64-Bit-Befehl zu emulieren (z. B. durch Signalisieren einer undefinierten Opcode-Ausnahme).

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

Nathan Fellman
quelle
1
VMWare würde ein solches Trap-System nicht benötigen. Wenn sie keine Hardwarevirtualisierungsunterstützung verwenden, überprüfen sie jeden Basisblock auf privilegierte Anweisungen und ersetzen sie durch Aufrufe an ihre Handler. Sie / könnten / tun dasselbe für x64-Anweisungen, aber das würde es zu einem Emulator machen - nicht zu ihrem Ding.
Cody Brocious
3

VMware? Nein. QEMU verfügt jedoch über ein x86_64-Systemziel, das Sie verwenden können. Sie können ein VMware-Image wahrscheinlich nicht direkt verwenden (IIRC, es gibt kein Konvertierungstool), aber Sie können das Betriebssystem und dergleichen selbst installieren und darin arbeiten. QEMU kann eine Art PITA sein, um in Betrieb zu gehen, aber es funktioniert in der Regel recht gut.

Cody Brocious
quelle
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).

Peter Mortensen
quelle
2

Ja, du kannst. Ich habe ein 64-Bit-Debian, das in VMware unter Windows XP 32-Bit ausgeführt wird. Solange Sie den Gast so einstellen, dass er zwei Prozessoren verwendet, funktioniert dies einwandfrei.

UnkwnTech
quelle
1

Sie können dies tun, wenn Ihr Prozessor 64-Bit ist und die Erweiterung Virtualization Technology (VT) aktiviert ist (sie kann im BIOS ausgeschaltet werden). Auf einem 32-Bit-Prozessor ist dies nicht möglich.

Um dies unter Linux zu überprüfen, müssen Sie nur in die Datei / proc / cpuinfo schauen . Suchen Sie einfach nach dem entsprechenden Flag ( VMX für Intel-Prozessor oder SVM für AMD-Prozessor).

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

Um dies unter Windows zu überprüfen, müssen Sie ein Programm wie CPU-Z verwenden, das Ihre Prozessorarchitektur und unterstützte Erweiterungen anzeigt.

Knapsu
quelle
1
Soweit ich
Gábor Lipták,