Khách Windows 64 bit trong VirtualBox không thể không có hỗ trợ VT-x? [bản sao]


8

Câu hỏi này đã có câu trả lời ở đây:

Tôi đã cài đặt thành công Windows Vista 32 bit trong VM với VirtualBox. Bây giờ tôi đang cố gắng làm tương tự với Windows Vista 64 bit và nó không hoạt động. Tôi đã tạo VM nhưng có vẻ như nó sẽ không khởi động được hình ảnh ISO 64 bit của Vista. Nó phun ra lỗi quản lý khởi động này.

a

HĐH máy chủ là Windows 7 64 bit trên bộ xử lý Intel Core 2 Duo 64 bit. Bây giờ, tôi đã làm điều tương tự và cài đặt cùng một phiên bản VirtualBox trên một máy tính khác, cũng chạy Windows 7 64 bit, tạo VM và sau đó ... trong quá trình thiết lập VM tôi nhận thấy rằng nó có các tùy chọn bổ sung để chọn khi tôi chọn khách Os. Đây là một ảnh chụp màn hình.

b

Bạn có thể thấy các tùy chọn đó ở giữa nơi có 64-bit, tôi không có các tùy chọn đó trên máy tính khác đó. Bây giờ, cái này chạy Intel Core 2 Quad, một model cao cấp hơn. Nó hỗ trợ công nghệ ảo hóa Intel, trong khi cái còn lại thì không.

Đây là giao diện tương tự trên máy tính Core 2 Duo. Đây là một ảnh chụp màn hình.

c

Đây có thể là lý do tại sao? Điều đó có nghĩa là bạn không thể mô phỏng HĐH Windows 64 bit ở tất cả với VirtualBox, trừ khi bộ xử lý của bạn hỗ trợ công nghệ ảo hóa Intel? Tôi hiểu rằng công nghệ này giúp mọi thứ nhanh hơn nhiều, nhưng không cho phép bạn mô phỏng hệ điều hành đó ... điều đó hơi cực, phải không?

Nếu vậy, những gì bạn đề nghị tôi sử dụng thay thế?


@Ramhound Bạn có hỏi tôi có chắc là tôi đang chạy hệ điều hành 64 bit và sau đó đổi ý không? Tôi nhận được bình luận trong hộp thư đến của tôi. Chà, với bất cứ giá trị nào, vâng, tôi chắc chắn rằng cả hai máy tính đều đang chạy phiên bản Windows 7 64 bit.
Samir

@Ramhound Giới hạn của phần cứng? Vì vậy, bạn đồng tình, điều này có liên quan đến hỗ trợ VT-x, hay đúng hơn là thiếu nó?
Samir

Bất kể giới hạn phần cứng, bạn sẽ luôn có thể làm mọi thứ trong phần mềm. Đó là một trong những lợi ích của ảo hóa, bởi vì nó cho phép bạn thay thế hoàn toàn phần cứng vật lý trong phần mềm. Tôi biết Intel VT-x rất tốt để có, nhưng tại sao bạn không thể mô phỏng HĐH 64 bit trong VirtualBox tất cả trong phần mềm, ngay cả khi nó cực kỳ chậm? Tại sao họ không cho phép bạn làm điều đó? Đây là một hạn chế trong VirtualBox.
Samir

Emm ... không có nghĩa là "bạn không thể làm gì đó trong phần mềm nếu phần cứng không hỗ trợ nó "?
Samir

Câu trả lời:


18

Mục 3.1.2 của hướng dẫn VirtualBox nêu rõ rằng bạn cần hỗ trợ ảo hóa phần cứng để sử dụng các hệ điều hành khách 64 bit (nhấn mạnh thêm):

VirtualBox hỗ trợ các hệ điều hành khách 64 bit, ngay cả trên 32 bit   hệ điều hành máy chủ, với điều kiện là các điều kiện sau   gặp:

  1. Bạn cần một bộ xử lý 64 bit có hỗ trợ ảo hóa phần cứng (xem   Mục 10.3, Phần cứng cứng so với phần mềm ảo hóa phần mềm trực tuyến).

  2. Bạn phải kích hoạt ảo hóa phần cứng cho VM cụ thể cho   mà bạn muốn hỗ trợ 64 bit; ảo hóa phần mềm không   hỗ trợ cho máy ảo 64 bit.

  3. Nếu bạn muốn sử dụng hỗ trợ khách 64 bit trên hệ điều hành máy chủ 32 bit, bạn cũng phải chọn hệ điều hành 64 bit cho   VM cụ thể. Kể từ khi hỗ trợ 64 bit trên máy chủ 32 bit phát sinh   chi phí bổ sung, VirtualBox chỉ cho phép hỗ trợ này khi   yêu cầu rõ ràng.

Nguồn: https://www.virtualbox.org/manual/ch03.html#intro-64bitguests

Mục 10.3 cũng nêu rõ điều này (nhấn mạnh thêm):

Hỗ trợ khách 64 bit của VirtualBox (được thêm vào với phiên bản 2.0) và   đa xử lý (SMP, được thêm vào với phiên bản 3.0) cả hai đều yêu cầu phần cứng   ảo hóa được kích hoạt . (Điều này không có nhiều hạn chế vì   phần lớn các CPU 64 bit và đa lõi ngày nay đều có   ảo hóa phần cứng nào; các ngoại lệ cho quy tắc này là ví dụ:   CPU Intel Celeron và AMD Opteron cũ hơn.)

Nguồn: https://www.virtualbox.org/manual/ch10.html#hwvirt

Do đó, bạn cần một bộ xử lý hỗ trợ VT-x hoặc AMD-V để sử dụng khách 64 bit với VirtualBox. Tuy nhiên , QEMU, Bochs và VMWare Player đều hỗ trợ khách 64 bit mà không cần hỗ trợ ảo hóa phần cứng (ít nhất là theo trang này ).


Vâng ... và điều đó thật đáng tiếc. Tôi nghĩ rằng chỉ đề cập đến khách 64 bit trên máy chủ 32 bit. Nhưng từ chương 10, họ đặc biệt nói rằng ảo hóa phần cứng là một yêu cầu. Mặc dù vậy, tôi tự hỏi, tại sao điều này không phải là một yêu cầu cho khách 32 bit? Tại sao chỉ có 64 bit?
Samir

Tôi đã cho bạn một cuộc bỏ phiếu mặc dù tôi đã đăng văn bản chính xác này trong câu trả lời của riêng tôi. Cảm ơn cho những nỗ lực! Tôi sẽ hợp nhất câu trả lời của tôi với bạn nếu điều đó ổn.
Samir

Bạn có biết bất kỳ phần mềm ảo hóa nào khác (tốt nhất là mã nguồn mở và miễn phí) có thể mô phỏng Windows 64 bit mà không cần hỗ trợ ảo hóa phần cứng không?
Samir

@sammyg có vẻ như QEMU, Bochs và VMWare Player đều hỗ trợ nó, xem bản sửa đổi mới nhất của tôi.
nc4pk

Không đúng. Trình phát VMware cũng yêu cầu ảo hóa để chạy đoán 64 bit và các trình ảo hóa khác cũng vậy. Bạn chỉ có thể chạy đoán 64 bit mà không cần ảo hóa trên trình giả lập như Bochs hoặc qemu hoặc phần mềm ảo hóa như Xen vi.wikipedia.org/wiki/Vt-x#Software-basing_virtualization
phuclv

0

Không có trình ảo hóa máy ảo nào hỗ trợ máy ảo 64 bit trong CPU x86 mà không cần ảo hóa, bởi vì cô lập máy ảo sẽ là không thể không có nó.

Lý do đã được đề cập trong Wikipedia (nhấn mạnh của tôi):

Phiên bản ban đầu của x86-64 (AMD64) không cho phép ảo hóa hoàn toàn chỉ bằng phần mềm do thiếu hỗ trợ phân đoạn trong chế độ dài , mà làm cho không thể bảo vệ bộ nhớ của trình ảo hóa , đặc biệt là sự bảo vệ của trình xử lý bẫy chạy trong không gian địa chỉ kernel của khách.

Bản sửa đổi D và bộ xử lý AMD 64 bit mới hơn (theo nguyên tắc thông thường, được sản xuất ở 90nm trở xuống) đã thêm hỗ trợ cơ bản cho phân đoạn ở chế độ dài, giúp có thể chạy khách 64 bit trong máy chủ 64 bit thông qua dịch nhị phân . Intel đã không thêm hỗ trợ phân đoạn cho việc triển khai x86-64 (Intel 64), không thể ảo hóa phần mềm 64 bit trên CPU Intel, nhưng hỗ trợ Intel VT-x giúp ảo hóa phần cứng 64 bit có thể trên nền tảng Intel

VMWare cũng nói rằng việc thiếu ảo hóa khiến nó thách thức việc bảo vệ VM

Những thách thức của ảo hóa x86-64

  • Kiến trúc AMD64 ban đầu không bao gồm   phân đoạn ở chế độ 64 bit
    • Phân khúc cũng bị thiếu từ EM64T

Làm thế nào để chúng ta bảo vệ VMM?

  • Hỗ trợ khách 64 bit yêu cầu hỗ trợ phần cứng bổ sung
    • Kiểm tra giới hạn phân đoạn có sẵn trong chế độ 64 bit   trên bộ xử lý AMD mới hơn
    • VT-x có thể được sử dụng để bảo vệ VMM trên EM64T
      • Yêu cầu phương pháp bẫy và mô phỏng thay vì BT

Đọc thêm:

CPU Intel yêu cầu hỗ trợ EM64T và VT trong chip và trong BIOS để chạy các máy ảo 64 bit. Bài viết này giúp bạn đảm bảo bộ xử lý của bạn có khả năng VT và nó cũng hướng dẫn bạn cách bật tính năng này
http://kb.vmware.com/'mservice/microsites/search.do?l Language = en_US & amp;


Cách duy nhất trong trường hợp này là sử dụng một giả lập như QEMU hoặc là Thuyền hoặc một phần mềm ảo hóa như Xen.

Đọc thêm: Chạy x86-64 ASM trên bộ xử lý x86-32

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.