Comment utiliser une vraie partition avec Windows 7 installé, dans une virtualbox vm?

37

Mon Ubuntu 12.04 est installé sur /dev/sda5 et Windows 7 sur /dev/sda1. Lorsque j'exécute Ubuntu, j'aimerais utiliser Virtualbox pour exécuter Windows 7 sur un ordinateur virtuel. La partition Windows 7 fait 1 To et est à moitié pleine, c'est-à-dire grande. Je ne souhaite donc pas la copier sur un disque dur virtuel.

J'ai lu qu'il est possible d'utiliser un vrai disque dur pour une machine virtuelle Virtualbox, mais les diverses instructions que j'ai trouvées diffèrent les unes des autres et je n'arrive pas à le faire fonctionner. Est-ce que quelqu'un connaît un moyen de le faire fonctionner dans Ubuntu 12.04 et Virtualbox 2.1.12_Ubuntu r77245 (le dernier Ubuntu a installé le dépôt)?

S'il vous plaît postez comment cela fonctionne pour vous car je veux réessayer toute méthode qui pourrait fonctionner.

le jazz
la source
Pourquoi votre partition MSWIN est-elle 1TiB? Bien que ce ne soit pas une solution complète: déplacez si possible tout ce qui n’est pas nécessaire (données ... fichiers multimédias?), Puis redimensionnez la partition, ce qui facilitera toute approche. Si vous souhaitez suivre la route de l'image, effacer puis réduire cette partition vous laissera suffisamment d'espace pour créer une image complète de la nouvelle partition, plus petite. :-)
Alastair

Réponses:

27

La commande que vous voulez est

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Cela créera un fichier de disque virtuel VMDK spécial (Win7.vmdk), qui est en réalité un pointeur sur la partition de disque hôte /dev/sda1.

En théorie, vous pouvez ensuite utiliser ce fichier comme fichier de disque pour une machine virtuelle à exécuter directement à partir de la partition de disque réelle, mais ...

  • (a) Je n'ai jamais essayé cela, alors je ne sais pas à quel point c'est fiable
  • (b) vous pouvez avoir des problèmes avec l'activation de Windows en fonction de votre clé de licence et du fait que Windows décide que le "matériel" détecté a considérablement changé
StarNamer
la source
Merci. Je n'ai même pas pensé au problème d'activation. C'est sûr de mettre un terme à mes plans.
Jazz le
1
En outre, même si cela fonctionne (ce dont je doute), vous risquez d’endommager gravement votre Windows lorsqu’il est lancé à partir du démarrage et de la machine virtuelle.
Takkat
@ ubnewbie2: J'essaierais probablement cela uniquement à titre d'expérience et / ou si vous utilisiez une sorte de clé de licence en volume et je le verrais probablement comme une opération à sens unique; c'est-à-dire que vous auriez plus de difficultés à essayer de l'inverser. En fait, j'utilise Windows 7 et utilise une machine virtuelle VirtualBox avec Ubuntu, souvent en mode plein écran, de sorte que le PC semble ne fonctionner que sous Linux et serait plus à l'aise pour exécuter Ubuntu à partir d'une partition de disque brute.
StarNamer
Pour votre information, j'ai maintenant essayé cela, en sens inverse. J'avais besoin de changer une machine sous Ubuntu sous Windows 7. J'ai donc libéré de l'espace en redimensionnant les partitions et en créant une nouvelle et j'ai installé Windows 7. Ceci a remplacé grub2 avec le chargeur de démarrage Windows. J'ai donc installé VirtualBox et créé une nouvelle VM, avec un disque virtuel minimal à réserver, qui utilise ensuite les partitions «brutes» existantes pour être exécuté. Cela fonctionne bien, bien qu’un peu lent en raison de la mémoire réduite et de la possibilité de ne voir qu’un seul cœur de processeur (au lieu de 4).
StarNamer
-partitions à la fin une liste des partitions que vous voulez voir "voir" (pas la partition que vous voulez utiliser) VBoxManage internalcommands --helpvous montrera d'autres choses que vous pouvez faire avec les commandes internes, ainsi que la signification des options.
boatcoder
16

Oui, vous pouvez le faire avec la createrawvmdkcommande interne , qui ne créera pas une image de disque complète, mais un pointeur sur le matériel réel.

Il y a deux façons de faire ça

  • A. Image disque complète (de / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. image de partition

    Comme @StarNamer l'a montré, vous ne pouvez utiliser qu'une ou plusieurs partitions.

    Pour créer l'image d'une seule partition (/ dev / sda1):

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Pour créer une table de partition personnalisée qui mappera / dev / sda2 et / dev / sda1 dans cet ordre:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

La différence la plus frappante sera que l'image de disque complète utilisera le chargeur de démarrage et la table de partition exactement comme ils se trouvent sur votre disque, donc en théorie (je ne l'avais auparavant que dans qemu), vous pourrez configurer le système d'exploitation à partir de votre machine virtuelle. Et de par mon expérience limitée, je peux dire que l’image de disque complète fonctionnera exactement de la même manière qemu -hda /dev/sdb.

Remarque: Si vous utilisez l' utilisateur pour accéder au disque, vous devez l' ajouter à disket vboxusersgroupes, par exemple

sudo usermod -aG disk,vboxusers ubuntu

puis assurez-vous de vous reconnecter ou de redémarrer votre ordinateur.

Lectures complémentaires:

JLarky
la source
msgstr "image disque complète utilisera le chargeur de démarrage et la table de partition exactement tels qu'ils se trouvent sur votre disque" - dans quel scénario, le premier (/ dev / sdb) ou le second (avec les partitions spécifiées)?
naught101
1
En outre, virtualbox doit être exécuté en tant que root, sinon vous obtenez Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101
3
"En outre, virtual-box doit être exécuté en tant que root". En fait non, vous devez être membre du groupe de disques. Bien plus sûr que d’exécuter virtual-box en tant que root.
2
Voici ce qui a fonctionné pour moi avec Ubuntu 16.04 en tant que système hôte et Windows 10 en tant qu’invité: j’ai créé le fichier .vmdk avec sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. De cette façon, j'ai inclus la partition Windows ainsi que la partition du chargeur de démarrage EFI. J'ai ensuite suivi les instructions de shilka sur virtualbox.org/ticket/7702 et ajouté cloverefiboot. Fonctionne comme un charme!
dzmanto
Vous pouvez également préfixer la commande VirutalBox (et VBoxManage) sudo -g diskpour ne donner que l'accès à virtualbox, mais pas à tous vos autres processus.
Jan Hudec le
0

Il existe une option de disque appelée "Immutable". En théorie, si vous sélectionnez cette option pour le lien entre vmdk et votre disque brut, la partition d'origine ne devrait pas être modifiée.

Pour ce faire, ouvrez «Virtual Media Manager» sous «Fichier», sélectionnez votre image, puis cliquez sur «Modifier» (vous devez vous assurer que cette image n'est attachée à aucun ordinateur, sinon vous obtiendrez une erreur). Vous pouvez maintenant définir le type de support sur "Immutable".

Je n'ai pas testé cela, cependant. Si quelqu'un le fait (bien sûr avec une configuration de test), il serait bon de faire rapport ici.

Y a-t-il des considérations qui vont à l'encontre de cette idée?

Esokrates
la source
0

Depuis plusieurs années, j'utilise Windows à double démarrage et Ubuntu. La partition Ubuntu démarre également dans Windows VirtualBox pour tirer parti des fonctionnalités de l'écran tactile que Linux n'a pas encore maîtrisées.

Je l'ai mis en place avec des instructions similaires à ci-dessous;

Les nouvelles machines peuvent simultanément gérer les deux systèmes d’exploitation mieux que les systèmes simples des anciennes machines.

Inconvénient: vous devez enregistrer les instructions que vous utilisez pour la configuration au cas où une mise à jour désactive la connexion VirtualBox (mon problème actuel).

Desprit
la source
0

Après de nombreux essais, je me suis retrouvé avec une solution nette et propre:

  1. Démarrez la partition Windows que vous souhaitez virtualiser
  2. Téléchargez l' utilitaire Disk2VHD de Sysinternals
  3. Si vous avez une partition UEFI , suivez ces instructions
  4. Créez une image VHD (pas VHD X ) de votre partition C:, de la récupération, de votre UEFI (le cas échéant) et de ce que vous voulez d'autre
  5. Revenez sous Linux, ouvrez VirtualBox et créez une machine virtuelle en fonction des spécifications de votre système d'exploitation Windows.
  6. Joignez à cette machine virtuelle le disque VHD créé au point 4
  7. C'est ça
  8. Profit

Dépannage en cas d'UEFI:

  1. Dans les paramètres de la machine virtuelle, dans VirtualBox, cochez l'option "Activer EFI" sous l'onglet Système.
  2. Si vous êtes bloqué sur le shell EFI, exécutez la commande suivante:

    fs0:\EFI\Boot\bkpbootx64.efi
    
Garlix
la source
Quelques commentaires sur le vote négatif?
Garlix
Je vois que cela s’est passé il ya quelques jours, mais je ne me souviens pas de vous avoir accordé des votes négatifs, du moins pas exprès. Je le retirerais volontiers, désolé.
userfuser
0

VirtualBox a beaucoup d'inconvénients. Je le quitte il y a quelques années. Maintenant, j'utilise qemu-kvm et, à côté d'une autre fonctionnalité, il peut être configuré pour utiliser le périphérique de disque de la même manière que l'image de disque. L'astuce consiste à configurer le "-drive virtuel si = sd, id = sda, format = raw, fichier = / dev / sda".

Mais! Avant d’essayer de le virtualiser, vous devez d’abord apporter des modifications lorsque vous exécutez le MSW sur le système «nu»: consultez le dossier «Pilotes» pour connaître les pilotes appropriés et l’arborescence «Registre» pour que ces pilotes soient activés et configurés de manière à être présents. exécuter avant le démarrage du système comme:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Vous devez rechercher un pilote approprié par rapport à la machine virtuelle si vous ne voulez pas voir le BSOD.

Il est difficile de dire quels pilotes activer. La meilleure méthode consiste à installer d'abord un système de test, puis à rechercher dans le registre la clé de registre correspondante avec "Démarrer" = dword: 00000000, puis à définir ces clés sur la machine nue. Il est également recommandé de vérifier l'adresse MAC sur le bare metal pour la mettre dans la configuration qemu. Vous pouvez empêcher le système de demander une nouvelle activation.

schweik
la source