111 votes

Utiliser un disque dur physique dans Virtual Box

En utilisant Virtual Box, comment puis-je installer un système d'exploitation sur un disque physique secondaire et le démarrer à la fois (à des moments différents) dans Virtual Box et comme une installation typique d'un système d'exploitation secondaire ?

153voto

J'ai fait un commentaire suffisant ("Straight forward") lorsque cette question a été publiée à l'origine et je me suis retrouvé sur cette page quelques mois plus tard à la recherche de la même réponse.


Instructions claires et précises

Aujourd'hui, j'ai réussi à démarrer à partir de disques physiques. Cet exploit a nécessité ;

  • 60 minutes de lecture directe
  • 30 min pour écrire ceci
  • 20 min à essayer différentes options dans VirtualBox

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

Photos (c'est arrivé :)

grub 2

1. Créer des lecteurs vmdk qui lisent des lecteurs réels

Pour créer une image qui représente un disque dur physique entier (qui ne contiendra pas de données réelles, car elles seront toutes stockées sur le disque physique), sur un hôte Linux, utilisez la commande suivante

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

Vous devez avoir un accès en lecture au fichier du périphérique du 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 la commande suivante VBoxManage internalcommands createrawvmdk comme racine (mettre sudo avant la commande).

Sur un hôte Windows, au lieu de la spécification de périphérique ci-dessus, utilisez par exemple \\.\PhysicalDrive0 (voir la section "Enumération des lecteurs physiques dans Windows" ci-dessous). Sur un hôte Mac OS X, utilisez, par exemple, les commandes suivantes /dev/disk1 (et démonter toutes les partitions du disque 1).

(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. Assignez les lecteurs vmdk à une VM

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

assign

3. Définissez l'un des modes d'écriture.

Fichier -> Virtual Media Manager -> par exemple raw-0.vmdk -> [modifier] -> (o) Writethrough

  • répétez pour tous les lecteurs

set writethrough

3. Réorganiser la priorité de démarrage (semi optionnel)

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. Thèmes avancés

    • 9.9. Configuration avancée du stockage
      • 9.9.1. Utiliser un disque dur hôte brut à partir d'un invité
      • 9.9.1.1. Accès à l'ensemble du disque dur physique
         
  • Chapitre 5. Le stockage virtuel

    • 5.2. Fichiers d'image disque (VDI, VMDK, VHD, HDD)
    • 5.3. Le gestionnaire de médias virtuels
    • 5.4. Modes d'écriture d'images spéciales

Enumération des lecteurs physiques dans 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 des lecteurs avec PowerShell :

PS C:\ Get-Disk

15voto

trpt4him Points 1590

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 qui représente un disque dur physique entier (que ne contiendra pas de données réelles, puisque celles-ci seront toutes 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

Ceci crée l'image /path/to/file.vmdk (doit être absolue), et toutes les données seront lues et écrites depuis /dev/sda.

Pour créer une image spéciale pour le support des partitions brutes (qui contiendra une petite >quantité de données, comme déjà mentionné), 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 des partitions que votre hôte Linux. En conséquence Par conséquent, les numéros donnés dans l'exemple ci-dessus se réfèrent à la première partition primaire et au premier lecteur logique de la partition étendue. étendue, respectivement.

Consultez la documentation pour connaître les avertissements et les instructions spécifiques à Windows.

7voto

James Points 71

Je veux juste expliquer comment faire cela sous Windows 10.

  1. Obtenir l'ID du disque physique
  • Ouvrir powershell
  • Tapez 'Get-Disk'.
  • Cherchez votre disque (notez la valeur de la colonne numérotée).
  1. Effacer les attributs en lecture seule (crédits à : Korkman à l'adresse https://forums.virtualbox.org/viewtopic.php?f=6&t=38914#p175089 )
  • exécuter DISKPART (utilitaire en ligne de commande)
  • sélectionnez soigneusement le disque dur en utilisant SELECT DISK. la numérotation des disques commence à zéro. vous pouvez vérifier grossièrement votre sélection avec LIST PARTITION si vous savez à quoi vos partitions doivent ressembler ou LIST DISK pour voir la taille des disques.
  • Mettez le disque hors ligne en utilisant OFFLINE DISK. Tous les volumes disparaîtront de l'explorateur Windows.
  • ATTRIBUTS DISK CLEAR READONLY
  • vérifier avec ATTRIBUTES DISK
  1. Changer le compte de service de VirtualBox (crédits à Kapodamy : https://unix.stackexchange.com/questions/284704/verr-access-denied-when-trying-to-add-a-raw-disk-to-virtual-box )
  • Exécuter services.msc dans Exécuter
  • Recherchez le service de boîte virtuelle, changez le compte dans l'onglet Connexion en Administrateur.
  • Redémarrer le service
  1. Créer un disque VMDK
  • Ouvrez l'invite de commande en tant qu'administrateur
  • type " C:\Program Fichiers \Oracle\VirtualBox\VBoxManage "Commandes internes createrawvmdk -filename C:\VM\Kubernetes\linux.vmdk -rawdisk \\.\PHYSICALDRIVE2
  • type " C:\Program Fichiers \Oracle\VirtualBox\VBoxManage "modifyhd " C:\VM\Kubernetes\linux.vmdk "settype writethrough
  • type " C:\Program Fichiers \Oracle\VirtualBox\VBoxManage "storageattach Kubernetes --storagectl SATA --device 0 --port 0 --type hdd --medium " C:\VM\Kubernetes\linux.vmdk "
  1. Démarrez votre VM

5voto

John Rix Points 161

J'ai essayé de démarrer une VM Linux (spécifiquement Ubuntu 19.10) sur macOS où Ubuntu est installé sur une partition physique formatée ext4. La plupart des réponses que j'ai trouvées, y compris celle de @, m'ont permis de faire une grande partie du chemin, mais je continuais à obtenir le message d'erreur suivant :

FATAL : Aucun support de démarrage trouvé ! Le système s'est arrêté.

Une réponse faisait référence au démarrage dans un LiveCD puis à la modification de la configuration de Grub pour résoudre ce problème. Cependant, je n'ai même pas Grub installé sur mon Mac. Finalement, j'ai trouvé que la clé pour ma situation était de s'assurer que la VM avait accès à la partition EFI sur mon disque physique, et d'activer le support EFI dans les paramètres de la VM.

enter image description here

Voici la sortie de l'application diskutil list depuis ma 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

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

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

Maintenant je peux faire un double démarrage de MacOS ou Ubuntu, et quand je suis déjà dans MacOS, je peux démarrer Ubuntu comme une VM si nécessaire. C'est le bonheur !

4voto

Nathan Osman Points 2682

Je n'ai pas réussi à faire fonctionner ce système dans Windows 10 pendant longtemps ; je recevais toujours un message d'erreur. VERR_ACCESS_DENIED erreur lors de la tentative d'attacher le VMDK.

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

  1. Ouvrez PowerShell en tant qu'administrateur (je ne sais pas trop pourquoi, mais je n'ai pas réussi à faire fonctionner certaines commandes dans une invite de commande 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.vmdk es le fichier qui sera créé pour représenter le disque y [n] est le numéro du disque (utilisez Disk Management 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 connectez - "IDE" dans mon cas.

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

    VBoxManage.exe startvm [VM NAME]

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X