Làm cách nào để sử dụng phân vùng thực với Windows 7 được cài đặt, trong hộp ảo vm?


37

Ubuntu 12.04 của tôi được cài đặt trên /dev/sda5 và Windows 7 trên /dev/sda1. Khi tôi đang chạy Ubuntu, tôi muốn sử dụng Virtualbox để chạy Windows 7 trong VM. Phân vùng Windows 7 là 1 TB và đầy một nửa, tức là lớn, vì vậy tôi không muốn sao chép nó vào một đĩa cứng ảo.

Tôi đã đọc được rằng có thể sử dụng đĩa cứng thực sự cho máy ảo Virtualbox, nhưng các hướng dẫn khác nhau mà tôi đã tìm thấy khác nhau và dường như tôi không thể làm cho nó hoạt động được. Có ai biết cách làm cho nó hoạt động trong Ubuntu 12.04 và Virtualbox 2.1.12_Ub Ubuntu r77245 (Ubuntu mới nhất đã cài đặt repos) không?

Vui lòng gửi cách nó hoạt động cho bạn vì tôi muốn thử lại bất kỳ phương pháp nào có thể hoạt động.


Tại sao phân vùng MSWIN của bạn 1TiB? Mặc dù, không phải là một giải pháp hoàn chỉnh: Nếu có thể, hãy di chuyển mọi thứ không cần có trên đó (dữ liệu ... tệp phương tiện?) Và sau đó kích thước lại phân vùng sẽ giúp mọi cách tiếp cận dễ dàng hơn. Nếu bạn muốn đi theo lộ trình hình ảnh, việc xóa sau đó thu nhỏ phân vùng đó sẽ khiến bạn có đủ không gian để tạo một hình ảnh đầy đủ của phân vùng mới, nhỏ hơn. :-)
Alastair

Câu trả lời:


27

Lệnh bạn muốn là

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Điều này sẽ tạo ra một tệp đĩa ảo VMDK đặc biệt (Win7.vmdk) thực sự là một con trỏ tới phân vùng đĩa chủ /dev/sda1.

Về lý thuyết, sau đó bạn có thể sử dụng tệp này làm tệp đĩa cho VM để chạy trực tiếp từ phân vùng đĩa thực, nhưng ...

  • (a) Tôi chưa bao giờ thử điều này, vì vậy không biết nó đáng tin cậy đến mức nào
  • (b) bạn có thể gặp sự cố với Kích hoạt Windows tùy thuộc vào khóa cấp phép của mình và liệu Windows có quyết định rằng 'phần cứng' được phát hiện đã thay đổi đáng kể không

Cảm ơn bạn. Tôi thậm chí không nghĩ về vấn đề kích hoạt. Điều đó chắc chắn sẽ ngăn chặn kế hoạch của tôi.
Jazz

1
Ngoài ra, ngay cả khi nó hoạt động (mà tôi nghi ngờ), bạn có thể làm hỏng nghiêm trọng Windows của mình khi chạy từ cả boot và VM.
Takkat

@ ubnewbie2: Có lẽ tôi chỉ nên thử điều này như một thử nghiệm và / hoặc khi sử dụng một loại khóa Cấp phép âm lượng nào đó và có lẽ tôi sẽ xem nó như một hoạt động một chiều; tức là bạn sẽ gặp nhiều khó khăn hơn khi cố gắng đảo ngược nó. Tôi thực sự chạy Windows 7 và sử dụng VirtualBox VM với Ubuntu, thường ở chế độ toàn màn hình để PC dường như chỉ chạy Linux và sẽ tự tin hơn khi chạy Ubuntu khỏi phân vùng đĩa thô.
StarNamer

FYI, tôi đã thử điều này, ngược lại. Tôi cần thay đổi một máy chạy Ubuntu sang Win 7, vì vậy đã giải phóng một số không gian bằng cách thay đổi kích thước phân vùng và tạo một cái mới và cài đặt Win 7. Điều này thay thế grub2 bằng bộ tải khởi động của anh ấy để tôi cài đặt VirtualBox và tạo một VM mới, với một đĩa ảo tối thiểu để đặt trước, sau đó sử dụng các phân vùng 'thô' hiện có để chạy từ đó. Nó hoạt động tốt, mặc dù hơi chậm do bộ nhớ giảm và chỉ nhìn thấy 1 lõi CPU (thay vì 4).
StarNamer

-các phần ở cuối danh sách các phân vùng bạn muốn hộp ảo "nhìn thấy" (không phải phân vùng # bạn muốn sử dụng) VBoxManage internalcommands --helpsẽ hiển thị cho bạn những thứ khác bạn có thể làm với các lệnh nội bộ, cũng như ý nghĩa của các tùy chọn.
thuyền viên

16

Có, bạn có thể làm điều đó với createrawvmdklệnh bên trong , sẽ không tạo ra toàn bộ hình ảnh đĩa, mà là một con trỏ tới phần cứng thực tế.

Có hai cách để làm điều đó

  • A. Hình ảnh đĩa đầy đủ (của / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. Hình ảnh phân vùng

    Như @StarNamer đã chỉ ra, bạn chỉ sử dụng một hoặc một vài phân vùng.

    Để tạo hình ảnh của chỉ một phân vùng (/ dev / sda1):

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Để tạo bảng phân vùng tùy chỉnh sẽ ánh xạ / dev / sda2 và / dev / sda1 theo thứ tự đó:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

Sự khác biệt đáng chú ý nhất là hình ảnh đĩa đầy đủ sẽ sử dụng bộ tải khởi động và bảng phân vùng chính xác như trong đĩa của bạn, vì vậy theo lý thuyết (tôi đã làm điều đó trước đây chỉ trong qemu), bạn sẽ có thể thiết lập HĐH từ máy ảo của mình. Và từ kinh nghiệm hạn chế của tôi, tôi có thể nói rằng hình ảnh đĩa đầy đủ sẽ hoạt động chính xác như qemu -hda /dev/sdb.

Lưu ý: Nếu bạn đang sử dụng người dùng để truy cập đĩa, bạn cần thêm nó vào diskvboxusersnhóm, vd

sudo usermod -aG disk,vboxusers ubuntu

sau đó đảm bảo bạn đăng nhập lại hoặc khởi động lại máy tính của bạn.

Đọc thêm:


"hình ảnh đĩa đầy đủ sẽ sử dụng bộ tải khởi động và bảng phân vùng chính xác như trong đĩa của bạn" - theo kịch bản nào, (/ dev / sdb) hoặc thứ hai (với các phân vùng được chỉ định)?
ness101

1
Ngoài ra, hộp ảo cần được chạy dưới quyền root, nếu không bạn sẽ nhận được Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101

3
"Ngoài ra, hộp ảo cần được chạy dưới quyền root". Trên thực tế không, bạn cần phải là thành viên của nhóm đĩa. An toàn hơn nhiều so với chạy hộp ảo như root.

2
Đây là những gì đã làm việc với tôi với Ubuntu 16.04 với tư cách là một hệ thống máy chủ và Windows 10 với tư cách là khách: Tôi đã tạo tệp .vmdk bằng cách sử dụng sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. Bằng cách đó, tôi đã bao gồm phân vùng windows cũng như phân vùng bộ tải khởi động EFI. Sau đó, tôi đã làm theo hướng dẫn của shilka trên virtualbox.org/ticket/7702 và thêm cloverefiboot. Hoạt động như một lá bùa!
dzmanto

Bạn cũng có thể đặt tiền tố lệnh VirutalBox (và VBoxManage) sudo -g diskđể chỉ cấp quyền truy cập vào hộp ảo, nhưng không phải tất cả các quy trình khác của bạn.
Jan Hudec

0

Có một tùy chọn Đĩa gọi là "Bất biến", vì vậy về mặt lý thuyết nếu bạn chọn tùy chọn này cho liên kết vmdk với đĩa thô của mình, thì nó không nên thay đổi phân vùng ban đầu.

Để thực hiện, hãy mở "Trình quản lý phương tiện ảo" được tìm thấy trong "Tệp", chọn hình ảnh của bạn và nhấp vào "Sửa đổi" (Bạn phải đảm bảo hình ảnh này không được gắn vào bất kỳ máy nào, nếu không bạn sẽ gặp lỗi). Bây giờ bạn có thể đặt loại phương tiện thành "Không thể thay đổi".

Tôi đã không kiểm tra điều này, mặc dù. Nếu bất cứ ai làm (tất nhiên với một thiết lập thử nghiệm), sẽ tốt để báo cáo lại ở đây.

Có ai cân nhắc nói chống lại ý kiến ​​này không?


0

Trong vài năm nay, tôi đã chạy Windows và Ubuntu khởi động kép với Phân vùng Ubuntu cũng khởi động vào Windows VirtualBox để tận dụng các khả năng của màn hình cảm ứng mà Linux chưa thành thạo.

Tôi thiết lập nó với các hướng dẫn tương tự như dưới đây;

Các máy mới có thể xử lý đồng thời cả hai HĐH tốt hơn các hệ thống đơn trên các máy cũ.

Nhược điểm: Bạn cần lưu các hướng dẫn bạn sử dụng để thiết lập trong trường hợp bản cập nhật vô hiệu hóa kết nối VirtualBox (vấn đề hiện tại của tôi).


0

Sau nhiều lần thử, tôi đã có được một giải pháp gọn gàng và sạch sẽ:

  1. Khởi động phân vùng windows bạn muốn ảo hóa
  2. Tải xuống tiện ích Disk2VHD từ Sysiternals
  3. Nếu bạn có phân vùng UEFI , hãy làm theo các hướng dẫn sau
  4. Tạo hình ảnh VHD (không phải VHD X ) của phân vùng C:, recovery, UEFI (nếu có) và bất cứ thứ gì bạn muốn
  5. Quay trở lại Linux, mở VirtualBox và tạo VM phù hợp với thông số kỹ thuật hệ điều hành windows của bạn
  6. Đính kèm với VM đó đĩa VHD được tạo tại điểm 4
  7. Đó là nó
  8. Lợi nhuận

Khắc phục sự cố trong trường hợp UEFI:

  1. Trong cài đặt VM, trong VirtualBox, kiểm tra tùy chọn "Bật EFI" trong tab Hệ thống
  2. Nếu bạn gặp khó khăn tại EFI Shell, hãy chạy lệnh sau:

    fs0:\EFI\Boot\bkpbootx64.efi
    

Một số bình luận về downvote?
garlix

Tôi thấy điều này đã xảy ra vài ngày trước, nhưng tôi không nhớ đã cho bạn những lời khen ngợi, ít nhất là không nhằm mục đích. Tôi rất vui lòng bỏ qua nó, xin lỗi.
userfuser

0

VirtualBox có rất nhiều nhược điểm. Tôi để nó vài năm trước. Bây giờ tôi sử dụng qemu-kvm và bên cạnh tính năng tốt khác, nó có thể được cấu hình để sử dụng thiết bị đĩa giống như hình ảnh đĩa. Thủ thuật là cấu hình ảo "-drive if = sd, id = sda, format = raw, file = / dev / sda".

Nhưng! Trước tiên, bạn phải thực hiện một số thay đổi trong khi chạy MSW trên kim loại trần, trước khi bạn cố gắng ảo hóa nó: xem thư mục "Trình điều khiển" để trình điều khiển thích hợp xuất hiện và cây "Đăng ký" để các trình điều khiển được kích hoạt và được đặt thành chạy trước khi hệ thống bắt đầu như:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Bạn phải tìm kiếm trình điều khiển apropriet liên quan đến máy ảo nếu bạn không muốn xem BSOD.

Thật khó để nói trình điều khiển nào để kích hoạt. Cách tốt nhất là cài đặt một hệ thống kiểm tra trước, sau đó tìm kiếm đăng ký trong đó để tìm khóa đăng ký với "Bắt đầu" = dword: 00000000 và sau đó đặt các khóa này trên máy kim loại trần. Nó cũng được khuyến nghị để kiểm tra địa chỉ MAC trên kim loại trần để đặt nó trong cấu hình qemu. Bạn có thể ngăn hệ thống yêu cầu kích hoạt mới.

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.