ใช้ฟิสิคัลฮาร์ดดิสก์ใน Virtual Box


59

การใช้ Virtual Box ฉันจะติดตั้งระบบปฏิบัติการไปยังดิสก์รอง, ฟิสิคัลดิสก์และบูตในทั้งสอง (ในเวลาที่แยกต่างหาก) Virtual Box และเป็นการติดตั้งระบบปฏิบัติการรองทั่วไปได้อย่างไร


คำตอบ:


88

ฉันแสดงความคิดเห็นพอใจในตัวเอง ("ส่งต่อตรง") เมื่อมีการโพสต์คำถามเดิมและพบว่าตัวเองอยู่ที่หน้านี้หลายเดือนต่อมามองหาคำตอบเดียวกัน


คำแนะนำไปข้างหน้าตรง

วันนี้ฉันจัดการเพื่อบูตจากไดรฟ์ทางกายภาพ ความสำเร็จนี้ต้องการ;

  • อ่านตรงไปข้างหน้า 60 นาที
  • 30 นาทีเขียนสิ่งนี้
  • 20 นาทีลองใช้ตัวเลือกต่าง ๆ ใน VirtualBox

    ผู้อ่านที่รักความสนใจของคุณจะถูกนำไปที่ความจริงที่ว่ามันตรงไปข้างหน้าอย่างเท่าเทียมกันที่จะฆ่าข้อมูลของคุณเมื่อมีการเข้าถึงแผ่นดิสก์ในลักษณะนี้ ขั้นตอนเกี่ยวกับวิธีการทำสิ่งนี้ให้สำเร็จเป็นแบบฝึกหัด ...

ภาพ (มันเกิดขึ้น :)

ด้วง 2

1. สร้างไดรฟ์ vmdk ที่อ่านจากไดรฟ์จริง

ในการสร้างภาพที่แสดงถึงทั้งฟิสิคัลฮาร์ดดิสก์ (ซึ่งจะไม่มีข้อมูลจริงใด ๆ เช่นนี้จะถูกเก็บไว้ในฟิสิคัลดิสก์) บนโฮสต์ Linux ให้ใช้คำสั่ง

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

/dev/sdaคุณต้องมีการเข้าถึงแบบอ่านไปยังแฟ้มอุปกรณ์ดิสก์ทางกายภาพ ในการทำสิ่งนี้ให้สำเร็จคุณสามารถเปลี่ยนเจ้าของและสิทธิ์การเข้าถึงของไฟล์อุปกรณ์หรือเรียกใช้VBoxManage internalcommands createrawvmdk... เป็นรูท (วางไว้sudoหน้าคำสั่ง)

บนโฮสต์ Windows แทนที่จะใช้ข้อกำหนดอุปกรณ์ดังกล่าวให้ใช้ \\. \ PhysicalDrive0 บนโฮสต์ Mac OS X ให้ใช้เช่น / dev / disk1 (และยกเลิกการต่อเชื่อมพาร์ติชั่นทั้งหมดใน disk1)

(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. กำหนดไดรฟ์ vmdk ให้กับ VM

VM -> การตั้งค่า -> ที่เก็บข้อมูล -> เพิ่ม ide / sata -> เลือกดิสก์ที่มีอยู่ -> เรียกดู

กำหนด

 

3. ตั้งค่าหนึ่งในโหมด Writethrough

ไฟล์ -> Virtual Media Manager -> เช่น raw-0.vmdk -> [แก้ไข] -> (o) Writethrough

  • ทำซ้ำสำหรับไดรฟ์ทั้งหมด

ตั้ง writethrough

 

3. จัดลำดับความสำคัญการบูตใหม่ (ตัวเลือกกึ่ง)

VM -> การตั้งค่า -> ระบบ -> ลำดับการบู๊ต

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

VM -> การตั้งค่า -> ที่เก็บข้อมูล -> ตัวควบคุม: SATA -> เช่น raw-5.vmdk -> ฮาร์ดดิสก์: พอร์ต Sata 0

 

บทที่เกี่ยวข้อง ( ด้วยตนเอง )

  • บทที่ 9 หัวข้อขั้นสูง

    • 9.9 การกำหนดค่าการจัดเก็บขั้นสูง
      • 9.9.1 การใช้ฮาร์ดดิสก์โฮสต์ดิบจากแขก
      • 9.9.1.1 เข้าถึงฮาร์ดดิสก์ทางกายภาพทั้งหมด
         
  • บทที่ 5 การจัดเก็บข้อมูลเสมือนจริง

    • 5.2 ไฟล์ภาพดิสก์ (VDI, VMDK, VHD, HDD)
    • 5.3 ผู้จัดการสื่อเสมือน
    • 5.4 โหมดการเขียนภาพพิเศษ

การระบุไดรฟ์ทางกายภาพใน 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

คุณยังสามารถรับหมายเลขไดรฟ์ด้วย PowerShell:

PS C:\ Get-Disk

7
ขอบคุณมากสำหรับคำแนะนำทีละขั้นตอนที่ชัดเจน ปัญหาหนึ่งที่ฉันมี แต่ก็คือไฟล์. vmdk เสมือนเป็นของฉันในฐานะผู้ใช้ แต่เมื่อฉันเริ่ม VirtualBox และพยายามเข้าถึงมันจะเกิดข้อผิดพลาดขึ้น ดูเหมือนว่าจะเป็นเพราะ physical / dev / sda เป็นเจ้าของโดย root ฉันลองเปลี่ยนความเป็นเจ้าของ แต่ไม่มีความสุข - ข้อผิดพลาดยังคงเหมือนเดิม การเริ่มใช้ VirtualBox ในฐานะที่เป็นรูทนั้นใช้งานได้ (แม้ว่าฉันจะระมัดระวังในการใช้งานแอปพลิเคชันใด ๆ ก็ตามในฐานะรูทและหนึ่งในนั้นเช่นนี้ที่มีศักยภาพมากที่จะผิดพลาด

distros ส่วนใหญ่มีกลุ่มพิเศษเช่น "ดิสก์" หรือ "บล็อก" อุปกรณ์ Bock ใน / dev / sd? ควรเขียนได้โดยผู้ใช้ที่อยู่ในกลุ่มใดกลุ่มหนึ่ง ตรวจสอบเอกสารสำหรับ distro ของคุณ
ЯрославРахматуллин

1
มีใครทำงานบน Windows 10 ได้ไหม ฉันได้รับข้อผิดพลาดนี้: The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).แม้ในขณะที่ใช้งาน VirtualBox ในฐานะผู้ดูแลระบบ
szx

2
@szx ฉันจัดการเพื่อแก้ไขปัญหา VERR_ACCESS_DENIED ทำตามขั้นตอนเหล่านี้
Epigene

1
วิธีหนึ่งจะฆ่าข้อมูลของพวกเขาโดยไม่ตั้งใจผ่านการเข้าถึงดิสก์ดิบ? ฉันคิดว่าการไม่ทำอะไรจะช่วยหลีกเลี่ยงปัญหาได้ คำแนะนำที่มีลักษณะตรงไปตรงมาดังนั้น ...
Wowfunhappy

6

เอกสารประกอบ VirtualBox หมายถึงการเข้าถึงฮาร์ดดิสก์ดิบ:

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

ในการสร้างภาพที่แสดงถึงทั้งฟิสิคัลฮาร์ดดิสก์ (ซึ่งจะไม่มีข้อมูลจริงใด ๆ เช่นนี้จะถูกเก็บไว้ในฟิสิคัลดิสก์) บนโฮสต์ Linux ให้ใช้คำสั่ง

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

สิ่งนี้จะสร้างอิมเมจ /path/to/file.vmdk (ต้องเป็นแบบสัมบูรณ์) และข้อมูลทั้งหมดจะถูกอ่านและเขียนจาก / dev / sda

ในการสร้างอิมเมจพิเศษสำหรับการสนับสนุนพาร์ติชัน raw (ซึ่งจะมีจำนวนข้อมูลน้อยตามที่กล่าวไว้แล้ว) บนโฮสต์ Linux ให้ใช้คำสั่ง

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

VirtualBox ใช้หมายเลขพาร์ติชันเดียวกันกับโฮสต์ Linux ของคุณ ดังนั้นตัวเลขที่ระบุในตัวอย่างด้านบนจะอ้างอิงถึงพาร์ติชันหลักแรกและไดรฟ์ลอจิคัลแรกในพาร์ติชันเสริมตามลำดับ

ดูเอกสารประกอบสำหรับคำเตือนและคำแนะนำเฉพาะของ Windows


8
คำตอบลิงก์เท่านั้นมีค่าน้อยกว่าค่าที่ดีที่สุดและไม่สมควรได้รับการยอมรับเมื่อมีคำตอบที่ดีกว่า * wink wink *
ЯрославРахматуллин

0

MacOS 10.14:

  1. สร้างไฟล์ดิสก์เสมือนที่สอดคล้องกับดิสก์จริง:

    # 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. เปิดตัว VirtualBox ในฐานะผู้ใช้ขั้นสูง:

    sudo VirtualBox
    
  3. เพิ่มใน~/realdisk.vmdkStorage --> Controller: Sata


0

ฉันไม่สามารถทำงานได้ใน Windows 10 เป็นเวลานานที่สุด ฉันยังคงได้รับVERR_ACCESS_DENIEDข้อผิดพลาดเมื่อพยายามแนบ VMDK

อย่างไรก็ตามฉัน (ในที่สุด) สามารถทำงานนี้ได้ด้วยเทคนิคเล็กน้อย:

  1. เปิด PowerShell ในฐานะผู้ดูแลระบบ (ฉันไม่แน่ใจว่าทำไม แต่ฉันไม่สามารถรับคำสั่งบางอย่างให้ทำงานในพรอมต์คำสั่งของผู้ดูแลระบบ)

  2. รันคำสั่งต่อไปนี้เพื่อสร้าง VMDK:

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

    ... ที่path\to\physical\disk\file.vmdkเป็นไฟล์ที่จะถูกสร้างขึ้นเพื่อเป็นตัวแทนของดิสก์และ[n]เป็นหมายเลขดิสก์ (ใช้การจัดการดิสก์เพื่อรับหมายเลขนี้)

  3. รันคำสั่งต่อไปนี้เพื่อแนบ VMDK:

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

    ... [CONTROLLER]ชื่อของตัวควบคุมดิสก์ที่คุณแนบกับ - "IDE" คืออะไรในกรณีของฉัน

  4. รันคำสั่งต่อไปนี้เพื่อเริ่ม VM:

    VBoxManage.exe startvm [VM NAME]
    
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.