Gunakan harddisk fisik di Kotak Virtual

Jawaban:

87

Saya membuat komentar sombong ("Lurus ke depan") ketika pertanyaan ini awalnya diposting dan menemukan diri saya di halaman ini beberapa bulan kemudian mencari jawaban yang sama


Instruksi langsung ke depan

Hari ini, saya berhasil boot dari drive fisik. Pencapaian ini dibutuhkan;

  • 60 menit terus membaca
  • 30 menit menulis ini
  • 20 menit mencoba berbagai opsi di VirtualBox

    Pembaca yang budiman , perhatian Anda diarahkan pada fakta bahwa sama lurusnya untuk membunuh data Anda saat disk diakses dengan cara ini. Prosedur tentang cara menyelesaikan ini dibiarkan sebagai latihan ...

Foto (itu memang terjadi :)

grub 2

1. Buat vmdk drive yang membaca dari drive nyata

Untuk membuat gambar yang mewakili seluruh hard disk fisik (yang tidak akan berisi data aktual, karena ini semua akan disimpan pada disk fisik), pada host Linux, gunakan perintah

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

Anda harus memiliki akses baca ke file perangkat disk fisik /dev/sda. Untuk mencapai ini, Anda dapat mengubah pemilik dan hak akses file perangkat atau menjalankan VBoxManage internalcommands createrawvmdk... sebagai root (taruh sudosebelum perintah).

Pada host Windows, alih-alih spesifikasi perangkat di atas, gunakan mis. \\. \ PhysicalDrive0. Pada host Mac OS X, gunakan misalnya / dev / disk1 (dan unmount semua partisi pada 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. Tetapkan drive vmdk ke VM

VM -> Pengaturan -> Penyimpanan -> tambahkan ide / sata -> Pilih disk yang ada -> jelajahi

menetapkan

 

3. Tetapkan salah satu mode Writethrough.

File -> Virtual Media Manager -> mis. Raw-0.vmdk -> [modifikasi] -> (o) Ditulis melalui

  • ulangi untuk semua drive

atur tertulis

 

3. Susun ulang prioritas boot (semi opsional)

VM -> Pengaturan -> Sistem -> Urutan boot

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

VM -> Pengaturan -> Penyimpanan -> Pengendali: SATA -> mis. Raw-5.vmdk -> Hard Disk: Sata Port 0

 

Bab yang relevan ( manual )

  • Bab 9. Topik lanjutan

    • 9.9. Konfigurasi penyimpanan lanjutan
      • 9.9.1. Menggunakan hard disk host mentah dari tamu
      • 9.9.1.1. Akses ke seluruh hard disk fisik
         
  • Bab 5. Penyimpanan virtual

    • 5.2. File gambar disk (VDI, VMDK, VHD, HDD)
    • 5.3. Manajer Media Virtual
    • 5.4. Mode penulisan gambar khusus

Menghitung drive fisik di 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

Anda juga bisa mendapatkan nomor drive dengan PowerShell:

PS C:\ Get-Disk
Ярослав Рахматуллин
sumber
7
Terima kasih banyak atas instruksi langkah demi langkah yang jelas. Namun satu masalah yang saya miliki adalah bahwa file .vmdk virtual dapat dimiliki oleh saya sebagai pengguna tetapi ketika saya memulai VirtualBox dan mencoba mengaksesnya kesalahan dihasilkan. Ini kelihatannya karena fisik / dev / sda dimiliki oleh root. Saya mencoba mengubah kepemilikan tetapi tidak ada sukacita - kesalahan masih sama. Memulai VirtualBox sebagai root tidak bekerja (meskipun saya selalu berhati-hati tentang menjalankan aplikasi apa pun sebagai root, dan yang seperti ini dengan potensi untuk banyak kesalahan membuat saya takut konyol).
Kebanyakan distro memiliki grup khusus seperti "disk" atau "blok". Perangkat Bock di / dev / sd? harus dapat ditulis oleh pengguna yang termasuk dalam salah satu grup tersebut. Periksa dokumen untuk distro Anda.
Ярослав Рахматуллин
1
Adakah yang bisa menjalankan ini di Windows 10? Saya mendapatkan kesalahan ini:, The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).bahkan ketika menjalankan VirtualBox sebagai admin.
szx
2
@szx Saya berhasil mengatasi masalah VERR_ACCESS_DENIED mengikuti langkah-langkah ini
Epigene
1
Bagaimana seseorang dapat secara tidak sengaja membunuh data mereka melalui akses disk mentah? Saya pikir mengetahui apa yang tidak boleh dilakukan akan membantu menghindari masalah. Petunjuknya terlihat sangat mudah ...
Wowfunhappy
6

Dokumentasi VirtualBox mengacu pada mengakses hard disk mentah:

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

Untuk membuat gambar yang mewakili seluruh hard disk fisik (yang tidak akan berisi data aktual, karena ini semua akan disimpan pada disk fisik), pada host Linux, gunakan perintah

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

Ini menciptakan image /path/to/file.vmdk (harus mutlak), dan semua data akan dibaca dan ditulis dari / dev / sda.

Untuk membuat gambar khusus untuk dukungan partisi mentah (yang akan berisi sejumlah kecil> data, sebagaimana telah disebutkan), pada host Linux, gunakan perintah

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

VirtualBox menggunakan penomoran partisi yang sama dengan host Linux Anda. Sebagai hasilnya, angka-angka yang diberikan dalam contoh di atas akan merujuk ke partisi primer pertama dan drive logis pertama di partisi extended, masing-masing.

Lihat dokumentasi untuk peringatan dan instruksi khusus Windows.

trpt4him
sumber
8
Tautan hanya jawaban yang kurang optimal dan jelas tidak layak diterima ketika jawaban yang lebih baik tersedia. * wink wink *
Ярослав Рахматуллин
0

MacOS 10.14:

  1. Buat file disk virtual yang sesuai dengan disk nyata:

    # 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. Luncurkan VirtualBox sebagai pengguna super:

    sudo VirtualBox
    
  3. Tambahkan ~/realdisk.vmdkdi Storage --> Controller: Sata.

Max Malysh
sumber
0

Saya tidak bisa mendapatkan ini berfungsi di Windows 10 untuk waktu yang lama; Saya terus mendapatkan VERR_ACCESS_DENIEDkesalahan ketika mencoba untuk melampirkan VMDK.

Namun, saya (akhirnya) bisa menjalankannya dengan beberapa trik:

  1. Buka PowerShell sebagai administrator (saya tidak yakin mengapa, tapi saya tidak bisa mendapatkan beberapa perintah untuk bekerja di command prompt administrator)

  2. Jalankan perintah berikut untuk membuat VMDK:

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

    ... di mana path\to\physical\disk\file.vmdkadalah file yang akan dibuat untuk mewakili disk dan [n]adalah nomor disk (gunakan Manajemen Disk untuk mendapatkan nomor ini)

  3. Jalankan perintah berikut untuk melampirkan VMDK:

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

    ... di mana [CONTROLLER]nama pengontrol disk yang Anda lampirkan - "IDE" dalam kasus saya

  4. Jalankan perintah berikut untuk memulai VM:

    VBoxManage.exe startvm [VM NAME]
    
Nathan Osman
sumber