Liệu một trình ảo hóa như VirtualBox có thể được sử dụng để khởi chạy một hệ điều hành ảo hóa cũng có khả năng khởi động trực tiếp không?


60

Câu hỏi này khá lý thuyết:

Giả sử tôi có một PC có hai HĐH khác nhau trên hai phân vùng khác nhau: OS1 trên sda1 và OS2 trên sda2. Có cách nào đó có thể thiết lập một chương trình như VMWare hoặc Virtualbox trong OS1, truy cập sda2, khởi động và chạy OS2 không? Mặt khác, OS2 cũng có thể khởi động trực tiếp.

Tôi nhận ra rằng OS2 được mô phỏng sẽ chậm hơn rất nhiều và có lẽ không ai thực sự sử dụng thiết lập này, nhưng tôi thấy điều này rất thú vị.


1
@MorrisIriga bạn có chắc không? Tôi nhớ rằng có một công cụ ảo hóa có thể gắn kết các ổ cứng thực tế. Không chắc chắn nếu hộp ảo oracle của nó hoặc microsoft virtualpc.
LPChip

1
@LPChip Xin lỗi, tôi đã hiểu nhầm câu hỏi. Có, bạn có thể gắn đĩa cứng vật lý bằng VirtualBox. Có một cái nhìn về điều này hoặc điều này . Tôi không biết về phần mềm ảo hóa khác.
MorrisIriga



4
VMWare Fusion có thể khởi chạy phân vùng "Boot Camp" dưới dạng một máy ảo bên trong máy chủ Mac OS X: kb.vmware.com/'mservice/microsites/ Kẻ
Jacob Krall

Câu trả lời:


58

thể , vâng, và không nhất thiết phải chậm hơn, vì ngày nay nó không còn giả lập nữa, đó là ảo hóa - hầu hết các CPU đều hỗ trợ ảo hóa hỗ trợ phần cứng (VT-x và như vậy), nhưng ngay cả khi không có, VirtualBox vẫn có nhiều thủ thuật để làm cho máy ảo ảo hóa phần mềm chạy nhanh.

Trong mọi trường hợp, nó sẽ không chậm hơn việc khởi động một máy ảo cũ đơn giản. Nó thậm chí có thể nhanh hơn (do sử dụng phân vùng thô thay vì hình ảnh đĩa bị phân mảnh).


Nhưng tôi không hoàn toàn chắc chắn về cách thực hiện trong VirtualBox - Tôi nghĩ bạn phải tạo một tệp .vdi đặc biệt bằng cách sử dụng vboxmanagecác điểm đó vào phân vùng thực? Ngoài ra, tôi không có ý tưởng nào về cách làm cho bộ nạp khởi động hoạt động trong tình huống như vậy.

Mặc dù tôi đã từng gỡ lỗi các vấn đề khởi động khác nhau trên Linux bằng cách chạy một bản sao chỉ đọc của HĐH hiện tại trong chính nó, bằng cách sử dụng qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio.


6
Bạn là người bạn thực sự chạy một hệ điều hành ảo hóa bên trong chính nó?
Wauzl

8
Chắc chắn, tại sao không? Nó không khác lắm so với chạy VM thông thường. Phần quan trọng duy nhất là -snapshot, tạo một bản sao tạm thời của / dev / sda (để cả hai hệ thống sẽ không ghi đè dữ liệu của nhau).
tham lam

6
Tuyên bố dự kiến ​​của bạn về việc sử dụng vboxmanage để thiết lập VDI (không phải VHD) làm trình giữ chỗ cho phân vùng thô là chính xác. Hướng dẫn sử dụng VBOX giải thích chi tiết. Tôi thích thủ thuật sửa lỗi của bạn. Mặc dù chưa bao giờ làm việc đó như thế nhưng tôi đã nghĩ đến một số trường hợp sử dụng ;-)
Tonny

28

qemusẽ cho phép bạn sử dụng các thiết bị khối như /dev/sda2, v.v. làm ổ cứng ảo. VMWare cũng vậy. Không chắc chắn về Virtualbox.

Khi bạn khởi động /dev/sda2trong máy ảo, nó sẽ có hiệu ứng tương tự như khi bạn lấy ổ cứng ra và khởi động nó trong một máy tính khác có phần cứng khác. Nếu HĐH có thể xử lý thay đổi đó, thì bạn nên chạy HĐH cả trong VM và nguyên bản. Windows sẽ cung cấp cho bạn các vấn đề, tất nhiên, và Linux có thể sẽ chịu đựng được điều đó rất tốt.

Bạn có thể giảm thiểu các sự cố tiềm ẩn bằng cách làm cho phần cứng ảo khớp càng gần với phần cứng vật lý trên hệ thống của bạn càng tốt - mặc dù tất nhiên bạn sẽ phải chỉ định ít RAM hơn. Đặc biệt quan trọng là chỉ định cùng loại bộ điều khiển đĩa (IDE, SCSI, v.v.).


8
Rõ ràng hộp ảo cũng có thể thực hiện điều này bằng cách sử dụng comand 'VBoxManage Internalcommands cTHERawvmdk' (xem tại đây )
Michael B

19

Đó là điều hoàn toàn có thể, trên thực tế, tôi đã từng làm điều này!

Tôi đã có một phân vùng / đĩa (tôi quên cái đó) với Windows một với Linux, tôi nghĩ rằng đó là vào thời của Windows XP (phải thừa nhận rằng nó đã tồn tại được một thời gian). Đó là một cách tốt để có quyền truy cập vào cả hai bộ dữ liệu mà không cần sử dụng tải không gian đĩa với các cài đặt khác nhau.

Vấn đề duy nhất tôi nhớ là tôi cần thiết lập hai cấu hình phần cứng khác nhau trong XP. Nó thực sự bối rối khi nó khởi động sai.

Tôi không chắc các quy trình kích hoạt hiện tại sẽ đáp ứng như thế nào với việc chuyển đổi phần cứng. Điều đó cũng có thể gây ra một số vấn đề ... (nhưng nếu bạn chỉ khởi động Windows như một máy vật lý và có Linux là VM / hoặc vật lý, điều đó sẽ giải quyết điều đó)

Khi tôi nhớ tôi đã làm điều này với máy trạm VMware. Điều đó chắc chắn hỗ trợ khởi động từ một đĩa thô. Tôi chắc chắn rằng phiên bản MS không. Tôi không chắc lắm về máy ảo Linux, nhưng tôi sẽ rất ngạc nhiên nếu không.


Ồ, hồ sơ phần cứng ... Tôi chưa bao giờ thực sự chạm vào tính năng đó. Cấp phép chắc chắn sẽ làm hỏng nó bây giờ.
sinni800

@ sinni800 Đây là lần duy nhất tôi sử dụng chúng, theo đó chúng vẫn tồn tại, nhưng đã chuyển sang bộ điều khiển dưới dạng devconx64.exe
Michael B

Cấu hình phần cứng đã bị xóa khỏi Vista và các hệ thống cửa sổ mới hơn
ZAB

8

Thật thú vị, đối với những người chạy VMware Fusion trên máy Mac, với phân vùng bootcamp của Windows, có thể khởi động một máy ảo chạy khỏi phân vùng bootcamp:

VMware Fusion cho phép bạn khởi chạy phân vùng Boot Camp đã được cài đặt mà không ảnh hưởng đến khả năng khởi động của nó. Điều này cung cấp cho bạn khả năng truy cập phân vùng Boot Camp từ cả bên trong Mac OS bằng Fusion và bằng cách khởi động lại và khởi chạy Windows trực tiếp.

Lưu ý, tuy nhiên:

Bạn có thể được nhắc kích hoạt lại Windows vì phần cứng khác nhau được hệ điều hành nhận ra.

Nguồn: VMware - Khởi chạy phân vùng Boot Camp của bạn trong VMware Fusion


3
Họ khuyên bạn nên cài đặt công cụ của họ trước để quá trình kích hoạt thấy cùng một "phần cứng" trong cả hai tình huống. Làm theo hướng dẫn hoặc cuối cùng bạn sẽ nói chuyện với máy chủ kích hoạt Microsoft trên điện thoại.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen lời khuyên tuyệt vời - cảm ơn bạn
magma

7

Tôi đã làm điều đó . Nó khá hữu ích, nhưng có một số hạn chế và thiết lập nó không phải là nhỏ.

  • HĐH gốc hoặc VM phải có khả năng chịu đựng về phần cứng mà nó chạy. Hầu hết các bản phân phối Linux không quan tâm và chỉ chạy trên bất cứ thứ gì bạn khởi động chúng miễn là kiến ​​trúc CPU phù hợp. Nó không mượt mà với Windows. Bạn cũng có thể phải đối mặt với các vấn đề kích hoạt / cấp phép.

  • Trên Windows, bạn không thể khởi động HĐH trong máy ảo trong khi phân vùng của nó được gắn trên máy chủ. Đây không phải là một vấn đề lớn, vì trong trường hợp này, bạn có thể muốn khởi động Linux bên trong Windows và extdù sao Windows cũng không hỗ trợ các hệ thống tệp.

  • Thiết lập bộ tải khởi động là khó khăn. Bạn cần cấu hình khởi động riêng để khởi động trong VM và để khởi động tự nhiên. Tôi đã sử dụng Grub4DOS / NeoGrub làm bộ tải khởi động giai đoạn 1 khi khởi động tự nhiên, sau đó tôi có thể tải chuỗi bộ tải khởi động Windows hoặc khởi động vào Ubuntu. VM có một ổ đĩa nhỏ (vài MB) được gắn với mức độ ưu tiên cao hơn ổ đĩa chính. Ổ đĩa đó chứa GRUB2 được cài đặt thủ công mà tôi đã sử dụng để khởi động Ubuntu bên trong VM.

  • Thiết lập bootloader bất thường đòi hỏi phải cập nhật cẩn thận. Ví dụ: cập nhật GRUB khi chạy Linux nguyên bản có thể phá vỡ chuỗi bộ nạp khởi động của bạn. Cập nhật bên trong VM yêu cầu cài đặt thủ công vào phân vùng khởi động.


0

Điều đó có thể khá dễ dàng .. Nếu bạn sử dụng các đĩa cứng riêng biệt cho mỗi lần cài đặt!

Xem ví dụ ở đây: http://www.serverwatch.com/server-tutorials/USE-a-physical-hard-drive-with-a-virtualbox-vm.html - hoặc tìm kiếm trang web VirtualBox (bị lỗi tại thời điểm này) cho các từ khóa này.

Tôi sử dụng nó để có thể truy cập vào phân vùng Linux của mình khi tôi thực hiện một số công việc của Windows, như công cụ Adobe hoặc những thứ khác không chạy trơn tru trong Wine hoặc Virtualisation của Windows trong Linux.

Ngoài ra, vì tôi thường truy cập vào tháp của mình từ xa - và toàn bộ đĩa cứng Linux của tôi được mã hóa, trong khi đĩa cứng Windows của tôi không có và chỉ có dữ liệu không nhạy cảm trên đó. Vì vậy, tôi khởi động Windows (mục Windows trong GRUB được chọn trước) đăng nhập vào Teamviewer, khởi động Virtualbox và sau đó là đĩa cứng Linux của tôi.

Theo hướng này - Windows -> Virtualbox -> HD khác với Linux -> có thể khá đơn giản, vì phát hiện phần cứng siêu tốc, một cách nhanh chóng, mà Linux, cụ thể là Ubuntu, hỗ trợ.

Theo hướng khác, bạn sẽ kết thúc với một mớ hỗn độn. Windows không thích thay đổi phần cứng .. Nó có thể làm rối hệ thống của bạn, hoàn toàn không khởi động hoặc thậm chí nếu có, có thể cho bạn biết rằng giấy phép của bạn không còn hiệu lực nữa vì quá nhiều thay đổi phần cứng xảy ra quá thường xuyên.

Điều đó nói rằng, bạn muốn giữ Windows là mục khởi động được chọn trước trong GRUB, nhưng thực sự coi chừng bạn chọn đúng mục trong GRUB khi nó chạy trong Virtualbox. Nếu bạn gặp vấn đề với độ trễ từ xa, hãy tăng thời gian chờ khởi động trong GRUB để an toàn.

Mong rằng đã giúp bạn :)

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.