VT-x 지원 없이는 VirtualBox의 64 비트 Windows 게스트가 불가능합니까? [복제]


8

VirtualBox가있는 VM에 Windows Vista 32 비트를 성공적으로 설치했습니다. 이제 Windows Vista 64 비트에서 동일한 작업을 수행하려고하는데 작동하지 않습니다. VM을 만들었지 만 64 비트 Vista ISO 이미지로 부팅되지 않는 것 같습니다. 이 부팅 관리자 오류가 발생합니다.

ㅏ

호스트 OS는 64 비트 Intel Core 2 Duo 프로세서에서 Windows 7 64 비트입니다. 이제 동일한 작업을 수행하고 Windows 7 64 비트를 실행하는 다른 컴퓨터에 동일한 VirtualBox 버전을 설치하고 VM을 만든 다음 VM 설정 프로세스 중에 선택할 수있는 추가 옵션이 있음을 알았습니다. 내가 손님 Os를 고르면 스크린 샷이 있습니다.

비

64 비트라고 표시된 곳에서 그 옵션을 볼 수 있습니다. 다른 컴퓨터에는 해당 옵션이 없습니다. 이제이 모델은 고급 모델 인 Intel Core 2 Quad를 실행합니다. 인텔 가상화 기술은 지원하지만 다른 기술은 지원하지 않습니다.

Core 2 Duo 컴퓨터에서 동일한 대화 상자가 나타납니다. 스크린 샷이 있습니다.

씨

이것이 이유가 될 수 있습니까? 프로세서가 Intel 가상화 기술을 지원하지 않으면 VirtualBox를 사용 하여 64 비트 Windows 게스트 OS 를 전혀 에뮬레이트 할 수 없습니까? 이 기술이 훨씬 빨라졌지만 OS를 전혀 흉내낼 수는 없다는 것을 알고 있습니다.

그렇다면 무엇을 대신 사용하라고 제안합니까?


@Ramhound 64 비트 운영 체제를 실행 중이고 마음이 바뀌 었다고 확신하십니까? 받은 편지함에 댓글이 있습니다. 글쎄, 가치가있는 모든 것에 대해, 네, 두 컴퓨터 모두 Windows 7 64 비트 버전을 실행하고 있다고 확신합니다.
Samir

@Ramhound 하드웨어의 한계? 따라서 VT-x 지원과 관련이 있습니까?
Samir

하드웨어 제한에 관계없이 항상 소프트웨어에서 작업을 수행 할 수 있어야합니다. 소프트웨어의 물리적 하드웨어를 완전히 교체 할 수 있기 때문에 가상화의 이점 중 하나입니다. Intel VT-x가 있으면 좋지만 VirtualBox의 64 비트 OS를 소프트웨어에서 모두 에뮬레이트 할 수없는 이유는 무엇입니까? 그들은 당신이 그렇게 할 수없는 이유는 무엇입니까? 이것은 VirtualBox의 제한 사항입니다.
Samir

음 ... " 하드웨어가 지원하지 않으면 소프트웨어 에서 할 수없는 일"을 의미 하지 않습니까?
Samir

답변:


18

VirtualBox 매뉴얼의 섹션 3.1.2에는 64 비트 게스트 운영 체제를 사용하기 위해 하드웨어 가상화 지원이 필요하다고 명시되어 있습니다 (강조 추가).

VirtualBox는 다음 조건이 충족되는 경우 32 비트 호스트 운영 체제에서도 64 비트 게스트 운영 체제를 지원합니다.

  1. 하드웨어 가상화를 지원하는 64 비트 프로세서가 필요합니다 (10.3 절“하드웨어 및 소프트웨어 가상화”참조).

  2. 64 비트 지원을 원하는 특정 VM에 대해 하드웨어 가상화를 활성화해야합니다. 64 비트 VM에서는 소프트웨어 가상화가 지원되지 않습니다.

  3. 32 비트 호스트 운영 체제에서 64 비트 게스트 지원을 사용하려면 특정 VM에 대한 64 비트 운영 체제도 선택해야합니다. 32 비트 호스트에서 64 비트를 지원하면 추가 오버 헤드가 발생하므로 VirtualBox는 명시 적 요청시에만이 지원을 활성화합니다.

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

10.3 절에도 다음과 같이 기술되어있다 (강조 추가).

VirtualBox의 64 비트 게스트 지원 (버전 2.0으로 추가됨) 및 다중 처리 (SMP, 버전 3.0으로 추가됨) 모두 하드웨어 가상화를 활성화해야 합니다. (현재 64 비트 및 멀티 코어 CPU의 대부분은 하드웨어 가상화와 함께 제공되므로 제한이 없습니다.이 규칙의 예외는 예를 들어 구형 Intel Celeron 및 AMD Opteron CPU입니다.)

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

따라서 VirtualBox에서 64 비트 게스트를 사용하려면 VT-x 또는 AMD-V를 지원하는 프로세서가 필요합니다. 그러나 QEMU, Bochs 및 VMWare Player는 모두 하드웨어 가상화 지원없이 64 비트 게스트를 지원합니다 (적어도이 페이지 에 따름 ).


그래 ... 불행한 일이야 32 비트 호스트의 64 비트 게스트 만 언급했다고 생각했습니다. 그러나 10 장부터는 하드웨어 가상화가 필요하다고 구체적으로 말합니다. 그래도 32 비트 게스트에게는 이것이 필요하지 않은 이유는 무엇입니까? 왜 64 비트입니까?
Samir

이 답변을 이미 본인의 답변으로 게시했지만 투표 용지를 제공했습니다. 노력해 주셔서 감사합니다! 괜찮다면 답을 당신의 것과 합치겠습니다.
Samir

하드웨어 가상화 지원없이 64 비트 Windows를 에뮬레이트 할 수있는 다른 가상화 소프트웨어 (바람직하게는 무료 및 오픈 소스)를 알고 있습니까?
Samir

@sammyg QEMU, Bochs 및 VMWare Player가 모두 지원하는 것처럼 보입니다. 최신 버전을 참조하십시오.
nc4pk

사실이 아니다. 또한 VMware 플레이어는 64 비트 추측을 실행하기 위해 가상화가 필요하며 다른 하이퍼 바이저도 마찬가지입니다. Bochs 또는 qemu와 같은 에뮬레이터 또는 Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv

0

가상 시스템이 없으면 가상 시스템 격리가 불가능 하므로 가상화없이 x86 CPU에서 64 비트 가상 시스템을 지원하는 가상 시스템 하이퍼 바이저 는 없습니다 .

그 이유는 Wikipedia (강조 광산) 에서 언급되었습니다 .

- 64의 초기 버전 (AMD64)이 때문에에 소프트웨어 전용 전체 가상화를 허용하지 않았다 긴 모드에서 분할 지원 부족 만들를, 하이퍼 바이저의 메모리 불가능의 보호를 특히, 트랩 핸들러의 보호 게스트 커널 주소 공간에서 실행됩니다.

개정판 D 및 이후 64 비트 AMD 프로세서 (통상 90nm 이하로 제조 된 프로세서)는 긴 모드에서 분할에 대한 기본 지원을 추가하여 이진 변환을 통해 64 비트 호스트에서 64 비트 게스트를 실행할 수 있습니다. . 인텔은 x86-64 구현 (인텔 64)에 세분화 지원을 추가하지 않아 인텔 CPU에서 64 비트 소프트웨어 전용 가상화가 불가능하지만 인텔 VT-x 지원으로 인텔 플랫폼에서 64 비트 하드웨어 지원 가상화가 가능해졌습니다.

VMWare 는 또한 가상화가 없기 때문에 VM 보호에 어려움을 겪고 있다고 말했다.

x86-64 가상화의 과제

  • 초기 AMD64 아키텍처는 64 비트 모드에서 분할을 포함하지 않았습니다.
    • EM64T에서 세그먼테이션도 누락 됨

VMM을 어떻게 보호합니까?

  • 64 비트 게스트 지원에는 추가 하드웨어 지원이 필요합니다.
    • 최신 AMD 프로세서에서 64 비트 모드로 사용 가능한 세그먼트 제한 검사
    • EM64T에서 VT-x를 사용하여 VMM 보호
      • BT 대신 트랩 앤 에뮬레이션 방식이 필요합니다

더 읽어보기 :

인텔 CPU는 64 비트 가상 머신을 실행하려면 칩 및 BIOS에서 EM64T 및 VT 지원이 필요합니다. 이 문서에서는 VT-할 수있는 프로세서를 보장합니다, 또한이 기능을 사용하도록 설정하는 방법에 당신을 지시
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944을


이 경우 유일한 방법은 사용 에뮬레이터 와 같은 QEMU 또는 Bochs와 , 또는 반 가상화 소프트웨어 젠 등이.

더 읽기 : x86-32 프로세서에서 x86-64 ASM 실행

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.