Làm thế nào BIOS có thể chặn ảo hóa?


26

Tôi đang bắt đầu làm việc với Docker và sau vài giờ cố gắng làm cho nó hoạt động, tôi phát hiện ra rằng BIOS của tôi đã chặn nó và tôi cần phải điều chỉnh các cài đặt BIOS. Tôi đã nói rằng BIOS bằng cách nào đó có liên quan đến bo mạch chủ.

Làm thế nào BIOS có thể chặn loại quy trình này, ghi đè hệ điều hành?


14
Bạn có nó lạc hậu. Các cài đặt BIOS cho ảo hóa báo cho CPU để cho phép một loại xử lý cụ thể. nếu các phần mở rộng ảo hóa không được kích hoạt trong bios, CPU sẽ không thể thực thi chương trình. Tình huống này giống như cố gắng chạy một chương trình được biên dịch cho kiến ​​trúc bộ xử lý DEC Alpha trên hệ thống x64. không có phần mở rộng, chương trình sẽ cố chạy các hướng dẫn mà CPU không hiểu. Docker của bạn đang tự ngăn chặn nó thực thi bởi vì nó đã phát hiện ra rằng CPU của bạn vì nó được cấu hình hiện tại không thể chạy nó.
Frank Thomas

Câu trả lời:


37

Không phải là CPU đang chặn một chương trình; nó không có khái niệm về ứng dụng ở mức thấp. Vấn đề là Docker trên các hệ điều hành không phải Linux có thể yêu cầu ảo hóa phần cứng. Bạn chưa chỉ định HĐH của mình, nhưng tôi đã rình mò một chút và phát hiện ra rằng bạn có thể sử dụng Windows.

Ảo hóa phần cứng là một tính năng của CPU, như bạn có thể đoán từ tên, cho phép CPU trợ giúp ảo hóa. Trên nhiều máy, bạn phải kích hoạt nó trong BIOS. Điều này, một phần, để ngăn chặn các vấn đề an ninh . Về cơ bản, bạn không thể bắt đầu một chương trình vì nó đã cố sử dụng một tính năng vắng mặt một cách hiệu quả thay vì chủ động bị chặn.


14
a tiny bit of snoopingHa..ha
bs677

vâng tôi đang sử dụng windows 7! cảm ơn đã giải thích !!! Bây giờ tôi hiểu rồi!
Alvaro Joao

Tôi quen thuộc với cài đặt này nhưng vẫn chưa rõ, chính xác ảo hóa phần cứng là gì (trong bối cảnh cài đặt BIOS)?
Celeritas

2
@Celeritas Ảo hóa phần cứng là một tập hợp các tính năng được cung cấp bởi CPU và BIOS giúp cho việc chạy các máy ảo hiệu quả hơn, chẳng hạn như bằng cách quản lý truy cập bộ nhớ được thực hiện bởi VM theo cách hiệu quả hơn ở mức phần mềm thuần túy và xử lý / bẫy các hướng dẫn "đặc quyền" như thao tác I / O cho phần mềm ảo hóa để xử lý hiệu quả hơn.
ζ--

2
@ RACING121 Chữ N là viết tắt của NSA :)
Ben N

41

Câu trả lời của Ben N rõ ràng là hữu ích và rõ ràng nhất.

Đối với những người vẫn còn thắc mắc, tuy nhiên đây là câu chuyện đầy đủ.


Ảo hóa đạt được với sự hỗ trợ phần cứng từ CPU. Vì một hệ điều hành ảo hóa sẽ can thiệp vào máy chủ, vì chúng cạnh tranh cho cùng một tài nguyên, nên cần có một cơ chế để ngăn khách truy cập không kiểm soát được vào phần cứng. Điều này có thể được giảm với phần mềm, chậm, kỹ thuật hoặc với sự hỗ trợ từ CPU.

Ảo hóa có hỗ trợ phần cứng được triển khai với các hướng dẫn cụ thể, tùy chọn , bạn có thể đọc về nó trong các Chương 23, 24, 25, 26, 27 và 28 của Hướng dẫn 3B Phần 3 của Intel . Trước tiên, phần mềm phải kiểm tra hướng dẫn này để được hỗ trợ, trước khi thử sử dụng chúng.

Vì lý do bảo mật, CPU có một thanh ghi đặc biệt, đó là MSR , được gọi là IA32_FEATURE_CONTROL chứa các bit nói với tính năng để bật hoặc tắt.
Trích dẫn

Bit 0 là bit khóa. Nếu bit này rõ ràng, VMXON gây ra ngoại lệ bảo vệ chung. Nếu bit khóa được đặt, WRMSR cho MSR này gây ra ngoại lệ bảo vệ chung; MSR không thể được sửa đổi cho đến khi điều kiện thiết lập lại nguồn . BIOS hệ thống có thể sử dụng bit này để cung cấp tùy chọn thiết lập cho BIOS để vô hiệu hóa hỗ trợ cho VMX. Để kích hoạt hỗ trợ VMX trong một nền tảng, BIOS phải đặt bit 1, bit 2 hoặc cả hai (xem bên dưới), cũng như bit khóa.

Điểm cơ bản là một khi thanh ghi bị khóa, nó không thể được mở khóa cho đến khi bật nguồn .

Do BIOS / UEFI xuất hiện trước, nó có khả năng vô hiệu hóa ảo hóa bằng cách xóa các bit thích hợp và khóa thanh ghi trước khi bất kỳ HĐH nào có thể ngăn chặn điều đó. Khi tính năng ảo hóa bị tắt theo cách này, CPU báo cáo rằng phần mở rộng lệnh tùy chọn bị thiếu (và thực sự bị lỗi nếu chúng được sử dụng) và do đó phần mềm không thể sử dụng ảo hóa phần cứng.


2
Đó là một tiện ích bổ sung rất tốt cho câu hỏi. Hầu hết mọi người không biết thiết lập yêu cầu thiết lập lại để thay đổi, vì vậy nó không thể được bật "nhanh chóng" trong khi HĐH đang chạy.
Tonny

OHH vì vậy đó là cách nó hoạt động! Tôi đã googled nó và tìm thấy câu trả lời của bạn (đó là những gì tôi quan tâm, cho các khái niệm cá nhân của tôi)
Paul Stelian
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.