web-dev-qa-db-fra.com

Une raison de NE PAS exécuter Linux dans un VM tout le temps?

Je suis passé à l'utilisation d'Arch Linux pour la plupart de mes tâches quotidiennes et je n'ai pas besoin de Windows pour autre chose que pour les jeux et les quelques applications qui ne sont pas portées sur Linux comme OneNote. Ma distribution Linux est hébergée dans VirtualBox avec Windows comme hôte, et j'aime bien de cette façon, les instantanés sont incroyablement utiles.

Supposons que je ne me soucie presque jamais de l'hôte Windows et que je passe 95% du temps chez l'invité, que manquerais-je?

Y a-t-il de sérieux inconvénients?

Les performances sont-elles gravement affectées et l'installation directement sur la machine rendra-t-elle ma vie beaucoup plus incroyable?

215
Alexandr Kurilin

En supposant que vous pouvez tout faire fonctionner et que vous ne voulez pas faire de tâches gourmandes en ressources telles que jouer à des jeux ou faire de grandes compilations, alors je pense que tout ira bien.

Vous rencontrerez probablement des problèmes de base:

  • heure de l'invité incorrecte
  • taille de l'écran invité ou profondeur de couleur incorrecte
  • impossible d'accéder aux périphériques USB (imprimantes, téléphones, etc.)

Pour résoudre ce problème, vous devez installer ajouts d'invité VirtualBox . Voir le Guide des invités de VirtualBox Arch Linux pour plus de détails.

Pour obtenir des fonctionnalités supplémentaires, telles que la prise en charge USB 2.0 et Intel PXE, vous pouvez également installer le pack d'extension VirtualBox .

Après cela, vous devez connaître quelques problèmes:

Évidemment, votre Linux VM sera affecté si votre système Windows se bloque également. Des problèmes que j'ai rencontrés récemment:

  • L'hôte Windows se bloque en raison d'un bogue du pilote (écran bleu)
  • Windows Host redémarre en raison d'une mise à jour de sécurité

Lors de l'exécution d'une machine virtuelle les performances les plus importantes concerneront les E/S de votre disque . Si possible, placez votre VM sur un disque séparé et/ou tilisez un disque SSD . Utilisation d'un lecteur SATA virtuel au lieu d'un lecteur virtuel IDE peut également vous aider.

151
Mikel

J'enseigne un cours pratique sur Linux, et malheureusement, selon la politique de l'entreprise, je ne suis pas autorisé à reformater les ordinateurs portables fournis par la classe, nous allons donc par l'approche d'invité VirtualBox.

Ignorant tous les problèmes de performances, voici quelques notes/problèmes que j'ai remarqués:

1) Mode ponté et sans fil

Certaines cartes sans fil ont apparemment des difficultés à avoir une "double identité", ce qui signifie que nos leçons de routage/pare-feu/réseau vont au diable. C'est un problème connu - la plupart des pilotes sans fil ne prennent pas en charge le pontage.

bridge | The Linux Foundation - Cela ne fonctionne pas avec ma carte sans fil!

Cela signifie que si vous utilisez une interface sans fil, vous devez faire un travail supplémentaire pour que l'invité ait une IP "publique".

2) Intégration au bureau

Sauf pour quelques wallbangers dans la conception, les environnements de bureau modernes sont assez bien pensés et offrent certaines commodités qui sont perdues lorsqu'ils n'ont pas un accès complet à l'entrée/sortie ou à l'outil de connexion/déconnexion d'appareil. Par exemple, le menu Vbox en bas devient vraiment ennuyeux si vous avez un sélecteur de fenêtre ou des notifications. Et certaines machines utilisent le raccourci Ctrl + Alt + curseur_s touches (changement d'espace de travail) pour inverser l'affichage.

Je veux dire, comparez à quel point il est facile de déconnecter un périphérique USB dans GNOME, par rapport au nombre équivalent de sous-menus/clics dans Windows, et je sais lequel je préférerais un jour.

3) USB "voler"

Parfois, Windows ne veut tout simplement pas lâcher un lecteur USB - dire à virtualbox de le connecter ne fonctionne pas toujours - très probablement lorsque Windows lit le contenu pour une raison ou une autre. Et puis il y a certains lecteurs USB qui ne sont pas des périphériques de stockage simples, mais effectuez une action de type commutateur pour rendre vos lecteurs accessibles - ceux-ci sont ennuyeux à attacher à la machine Linux.

4) stabilité

Il est généralement plus facile de "casser" Windows que Linux, c'est pourquoi vous voulez généralement que Linux "protège" les instances Windows, plutôt que l'inverse. J'ai déjà perdu quelques jours de travail avec le personnel écrasant les mauvais fichiers et finissant par casser à la fois notre installation de Virtualbox et nos images Linux.

5) Outils de ligne de commande

Sur Linux au moins, vous avez la possibilité de contourner les images de disque Vbox en utilisant qemu-nbd et le périphérique de bloc réseau.

QEMU/Images - Wikibooks, livres ouverts pour un monde ouvert - Montage d'une image sur l'hôte

Cela vous permet de consulter et de modifier le contenu du disque du système d'exploitation invité sans avoir à le démarrer, par exemple, si vous l'avez rendu non amorçable.

Vous pouvez également faire des choses comme l'écriture de scripts de sauvegarde des VDI - ou simplement leur contenu, ou changer les "profils" de VirtualBox via des liens symboliques - beaucoup plus facile sur bash.

77
madumlao

N'oubliez pas qu'un VM est une émulation. Votre système Unix ne sera jamais aussi puissant dans un VM qu'installé. Archlinux est fait pour s'adapter à vos goûts) , c'est une distribution que vous pouvez personnaliser au maximum.
Je le faisais fonctionner sur une machine virtuelle, même si je pensais à l'installer définitivement sur mon ordinateur. Maintenant, mon système démarre en 15 secondes environ, mes versions sont plus rapides et tout fonctionne mieux.
Archlinux n'est pas si grand, vous pouvez l'installer sur une petite partition (assurez-vous simplement d'avoir suffisamment d'espace pour vos programmes sur votre partition racine (j'ai dû reformater ma partition racine car elle était trop petite)). Si vous utilisez Windows uniquement pour jouer, vous devriez considérer cette option =)

PS: Oui, l'installation directement sur votre ordinateur vous rendra la vie incroyable. : P

27
Depado

Il existe trois façons de configurer les deux systèmes d'exploitation:

  1. Hôte Windows, Linux VM (tel que vous l'avez).

  2. Hôte Linux, machine virtuelle Windows.

  3. Double démarrage.

Si vous voulez exécuter des jeux Windows, je pas recommande l'option 2.

Si vous souhaitez régulièrement utiliser un programme Windows uniquement (qui ne fonctionne pas bien sous Wine) pendant votre session Linux, l'option 3 ne fonctionnera pas bien pour vous.

Si vous utilisez des éléments Windows non liés au jeu si rarement que le redémarrage n'est pas une corvée, l'option 3 est la plus efficace.

La question est donc la suivante: votre configuration actuelle vous ennuie-t-elle? Ou est-ce assez bon? Le vieux véritable inconvénient auquel je peux penser est le temps de démarrage prolongé et la disponibilité de mémoire inférieure.

BTW, il est possible de mettre en place un système à double démarrage où vous pouvez également démarrer la même installation Linux dans un VM sous Windows, mais pas l'inverse (Linux détecte le matériel au démarrage, mais Windows a ses pilotes codés en dur, une fois installés).

Si vous voulez une configuration à double démarrage avant d’acheter, essayez le programme d’installation Ubuntu "wubi". (Oui, je sais que vous êtes un gars Arch, mais vous l'essayez, non?) Wubi installe les disques en tant que fichier image dans Windows, tout comme une machine virtuelle, mais il le démarre en tant que système d'exploitation hôte. Il n'y a aucune ingérence de partition, et vous pouvez la désinstaller directement à partir du Panneau de configuration de Windows, lorsque vous avez terminé. Le seul inconvénient est que les performances d'E/S disque sont légèrement réduites.

24
ams

Si vous utilisez cette boîte principalement via SSH, il y a de fortes chances que vous soyez dans la zone de beurre où cela n'a pas vraiment d'importance, que ce soit un VM ou sur du vrai matériel. De nombreux problèmes mentionnés dans d'autres réponses surviennent lorsque vous essayez d'utiliser le système d'exploitation invité comme bureau GUI. Les serveurs Linux sont très satisfaits des machines virtuelles; une partie énorme du marché de l'hébergement Web est Linux dans les machines virtuelles.

J'ai rencontré quelques cas où j'ai été obligé d'exécuter un serveur Linux sur du matériel réel, plutôt que sur une machine virtuelle:

Accès réel au matériel

Parfois, vous devez utiliser une carte PCI que le système VM ne peut pas virtualiser. Disons, un décodeur MPEG-2 à 4 canaux . Certains systèmes VM peuvent donner la propriété exclusive de la carte à la machine virtuelle, comme via technologie VT-d d'Intel , mais cela n'est pas sans poser de problèmes:

  • Il y a un coup de vitesse. Cela pourrait être important.

  • Tous les systèmes VM ne peuvent pas le faire, et vous n’avez peut-être pas la liberté de passer à un système qui le peut.

  • Il peut y avoir des conséquences inessentielles, comme avec VMware ESXi 5, où donner la propriété VM d'une carte nécessite de redémarrer l'hôte, puis l'empêche de faire des instantanés de cette machine virtuelle. (Par inessentiel, je veux dire que ces problèmes pourraient être résolus, cela prend juste du temps de développement.)

Grand stockage

Votre système VM peut ne pas être en mesure de créer un disque virtuel aussi volumineux que le matériel nu le permet pour de vrais disques. VMware ESXi 5, par exemple, a une limite de taille de volume virtuel de 2 TB. Si vous avez besoin d'un volume unique plus grand à l'intérieur de la machine virtuelle, vous devez sauter à travers des cercles pour contourner la limitation:

  • Vous pouvez pousser un contrôleur RAID jusqu'à VM avec VT-d, mais encore une fois, il a des problèmes.

  • Vous pouvez pousser un passel de 2 TB volumes virtuels vers le VM et les enchaîner avec LVM , mais vous avez vous avez également acheté un tas de problèmes.

    D'une part, lorsque (!) L'un des disques physiques meurt, si vous utilisez le système d'exploitation invité sur du matériel nu, vous pouvez le diagnostiquer et le réparer en utilisant le logiciel de gestion fourni, tel que 3DM de 3Ware ou tw_cli Logiciel. Mais essayez de trouver des versions qui s'exécuteront sur un hôte VMware ESXi 5.0! Vous êtes maintenant obligé de redémarrer pour pouvoir utiliser l'interface de gestion du BIOS.

    D'autre part, la couche d'abstraction a déconnecté les volumes virtuels des volumes physiques, de sorte que la couche logicielle RAID/LVM dans le système d'exploitation invité ne peut pas gérer les disques efficacement. Cette couche peut penser qu'il s'agit d'une écriture intelligente sur les disques d'une manière alternée, mais comme ils partagent probablement certains des mêmes disques physiques, les performances seront affectées car certains disques reçoivent des écritures consécutives.

  • Vous pouvez créer le volume sur un vrai système matériel et l'exporter vers VM via NFS, mais il y a aussi un coup de vitesse lorsque vous faites cela.

Vous pourrez peut-être contrebalancer certains des éléments ci-dessus avec des avantages de virtualisation, tels que la possibilité de suspendre une machine virtuelle, de la déplacer vers un autre hôte et de la redémarrer de manière transparente.

18
Warren Young

Quel environnement graphique utilisez-vous sous Linux? La plupart des environnements de bureau modernes (GNOME, KDE, Unity) s'orientent vers la nécessité de prendre en charge l'accélération matérielle 3D pour fonctionner correctement. La prise en charge de l'accélération matérielle des graphiques à l'intérieur des machines virtuelles est actuellement une technologie relativement immature. VirtualBox a un support expérimental .

14
jmtd

Fondamentalement, tout fonctionnera bien, d'Internet à l'installation de packages, également pour l'initialisation du matériel, mais vous paierez le prix de toute panne de la machine Windows.

11
WAEL

J'utilise une configuration similaire, et je la trouve incroyablement utile simplement parce que je peux copier et déplacer mon travail Linux VM entre les machines.

Je n'ai trouvé que deux inconvénients importants à l'utilisation d'une machine virtuelle.

  1. Si l'hôte utilise une connexion réseau sans fil, un VPN est très peu fiable dans l'invité
  2. Les configurations multi-écrans aspirent généralement une machine virtuelle.

Le point numéro 2 peut être efficacement surmonté en utilisant VMWare et Unity - Unity étant une fonctionnalité VMWare qui exécute des applications dans des fenêtres sur le bureau de l'hôte (à ne pas confondre avec Ubuntu Unity).

8
Phyxx

Une chose que vous voudrez peut-être considérer est de vous assurer que votre matériel a été testé avec la distribution Linux que vous utilisez. J'ai rencontré le problème qu'une distribution que j'utilisais fonctionnait parfaitement bien dans une machine virtuelle, mais était horriblement instable en natif, en raison d'une carte graphique qui n'a pas été entièrement testée avec la distribution. Fedora, par exemple, a une liste de matériel qui a été entièrement testé. Le fait est qu'aucune distribution Linux ne sera stable à 100% avec un matériel de pointe avec de nouveaux pilotes buggés. J'ai essayé de faire ce que vous avez fait mais j'ai fini par supprimer ma partition Linux après que plusieurs distributions ne soient pas assez stables pour moi. À mon avis, à moins que vous ne fassiez quelque chose qui nécessite une accélération matérielle, il n'est absolument pas nécessaire d'exécuter Linux de manière native.

8
ctilley79

Ma consommation d'énergie augmente considérablement chaque fois que je démarre VirtualBox.

Dans mon cas, j'exécute Linux en tant qu'hôte et invité, et je ne sais pas si le système d'exploitation hôte/invité fait une différence, ou si cela est inhérent à VirtualBox ou à la technique de virtualisation.

En utilisant powertop je peux voir que le processus "VBoxHeadless" est souvent le plus grand consommateur d'énergie sur mon système.

S'il s'agit d'un système de bureau, cela n'a peut-être pas d'importance pour vous, mais sur mon ordinateur portable, je veux désactiver VirtualBox chaque fois que je n'ai pas besoin du système invité.

7
user50849

Si vous n'utilisez pas de machines virtuelles à des fins spéciales (par exemple, besoin de cloner des machines virtuelles; copier/déplacer entre les serveurs; avoir plusieurs environnements de test différents; etc.), je suggère d'installer linux comme système d'exploitation principal pour vos 95% des activités, et puis installez Windows en tant que VM à partir de Linux pour votre activité de 5% des activités Windows. (À moins que votre activité de 5% de Windows soit extrêmement gourmande en CPU/mémoire; comme utiliser Photoshop ou l'édition vidéo.) Si vous avez un Linux comme système d'exploitation principal, il aura un accès complet à toute votre mémoire et à tous vos cœurs de processeur. Cependant, s'il est dans un VM vous ne pouvez affecter qu'une petite fraction de la mémoire CPU cœurs; généralement, au mieux la moitié des ressources de la machine peut être affectée à une machine virtuelle. Donc, si vous avez une machine quadricœur avec 8 Go de RAM, mais seulement 1 cœur et 2 Go affectés à votre machine virtuelle, les performances dans le = VM pour 95% des choses en souffrira considérablement.

Utiliser un VM sera plus lent. Pour la plupart des choses, la virtualisation de nos jours est très bonne et la différence ne sera pas perceptible (à part la baisse notable des CPU/RAM disponibles sur la VM); cependant si vous avez besoin d'une accélération matérielle sophistiquée (par exemple, pour les graphiques) votre VM peut ne pas se traduire correctement sur votre carte; vous pouvez donc remarquer que le rendu vidéo/3D souffre considérablement au sein de la VM.

6
dr jimbob

Je peux vous dire que, d'après mon expérience, la configuration contraire est meilleure. Je veux dire hôte avec Linux et l'invité avec Windows. Ceci en raison des performances et de la stabilité. En ce moment, je travaille au bureau avec un hôte Windows et un invité Linux (j'ai besoin des deux), mais dans mon ordinateur portable personnel, j'ai hôte avec Linux et invité avec Windows. Et les performances sont meilleures sur mon ordinateur portable. Même lorsque mon ordinateur portable personnel a moins de ressources.

Quoi qu'il en soit, je ne vois aucun problème (sans solution de contournement) dans votre configuration. c'est juste une question de goût.

5
PCJ

J'exécute Ubuntu dans une machine virtuelle VirtualBox, et je pense que le seul problème que j'ai rencontré est que le transfert d'accélération OpenGL vers l'hôte est compliqué.

4
Alan B

J'ai commencé à faire ce que vous faites, * nix dans une machine virtuelle. C'est génial pour l'essayer, mais je suggère de le retourner. Windows peut fonctionner étonnamment bien dans une machine virtuelle. Si vous utilisez principalement Linux, alors pourquoi ne pas faire en sorte que le système hôte utilise Linux?

Avantages:

  1. Plus de contrôle sur les problèmes de l'hôte (c.-à-d. Plantages/redémarrages automatiques moins probables avec Linux)
  2. Linux utilise moins de ressources que Windows lorsqu'il est inactif (ressources que vous pourriez à la place allouer à une machine virtuelle)
  3. Virtualbox, à mon avis, fonctionne mieux sous Linux. Je l'ai essayé dans les deux sens.
  4. Facile à configurer, une vitesse impressionnante augmente sur une machine virtuelle sous Linux. J'utilise le RAID logiciel sur 2 disques durs grand public pour créer un Windows XP VM boot sur firefox en 8 secondes à plat)

Les inconvénients:

  1. Problèmes de pilote possibles lors de l'exécution de Linux en tant qu'hôte
  2. L'accélération 3D peut être difficile à démarrer sous Linux
  3. Si vous utilisez Windows pour jouer à des jeux, une machine virtuelle peut ne pas être assez rapide
3
Earlz

Il n'y a absolument aucune raison de ne pas le faire, tant que tout ce que vous voulez faire dans l'hôte et le client fonctionne comme vous le souhaitez.

J'ai utilisé cette configuration sur mon Sony PCG-Z505 avec VMware du début 2000 jusqu'à la mi-2003. Hôte: Windows 98 et client SuSE Linux. La principale raison de cette configuration était que je pouvais utiliser le serveur imap sous Linux à partir de l'hôte Outlook Express tout en étant mobile (je l'avais déjà sur ma machine de bureau Linux avec Win98 sous Linux). Le client Linux ferait également du filtrage du spam, etc. sous Linux. Je pouvais également me connecter aux serveurs au travail en utilisant un ssh dans un environnement plus familier.

L'hôte VM bien protégé Linux contre les problèmes matériels. IIRC il y avait quelques problèmes avec le sans fil, mais la plupart du temps j'étais sur une connexion filaire à la maison ou au bureau. Sinon j'aurais Outlook Express ramasse le courrier et le pousse vers le serveur imap, perdant temporairement le filtrage du courrier indésirable alors qu'il est uniquement sur le sans fil.

Je ne pouvais pas exécuter cela dans l'autre sens (comme je le faisais sur mon bureau auparavant), car je fonctionnais normalement sous Linux sans graphiques, sinon les choses ne rentreraient pas en mémoire. Avec Linux en tant qu'hôte, j'aurais dû l'exécuter également en mode graphique tout le temps, laissant trop peu de mémoire sous Windows 98 pour exécuter Word sans permuter.

2
Anthon

J'utilise également cette config (invité Ubuntu sous Windows).

Pro:

  • Aucune modification des fenêtres initiales, le service informatique de mon entreprise prendra en charge tout problème/plantage lié aux fenêtres.

Con:

  • Démarrage lent: il faut démarrer Windows, puis démarrer la machine virtuelle.
  • Pas de pont sans fil.
1
Florian

J'ajoute une note aux réponses déjà existantes (et excellentes): il est également possible d'exécuter Linux et Windows côte à côte.

Le projet Linux coopératif vise à cela:

Cooperative Linux est la première méthode gratuite et open source pour exécuter Linux de manière optimale sur Microsoft Windows en mode natif. Plus généralement, Cooperative Linux (abrégé coLinux) est un port du noyau Linux qui lui permet de fonctionner en coopération avec un autre système d'exploitation sur une seule machine.

et il y a même des distributions Linux qui tournent dessus: TopologiLinux et andLinux .

Malheureusement, il semble que ces projets aient été abandonnés; la dernière version de coLinux a 3 ans et la dernière version des deux distributions a 8 ans.

1
dr01