Utiliser un disque dur physique dans Virtual Box

Réponses:

87

J'ai fait un commentaire suffisant ("tout de suite") lorsque cette question a été posée et je me suis retrouvé sur cette page quelques mois plus tard, cherchant la même réponse.


Instructions simples

Aujourd'hui, j'ai réussi à démarrer à partir de disques physiques. Cette réalisation requise;

  • 60 min de lecture directe
  • 30 min d'écriture cette
  • 20 min en essayant différentes options dans VirtualBox

    Cher lecteur , votre attention est attirée sur le fait qu’il est tout aussi simple de supprimer vos données lorsque vous accédez au disque de cette manière. La procédure pour y parvenir est laissée comme un exercice ...

Photos (c'est arrivé :)

Grub 2

1. Créez des lecteurs vmdk lus à partir de vrais lecteurs

Pour créer une image représentant un disque dur physique entier (qui ne contiendra aucune donnée réelle, car toutes celles-ci seront stockées sur le disque physique), sur un hôte Linux, utilisez la commande

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

Vous devez avoir un accès en lecture au fichier de périphérique de disque physique /dev/sda. Pour ce faire, vous pouvez soit changer le propriétaire et les droits d'accès du fichier de périphérique, soit exécuter VBoxManage internalcommands createrawvmdk… en tant que root ( sudoavant la commande).

Sur un hôte Windows, utilisez par exemple \\. \ PhysicalDrive0 au lieu de la spécification de périphérique ci-dessus. Sur un hôte Mac OS X, utilisez par exemple / dev / disk1 (et démontez toutes les partitions sur le disque1).

(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. Attribuer les lecteurs vmdk à une machine virtuelle

VM -> Paramètres -> Stockage -> ajouter ide / sata -> Choisir un disque existant -> parcourir

attribuer

 

3. Définissez l'un des modes Writthrough.

Fichier -> Gestionnaire de média virtuel -> Par exemple, raw-0.vmdk -> [Modifier] -> (o) Writethrough

  • répéter pour tous les lecteurs

mettre en écriture

 

3. Réorganiser la priorité d’amorçage (semi facultatif)

VM -> Paramètres -> Système -> Ordre de démarrage

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

VM -> Paramètres -> Stockage -> Contrôleur: SATA -> par exemple raw-5.vmdk -> Disque dur: Sata Port 0

 

Chapitres pertinents ( manuel )

  • Chapitre 9. Sujets avancés

    • 9.9. Configuration de stockage avancée
      • 9.9.1. Utilisation d'un disque dur hôte brut à partir d'un invité
      • 9.9.1.1. Accès à tout le disque dur physique
         
  • Chapitre 5. Stockage virtuel

    • 5.2. Fichiers d'image disque (VDI, VMDK, VHD, HDD)
    • 5.3. Le gestionnaire de média virtuel
    • 5.4. Modes d'écriture d'image spéciaux

Énumération des disques physiques sous 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

Vous pouvez également obtenir les numéros de lecteur avec PowerShell:

PS C:\ Get-Disk
Рослав Рахматуллин
la source
7
Merci beaucoup pour les instructions claires, étape par étape. Un problème que j’ai eu cependant, c’est que le fichier virtuel .vmdk peut être la propriété de moi en tant qu’utilisateur mais lorsque je lance VirtualBox et qu’il tente d’y accéder, une erreur est générée. Cela semble être dû au fait que le / dev / sda physique appartient à root. J'ai essayé de changer de propriétaire mais pas de joie - toujours la même erreur. Le démarrage de VirtualBox en tant que root fonctionne (bien que je sois toujours prudent lorsque vous exécutez une application en tant que root, et une application telle que celle-ci qui risque de trop mal tourner me fait peur).
La plupart des distributions ont un groupe spécial tel que "disque" ou "bloc". Bock devices dans / dev / sd? devrait être accessible en écriture aux utilisateurs appartenant à l'un de ces groupes. Vérifiez les docs pour votre distribution.
рослав Рахматуллин
1
Quelqu'un at-il ce travail sur Windows 10? Je reçois cette erreur The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).:, même lorsque vous exécutez VirtualBox en tant qu'administrateur.
Szx
2
@szx j'ai réussi à contourner le problème VERR_ACCESS_DENIED en suivant ces étapes
Epigene
1
Comment tuer accidentellement leurs données via un accès disque brut? Je pense que savoir quoi ne pas faire aiderait à éviter les problèmes. Les instructions ont l'air si simple ...
Wowfunhappy
6

La documentation de VirtualBox fait référence à l’accès à un disque dur brut:

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

Pour créer une image représentant un disque dur physique entier (qui ne contiendra aucune donnée réelle, car toutes celles-ci seront stockées sur le disque physique), sur un hôte Linux, utilisez la commande

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

Cela crée l'image /path/to/file.vmdk (doit être absolu) et toutes les données seront lues et écrites à partir de / dev / sda.

Pour créer une image spéciale pour le support de partition brute (qui contiendra une petite quantité de données, comme mentionné précédemment), sur un hôte Linux, utilisez la commande

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

VirtualBox utilise la même numérotation de partition que votre hôte Linux. En conséquence, les numéros indiqués dans l'exemple ci-dessus se rapportent à la première partition principale et à la première unité logique de la partition étendue, respectivement.

Consultez la documentation pour les mises en garde et les instructions spécifiques à Windows.

trpt4him
la source
8
Les réponses avec lien uniquement sont moins qu'optimales et ne méritent absolument pas d'être acceptées lorsqu'une meilleure réponse est disponible. * wink wink *
рослав Рахматуллин
0

MacOS 10.14:

  1. Créez un fichier de disque virtuel correspondant au disque réel:

    # 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. Lancez VirtualBox en tant que super utilisateur:

    sudo VirtualBox
    
  3. Ajouter ~/realdisk.vmdkdans Storage --> Controller: Sata.

Max Malysh
la source
0

J'ai été incapable de faire fonctionner cela dans Windows 10 aussi longtemps que possible; J'ai gardé une VERR_ACCESS_DENIEDerreur en essayant de joindre le VMDK.

Cependant, j'ai (enfin) réussi à faire fonctionner cela en quelques astuces:

  1. Ouvrez PowerShell en tant qu'administrateur (je ne sais pas pourquoi, mais certaines de ces commandes ne fonctionnent pas dans une invite de commande d'administrateur).

  2. Exécutez la commande suivante pour créer le VMDK:

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

    ... où path\to\physical\disk\file.vmdkest le fichier qui sera créé pour représenter le disque et [n]est le numéro du disque (utilisez Gestion des disques pour obtenir ce numéro)

  3. Exécutez la commande suivante pour attacher le VMDK:

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

    ... où [CONTROLLER]est le nom du contrôleur de disque auquel vous vous attachez - "IDE" dans mon cas

  4. Exécutez la commande suivante pour démarrer la machine virtuelle:

    VBoxManage.exe startvm [VM NAME]
    
Nathan Osman
la source
0

J'essayais de démarrer une machine virtuelle Linux (en particulier Ubuntu 19.10) sur macOS où Ubuntu est installé sur une partition physique formatée au format ext4. La plupart des réponses que j'ai trouvées, y compris celle de @ ЯрославРахматуллин, m'ont été très utiles, mais j'ai reçu le message d'erreur suivant:

FATAL: Aucun média amorçable trouvé! Système est arrêté.

Une réponse a trait au démarrage sur un LiveCD, puis à la modification de la configuration de GRUB pour y remédier. Cependant, GRUB n'est même pas installé sur mon Mac. Finalement, j'ai découvert que la solution à mon problème était de s'assurer que la machine virtuelle avait accès à la partition EFI de mon disque physique et d'activer la prise en charge EFI dans les paramètres de la machine virtuelle.

entrez la description de l'image ici

Ci-dessous, la sortie de diskutil listma machine Mac hôte:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI NO NAME                 536.9 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            161.1 GB   disk0s2
   3:       Microsoft Basic Data Development             9.1 GB     disk0s3
   4:                  Apple_HFS Recovery HD             650.0 MB   disk0s4
   5:           Linux Filesystem                         79.2 GB    disk0s5

A partir de cela, j'ai généré le fichier VMDK comme suit, donnant à la machine virtuelle invitée un accès en lecture seule à la partition EFI et un accès en écriture complet aux partitions NTFS (3) et Ext4 (5).

sudo VBoxManage internalcommands createrawvmdk -filename disk0.vmdk -rawdisk -partitions 1r,3,5

Maintenant, je peux effectuer un double démarrage sur MacOS ou Ubuntu, et si je suis déjà sous MacOS, je peux démarrer Ubuntu en tant que machine virtuelle si nécessaire. Jours heureux!

John Rix
la source