Sử dụng ổ cứng vật lý trong Hộp ảo


59

Sử dụng Virtual Box, làm cách nào tôi có thể cài đặt HĐH cho đĩa thứ cấp, đĩa vật lý và khởi động nó trong cả hai (tại các thời điểm riêng biệt) và như một cài đặt HĐH thứ cấp thông thường?


Câu trả lời:


87

Tôi đã đưa ra một nhận xét tự mãn ("Chuyển tiếp thẳng") khi câu hỏi này ban đầu được đăng và thấy mình ở trang này vài tháng sau đó để tìm kiếm câu trả lời tương tự


Hướng dẫn thẳng

Hôm nay, tôi quản lý để khởi động từ các ổ đĩa vật lý. Thành tích này cần có;

  • 60 phút đọc thẳng về phía trước
  • 30 phút viết này
  • 20 phút thử các tùy chọn khác nhau trong VirtualBox

    Bạn đọc thân mến , sự chú ý của bạn hướng vào thực tế là việc tiêu diệt dữ liệu của bạn khi đĩa được truy cập theo cách này cũng không kém phần đơn giản. Quy trình về cách thực hiện việc này được để lại như một bài tập ...

Bức ảnh (nó đã xảy ra :)

grub 2

1. Tạo ổ đĩa vmdk đọc từ ổ đĩa thực

Để tạo một hình ảnh đại diện cho toàn bộ đĩa cứng vật lý (sẽ không chứa bất kỳ dữ liệu thực tế nào, vì tất cả điều này sẽ được lưu trữ trên đĩa vật lý), trên máy chủ Linux, hãy sử dụng lệnh

VBoxManage internalcommands createrawvmdk \
    -filename /path/to/file.vmdk \
    -rawdisk /dev/sda

Bạn phải có quyền truy cập đọc vào tập tin thiết bị đĩa vật lý /dev/sda. Để thực hiện điều này, bạn có thể thay đổi chủ sở hữu và quyền truy cập của tệp thiết bị hoặc chạy chương trình VBoxManage internalcommands createrawvmdkgốc dưới dạng root (đặt sudotrước lệnh).

Trên máy chủ Windows, thay vì thông số kỹ thuật của thiết bị ở trên, hãy sử dụng ví dụ \. \ PhysDrive0. Trên máy chủ Mac OS X, sử dụng eg / dev / đĩa1 (và ngắt kết nối tất cả các phân vùng trên đĩa1).

(all on one line)
C:\VirtualBoxDrives>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
    internalcommands createrawvmdk
    -filename C:\VirtualBoxDrives\raw-0.vmdk 
    -rawdisk \\.\PHYSICALDRIVE0

(output)
RAW host disk access VMDK file C:\VirtualBoxDrives\raw-0.vmdk created successf..

 

2. Gán các ổ đĩa vmdk cho VM

VM -> Cài đặt -> Lưu trữ -> thêm ide / sata -> Chọn đĩa hiện có -> duyệt

chỉ định

 

3. Đặt một trong các chế độ Writethrough.

Tệp -> Trình quản lý phương tiện ảo -> ví dụ: raw-0.vmdk -> [sửa đổi] -> (o) Writethrough

  • lặp lại cho tất cả các ổ đĩa

đặt văn bản

 

3. Sắp xếp lại thứ tự ưu tiên khởi động (bán tùy chọn)

VM -> Cài đặt -> Hệ thống -> Thứ tự khởi động

[./] Hard Disk
[./] CD/DVD
[  ] Floppy
[  ] Network

VM -> Cài đặt -> Lưu trữ -> Bộ điều khiển: SATA -> ví dụ: raw-5.vmdk -> Đĩa cứng: Cổng Sata 0

 

Các chương liên quan ( hướng dẫn sử dụng )

  • Chương 9. Chủ đề nâng cao

    • 9,9. Cấu hình lưu trữ nâng cao
      • 9.9.1. Sử dụng đĩa cứng lưu trữ thô từ khách
      • 9.9.1.1. Truy cập vào toàn bộ đĩa cứng vật lý
         
  • Chương 5. Lưu trữ ảo

    • 5.2. Tệp hình ảnh đĩa (VDI, VMDK, VHD, HDD)
    • 5.3. Trình quản lý phương tiện ảo
    • 5.4. Chế độ ghi hình ảnh đặc biệt

Liệt kê các ổ đĩa vật lý trong Windows:

C:\Users\win7>wmic diskdrive list brief

Caption                               DeviceID            Model                                 Partitions  Size
Samsung SSD 840 EVO 250GB ATA Device  \\.\PHYSICALDRIVE3  Samsung SSD 840 EVO 250GB ATA Device  6           250057228288
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE1  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE2  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE0  ST1000DM003-1CH162 ATA Device         5           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE5  WDC WD1000DHTZ-04N21V0 ATA Device     6           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE4  WDC WD1000DHTZ-04N21V0 ATA Device     5           1000202273280
ST1000DM 003-1CH162 SCSI Disk Device  \\.\PHYSICALDRIVE6  ST1000DM 003-1CH162 SCSI Disk Device  5           1000202273280

Bạn cũng có thể lấy số ổ đĩa bằng PowerShell:

PS C:\ Get-Disk

7
Cảm ơn rất nhiều cho các hướng dẫn từng bước rõ ràng. Tuy nhiên, có một vấn đề tôi gặp phải là tệp .vmdk ảo có thể thuộc sở hữu của tôi với tư cách là người dùng nhưng khi tôi khởi động VirtualBox và nó cố gắng truy cập thì sẽ xảy ra lỗi. Điều này dường như là do vật lý / dev / sda được sở hữu bởi root. Tôi đã thử thay đổi quyền sở hữu nhưng không có niềm vui - vẫn cùng một lỗi. Bắt đầu VirtualBox với quyền root thực sự hoạt động (mặc dù tôi luôn thận trọng khi chạy bất kỳ ứng dụng nào với quyền root và một ứng dụng như thế này với tiềm năng rất nhiều điều sẽ làm tôi sợ một cách ngớ ngẩn).

Hầu hết các bản phân phối có một nhóm đặc biệt như "đĩa" hoặc "khối". Thiết bị Bock trong / dev / sd? nên được ghi bởi người dùng thuộc một trong các nhóm đó. Kiểm tra các tài liệu cho bản phân phối của bạn.
Ярослав Рахматуллин

1
Bất cứ ai cũng có điều này làm việc trên Windows 10? Tôi đang gặp lỗi này : The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED)., ngay cả khi chạy VirtualBox với tư cách quản trị viên.
szx

2
@szx Tôi đã xoay sở để giải quyết vấn đề VERR_ACCESS_DENIED theo các bước sau
Epigene

1
Làm thế nào một người vô tình giết dữ liệu của họ thông qua truy cập đĩa thô? Tôi biết rằng những gì không nên làm sẽ giúp tránh các vấn đề. Các hướng dẫn trông rất đơn giản ...
Wowfunhappy

6

Tài liệu VirtualBox đề cập đến việc truy cập vào một đĩa cứng thô:

http://www.virtualbox.org/manual/ch09.html#rawdisk

Để tạo một hình ảnh đại diện cho toàn bộ đĩa cứng vật lý (sẽ không chứa bất kỳ dữ liệu thực tế nào, vì tất cả điều này sẽ được lưu trữ trên đĩa vật lý), trên máy chủ Linux, hãy sử dụng lệnh

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/sda

Điều này tạo ra hình ảnh /path/to/file.vmdk (phải tuyệt đối) và tất cả dữ liệu sẽ được đọc và ghi từ / dev / sda.

Để tạo một hình ảnh đặc biệt để hỗ trợ phân vùng thô (sẽ chứa một lượng nhỏ> lượng dữ liệu, như đã đề cập), trên máy chủ Linux, hãy sử dụng lệnh

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/sda -partitions 1,5

VirtualBox sử dụng đánh số phân vùng giống như máy chủ Linux của bạn. Kết quả là, các số được đưa ra trong ví dụ trên sẽ tương ứng với phân vùng chính đầu tiên và ổ đĩa logic đầu tiên trong phân vùng mở rộng.

Xem tài liệu để biết thêm và hướng dẫn cụ thể cho Windows.


8
Câu trả lời chỉ liên kết là ít hơn tối ưu và chắc chắn không đáng được chấp nhận khi có câu trả lời tốt hơn. * nháy mắt nháy mắt *
Ярослав Рахматуллин

0

MacOS 10.14:

  1. Tạo một tệp đĩa ảo tương ứng với đĩa thực:

    # First, find the device you want to use inside Virtual Box:
    diskutil list  
    
    # Create the virtual disk
    sudo VBoxManage internalcommands createrawvmdk \
            -filename ~/realdisk.vmdk \
            -rawdisk /dev/disk2
    
  2. Khởi chạy VirtualBox như một siêu người dùng:

    sudo VirtualBox
    
  3. Thêm ~/realdisk.vmdkvào Storage --> Controller: Sata.


0

Tôi đã không thể để nó hoạt động trong Windows 10 lâu nhất; Tôi liên tục gặp VERR_ACCESS_DENIEDlỗi khi cố gắn VMDK.

Tuy nhiên, cuối cùng tôi đã có thể khiến nó hoạt động với một vài thủ thuật:

  1. Mở PowerShell với tư cách quản trị viên (Tôi không chắc tại sao, nhưng tôi không thể nhận được một số lệnh để làm việc trong dấu nhắc lệnh của quản trị viên)

  2. Chạy lệnh sau để tạo VMDK:

    VBoxManage.exe internalcommands createrawvmdk \
        -filename "path\to\physical\disk\file.vmdk" \
        -rawdisk \\.\PhysicalDrive[n]
    

    ... nơi path\to\physical\disk\file.vmdkcác tập tin sẽ được tạo ra để đại diện cho đĩa[n]là số đĩa (sử dụng Disk Management để có được con số này)

  3. Chạy lệnh sau để đính kèm VMDK:

    VBoxManage.exe storageattach [VM NAME] \
        --storagectl [CONTROLLER] \
        --device 0 \
        --port 0 \
        --type hdd \
        --medium "path\to\physical\disk\file.vmdk"
    

    ... [CONTROLLER]tên của bộ điều khiển đĩa bạn đang gắn vào - "IDE" trong trường hợp của tôi

  4. Chạy lệnh sau để khởi động VM:

    VBoxManage.exe startvm [VM NAME]
    
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.