Verwenden Sie physische Festplatte in Virtual Box

Antworten:

87

Ich machte einen selbstgefälligen Kommentar ("Straight forward"), als diese Frage ursprünglich gepostet wurde, und fand mich einige Monate später auf dieser Seite wieder, auf der Suche nach der gleichen Antwort


Direkte Anweisungen

Heute konnte ich von physischen Laufwerken booten. Diese Leistung erforderlich;

  • 60 Minuten direktes Lesen
  • 30 min dies zu schreiben
  • 20 min probieren verschiedene Optionen in VirtualBox

    Sehr geehrte Leserin , sehr geehrter Leser , Ihre Aufmerksamkeit richtet sich auf die Tatsache, dass es genauso einfach ist, Ihre Daten zu töten, wenn auf diese Weise auf die Disc zugegriffen wird. Das Verfahren, wie dies erreicht werden soll, bleibt eine Übung ...

Bilder (es ist passiert :)

grub 2

1. Erstellen Sie VMDK-Laufwerke, die von realen Laufwerken gelesen werden

Verwenden Sie den Befehl, um auf einem Linux-Host ein Image zu erstellen, das eine gesamte physische Festplatte darstellt (die keine tatsächlichen Daten enthält, da diese alle auf der physischen Festplatte gespeichert werden)

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

Sie müssen Lesezugriff auf die Gerätedatei der physischen Festplatte haben /dev/sda. Um dies zu erreichen, können Sie entweder den Eigentümer und die Zugriffsrechte der Gerätedatei ändern oder VBoxManage internalcommands createrawvmdk… als root ausführen ( sudovor den Befehl stellen).

Verwenden Sie auf einem Windows-Host anstelle der obigen Gerätespezifikation z. B. \\. \ PhysicalDrive0. Verwenden Sie auf einem Mac OS X-Host z. B. / dev / disk1 (und hängen Sie alle Partitionen auf disk1 aus).

(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. Weisen Sie die vmdk-Laufwerke einer VM zu

VM -> Einstellungen -> Speicher -> ide / sata hinzufügen -> Vorhandenen Datenträger auswählen -> Durchsuchen

zuordnen

 

3. Stellen Sie einen der Durchschreibemodi ein.

Datei -> Virtual Media Manager -> zB raw-0.vmdk -> [ändern] -> (o) Durchschreiben

  • Wiederholen Sie dies für alle Laufwerke

Durchschreiben einstellen

 

3. Boot-Priorität neu anordnen (halb optional)

VM -> Einstellungen -> System -> Startreihenfolge

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

VM -> Einstellungen -> Speicher -> Controller: SATA -> zB raw-5.vmdk -> Festplatte: Sata Port 0

 

Relevante Kapitel ( Handbuch )

  • Kapitel 9. Fortgeschrittene Themen

    • 9.9. Erweiterte Speicherkonfiguration
      • 9.9.1. Verwenden einer Raw-Host-Festplatte eines Gasts
      • 9.9.1.1. Zugriff auf die gesamte physische Festplatte
         
  • Kapitel 5. Virtueller Speicher

    • 5.2. Disk-Image-Dateien (VDI, VMDK, VHD, HDD)
    • 5.3. Der Virtual Media Manager
    • 5.4. Spezielle Bildschreibmodi

Auflisten physischer Laufwerke in 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

Sie können die Laufwerksnummern auch mit PowerShell abrufen:

PS C:\ Get-Disk
Ярослав Рахматуллин
quelle
7
Vielen Dank für die übersichtliche Schritt-für-Schritt-Anleitung. Ein Problem, das ich hatte, ist, dass die virtuelle .vmdk-Datei mir als Benutzer gehören kann, aber wenn ich VirtualBox starte und es versucht, darauf zuzugreifen, wird ein Fehler generiert. Dies scheint daran zu liegen, dass das physische / dev / sda im Besitz von root ist. Ich habe versucht, den Besitzer zu wechseln, aber keine Freude - immer noch derselbe Fehler. Das Starten von VirtualBox als root funktioniert (obwohl ich immer vorsichtig bin, wenn ich eine Anwendung als root laufen lasse, und eine solche mit dem Potenzial, dass so viel schief geht, macht mir Angst).
Die meisten Distributionen haben eine spezielle Gruppe wie "Disk" oder "Block". Bock Geräte in / dev / sd? sollte von Benutzern, die zu einer dieser Gruppen gehören, beschreibbar sein. Überprüfen Sie die Dokumentation für Ihre Distribution.
Ярослав Рахматуллин
1
Hat jemand dieses Problem mit Windows 10 gelöst? Ich erhalte folgende Fehlermeldung The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).:, auch wenn VirtualBox als Administrator ausgeführt wird.
szx
2
@szx ich es geschafft , um das VERR_ACCESS_DENIED Problem folgenden bekommen diesen Schritten
Epigene
1
Wie würde man versehentlich ihre Daten über Raw Disk Access töten? Ich denke, zu wissen, was nicht zu tun ist, würde helfen, Probleme zu vermeiden. Die Anweisungen sehen so einfach aus ...
Wowfunhappy
6

Die VirtualBox-Dokumentation bezieht sich auf den Zugriff auf eine Raw-Festplatte:

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

Verwenden Sie den Befehl, um auf einem Linux-Host ein Image zu erstellen, das eine gesamte physische Festplatte darstellt (die keine tatsächlichen Daten enthält, da diese alle auf der physischen Festplatte gespeichert werden)

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

Dadurch wird das Image /path/to/file.vmdk erstellt (muss absolut sein), und alle Daten werden aus / dev / sda gelesen und geschrieben.

Verwenden Sie den Befehl, um auf einem Linux-Host ein spezielles Image für die Raw-Partitionsunterstützung zu erstellen (das, wie bereits erwähnt, eine kleine Datenmenge enthält)

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

VirtualBox verwendet dieselbe Partitionsnummer wie Ihr Linux-Host. Infolgedessen beziehen sich die im obigen Beispiel angegebenen Nummern auf die erste primäre Partition bzw. das erste logische Laufwerk in der erweiterten Partition.

In der Dokumentation finden Sie Vorsichtsmaßnahmen und Windows-spezifische Anweisungen.

trpt4him
quelle
8
Nur-Link-Antworten sind nicht optimal und verdienen definitiv keine Akzeptanz, wenn eine bessere Antwort verfügbar ist. *
wink wink
0

MacOS 10.14:

  1. Erstellen Sie eine virtuelle Festplattendatei, die der realen Festplatte entspricht:

    # 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. Starten Sie VirtualBox als Superuser:

    sudo VirtualBox
    
  3. Fügen Sie ~/realdisk.vmdkin Storage --> Controller: Sata.

Max Malysh
quelle
0

Ich war nicht in der Lage, dies in Windows 10 für die längste Zeit zum Laufen zu bringen; VERR_ACCESS_DENIEDBeim Versuch, das VMDK anzuschließen, trat immer wieder eine Fehlermeldung auf.

Mit ein paar Tricks konnte ich das (endlich) zum Laufen bringen:

  1. Öffnen Sie PowerShell als Administrator (ich bin nicht sicher, warum, aber ich konnte einige der Befehle nicht in einer Administrator-Eingabeaufforderung ausführen)

  2. Führen Sie den folgenden Befehl aus, um das VMDK zu erstellen:

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

    ... wo path\to\physical\disk\file.vmdkist die Datei, die erstellt wird, um den Datenträger darzustellen, und [n]ist die Datenträgernummer (verwenden Sie die Datenträgerverwaltung, um diese Nummer zu erhalten)

  3. Führen Sie den folgenden Befehl aus, um das VMDK anzuhängen:

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

    ... wo [CONTROLLER]ist der Name des Festplattencontrollers, den Sie anhängen - "IDE" in meinem Fall

  4. Führen Sie den folgenden Befehl aus, um die VM zu starten:

    VBoxManage.exe startvm [VM NAME]
    
Nathan Osman
quelle