32 비트 시스템에서 64 비트 VMware 이미지를 실행할 수 있습니까?
나는 이것을 봤지만 결정적인 대답이없는 것 같습니다.
나는 그것이 완전히 에뮬레이션되어야하고 개처럼 실행되어야한다는 것을 알고 있지만, 64 비트 플랫폼에서 내 백그라운드 서비스 코드의 일부를 테스트하는 데 관심이 있기 때문에 느린 성능이 반드시 문제는 아닙니다.
답변:
워크 스테이션을 확인하는 가장 쉬운 방법 은 VMware 웹 사이트에서 VMware Processor Check for 64-Bit Compatibility 도구 를 다운로드하는 것 입니다.
32 비트 프로세서에서는 64 비트 VM 세션을 실행할 수 없습니다. 그러나 64 비트 프로세서가 있지만 32 비트 호스트 OS를 설치했고 프로세서가 올바른 확장을 지원하는 경우 64 비트 VM 세션을 실행할 수 있습니다. 위에 링크 된 도구는 귀하의 도구가 있는지 알려줍니다.
32 비트 하드웨어가있는 경우 아니요, 64 비트 게스트 OS를 실행할 수 없습니다. "VMware 소프트웨어는 물리적으로 존재하지 않는 다른 하드웨어에 대한 명령어 세트를 에뮬레이션하지 않습니다 . "
그러나 QEMU 는 64 비트 프로세서를 에뮬레이트 할 수 있으므로 VMWare 시스템을 변환하여 실행할 수 있습니다.
에서 이 2008 시대의 블로그 게시물 (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
실행하려면
qemu -m 256 -hda guestos.img
단점? 우리 대부분은 가상 디스크에 대한 사전 할당 공간없이 VMware를 실행합니다. 따라서 VMware에서 QEMU로 변환 할 때 원시 파일은 사전 할당 된 총 공간이됩니다. 나는 여전히
-f qcow
문제를 해결할 것인지 아닌지 형식으로 테스트하고 있습니다. 예 :for i in `ls *[0-9].vmdk`; do qemu-img convert -f vmdk $i -O qcow ${i/vmdk/qcow}; done && cat *.qcow >> debian.img
예, 64 비트 프로세서가있는 경우 32 비트 OS에서 VMWare에서 64 비트 OS를 실행할 수 있습니다.
Windows XP Professional 2002가 실행 되는 오래된 Intel Core 2 Duo 가 있고 작동하도록했습니다.
우선, CPU가 64 비트 OS를 실행할 수 있는지 확인하십시오. VMware 사이트에서 'Processor check for 64-bit compatibility'를 검색합니다. 프로그램을 실행하십시오.
프로세서가 가능하다고 표시되면 컴퓨터를 다시 시작하고 BIOS로 이동하여 '가상화'가 있고 활성화 할 수 있는지 확인하십시오. 이 오래된 랩톱에서 VMware에서 Windows Server 2008 R2를 실행할 수있었습니다 .
나는 그것이 당신을 위해 작동하기를 바랍니다!
하드웨어가 32 비트 전용이면 아니요. 64 비트 하드웨어와 32 비트 운영 체제가 있다면 아마도 가능합니다. 자세한 내용 은 64 비트 게스트 운영 체제에 대한 하드웨어 및 펌웨어 요구 사항 을 참조하십시오. 하나 대 다중 프로세서와는 아무 관련이 없습니다.
컴퓨터의 CPU에 VT 비트 (가상화)가 있는지 여부와 BIOS에서이를 켤 수 있는지 여부에 따라 결정됩니다. 예를 들어, 제 노트북은 이것을 사용할 수 있는 Core 2 Duo 입니다. 그러나 내 BIOS로 켤 수 없습니다.
이 기능을 켜면 정상 작동 속도가 10-12 % 느려질 수 있다는 것을 읽었습니다. 이것이 일반적으로 꺼져있는 이유입니다.
솔직히 여러 가지 이유로 의심 스럽지만 가장 중요한 것은 32 비트 모드에서는 허용되지만 64 비트 모드에서는 허용되지 않는 명령이 있다는 것입니다. 특히 64 비트 모드에서 일부 명령어 및 레지스터를 인코딩하는 데 사용되는 REX 접두사는 0x4f : 0x40 형식의 바이트이지만 32 비트 모드에서 동일한 바이트는 고정 피연산자가있는 INC 또는 DEC입니다.
이 때문에 REX가 접두사로 붙은 64 비트 명령어는 INC 또는 DEC로 해석되며 VMM이 64 비트 명령어를 에뮬레이트 할 기회를주지 않습니다 (예 : 정의되지 않은 opcode 예외 신호를 보내는 방식).
이 작업을 수행 할 수있는 유일한 방법은 트랩 예외를 사용하여 각 명령 후에 VMM으로 돌아가서 특별한 64 비트 처리가 필요한지 확인할 수 있도록하는 것입니다. 나는 단순히 그런 일이 일어나는 것을 볼 수 없습니다.
VMware? 아니요. 그러나 QEMU 에는 사용할 수있는 x86_64 시스템 대상이 있습니다. VMware 이미지를 직접 사용할 수는 없지만 (IIRC, 변환 도구가 없음) OS 등을 직접 설치하고 내부에서 작업 할 수 있습니다. QEMU는 시작하고 실행하는 데 약간의 PITA가 될 수 있지만 꽤 잘 작동하는 경향이 있습니다.
프로세서가 64 비트이고 VT (가상화 기술) 확장이 활성화되어 있으면 가능합니다 (BIOS에서 끌 수 있음). 32 비트 프로세서에서는 할 수 없습니다.
Linux에서이를 확인하려면 / proc / cpuinfo 파일 을 살펴보기 만하면 됩니다. 적절한 플래그를 찾으십시오 ( Intel 프로세서의 경우 vmx 또는 AMD 프로세서의 경우 svm ).
egrep '(vmx|svm)' /proc/cpuinfo
Windows에서이를 확인하려면 프로세서 아키텍처 및 지원되는 확장을 표시하는 CPU-Z와 같은 프로그램을 사용해야합니다.