web-dev-qa-db-fra.com

Un hyperviseur tel que VirtualBox peut-il être utilisé pour lancer un système d’exploitation virtualisé qui est également directement amorçable?

Cette question est plutôt théorique:

Supposons que j'ai un PC avec deux systèmes d'exploitation différents sur deux partitions différentes: OS1 sur sda1 et OS2 sur sda2. Est-il possible en quelque sorte de configurer un programme tel que VMWare ou Virtualbox dans OS1, qui accède à sda2, le démarre et exécute OS2? D'autre part, OS2 devrait également pouvoir être démarré directement.

Je me rends compte que l'OS2 émulé serait beaucoup plus lent et que personne n'utiliserait vraiment cette configuration, mais je trouve cela très intéressant.

60
Wauzl

C'est possible , oui, et cela ne doit pas forcément être plus lent, car de nos jours ce n'est pas une émulation plus, c’est virtualisation - la plupart des processeurs prennent en charge la virtualisation assistée par matériel (VT-x et autres), mais même sans ceux-ci. , VirtualBox offre de nombreuses astuces pour accélérer le fonctionnement des machines virtuelles virtualisées par logiciel.

Dans tous les cas, cela ne sera pas plus lent que de démarrer une vieille machine à l'ordinateur. Cela pourrait même être plus rapide (en raison de l’utilisation d’une partition brute au lieu d’une image disque fragmentée).


Mais je ne suis pas tout à fait sûr de comment le faire dans VirtualBox - Je pense que vous devez créer un fichier spécial .vdi en utilisant vboxmanage qui pointe vers le réel cloison? De plus, je n'ai aucune idée de la façon de faire fonctionner le chargeur de démarrage dans une telle situation.

Bien que j’ai utilisé pour déboguer divers problèmes de démarrage sous Linux en exécutant une copie en lecture seule du système d’exploitation actuel en lui-même, à l’aide de qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio.

58
grawity

qemu vous permettra d'utiliser des périphériques en mode bloc tels que /dev/sda2, etc. comme disques durs virtuels. VMWare en fait de même. Pas sûr de Virtualbox.

Lorsque vous démarrez /dev/sda2 sur une machine virtuelle, cela aura un effet similaire à celui obtenu si vous aviez sorti un disque dur et l'aviez démarré sur un ordinateur différent avec un matériel différent. Si le système d'exploitation peut gérer cette modification, vous devriez alors pouvoir exécuter le système d'exploitation à la fois dans une machine VM et de manière native. Bien entendu, Windows vous posera des problèmes et Linux le tolérera probablement très bien.

Vous pouvez atténuer les problèmes potentiels en faisant correspondre le matériel virtuel autant que possible au matériel physique de votre système - bien que vous deviez bien entendu spécifier moins de RAM. Il est particulièrement important de spécifier le même type de contrôleur de disque (IDE, SCSI, etc.).

28
LawrenceC

C'est tout à fait possible, en fait, j'avais l'habitude de faire ça!

J'avais une partition/disque (j'oublie laquelle) avec Windows avec Linux, je pense que c'était à l'époque de Windows XP (certes, cela a duré un certain temps). C'était un bon moyen d'avoir accès aux deux ensembles de données sans utiliser une charge d'espace disque avec des installations différentes.

Le seul problème dont je me souvienne est que je devais configurer deux profils matériels différents dans XP. Il a vraiment été confus quand il a démarré avec les mauvais.

Je ne sais pas comment les processus d'activation actuels répondraient au changement de matériel. Cela pourrait bien causer quelques problèmes ... (mais si vous ne démarrez que Windows en tant que machine physique et que vous avez Linux en tant que VM/ou physique, cela résoudrait ce problème)

Si je me souviens bien, je l’ai fait avec la station de travail VMware. Cela prend définitivement en charge le démarrage à partir d'un disque brut. Je suis sûr que la version MS le fait. Je ne suis pas sûr des machines virtuelles Linux, mais je serais très surpris sinon.

19
Michael B

Fait intéressant, pour ceux qui exécutent VMware Fusion sur un Mac, avec une partition bootcamp Windows, il est possible de démarrer une machine virtuelle exécutée à partir de la partition bootcamp:

VMware Fusion vous permet de lancer une partition Boot Camp déjà installée sans affecter sa capacité à démarrer en mode natif. Cela vous donne la possibilité d'accéder à une partition Boot Camp depuis Mac OS au moyen de Fusion, en redémarrant et en lançant Windows directement.

Notez cependant:

Il se peut que vous soyez invité à réactiver Windows car un matériel différent est reconnu par le système d'exploitation.

Source: VMware - Lancement de votre partition Boot Camp dans VMware Fusion

8
magma

Je l'ai fait . C'est très utile, mais il y a quelques limitations et sa mise en place n'est pas triviale.

  • Le système d'exploitation natif ou virtuel doit être tolérant vis-à-vis du matériel sur lequel il s'exécute. La plupart des distributions Linux ne s’y intéressent pas et ne tournent que sur tout ce sur quoi vous l’amorcez tant que l’architecture du processeur correspond. Ce n'est pas si facile avec Windows. Vous pouvez également faire face à des problèmes d'activation/de licence.

  • Sous Windows, vous ne pouvez pas démarrer le système d'exploitation sur une machine virtuelle tant que sa partition est montée sur l'hôte. Ce n'est pas grave, car dans ce cas, vous voudriez probablement démarrer Linux sous Windows et Windows ne supporte pas les systèmes de fichiers ext de toute façon.

  • La configuration des chargeurs de démarrage est délicate. Vous avez besoin d'une configuration de démarrage distincte pour démarrer dans VM et pour démarrer en mode natif. J'ai utilisé Grub4DOS/NeoGrub comme chargeur de démarrage de la 1ère étape lors du démarrage natif, puis j'ai été capable de charger en chaîne le chargeur de démarrage Windows ou de démarrer dans Ubuntu. VM avait un petit disque (quelques Mo) monté avec une priorité plus élevée que le disque principal. Ce lecteur contenait GRUB2, installé manuellement, que j’utilisais pour démarrer Ubuntu dans VM.

  • Une configuration inhabituelle du chargeur de démarrage nécessite une mise à jour minutieuse. Par exemple, la mise à jour de GRUB lors de l'exécution native de Linux peut rompre votre chaîne d'amorçage. La mise à jour à l'intérieur de VM nécessite son installation manuelle sur la partition de démarrage.

7
gronostaj

Cela est possible assez facilement .. Si vous utilisez des disques durs séparés pour chaque installation!

Regardez par exemple ici: http://www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html - ou effectuez une recherche sur le site Web de VirtualBox (actuellement en panne) à la recherche de ces mots clés.

Je l'utilise pour pouvoir accéder à ma partition Linux lorsque je travaille sous Windows, comme Adobe ou d'autres choses qui ne fonctionneront pas sans heurts sous Wine ou la virtualisation de Windows sous Linux.

De plus, parce que j'accède souvent à ma tour à distance - et que tout mon disque dur Linux est chiffré, alors que mon disque dur Windows n'est pas et ne contient que des données non sensibles. Je lance donc Windows (l'entrée de Windows dans GRUB est présélectionnée), me connecte à Teamviewer, lance Virtualbox, puis mon disque dur Linux.

Dans cette direction - Windows -> Virtualbox -> autre disque dur avec Linux -> il est possible très simple, en raison de la détection matérielle supérieure, à la volée, que Linux, à savoir Ubuntu, prend en charge.

Dans l'autre sens, vous allez vous retrouver avec un gâchis. Windows ne ressemble pas toujours à un changement de matériel .. Il pourrait gâcher votre système, ne pas démarrer du tout, ou même s'il le faisait, peut-être que votre licence n'est plus valide parce que trop de modifications de matériel surviennent trop souvent.

Cela dit, vous voulez conserver Windows comme entrée de démarrage présélectionnée dans GRUB, mais veillez à bien sélectionner la bonne entrée dans GRUB lors de son exécution dans Virtualbox. Si vous rencontrez des problèmes avec des décalages à distance, augmentez votre délai de démarrage dans GRUB pour plus de sécurité.

J'espère que ça vous a aidé :)

0
Markus