web-dev-qa-db-fra.com

Ajouter une partition physique à la machine virtuelle QEMU / KVM dans virt-manager

J'ai suivi les instructions dans cette réponse à une question connexe: Ajouter un disque physique à KVM machine virtuelle

Le code résultant dans le fichier .xml pour le VM est le suivant:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/disk/by-partuuid/d8b63353-34n6-6587-ac07-810dmf36d544'/>
  <target dev='vdb' bus='virtio'/>
  <boot order='2'/>
  <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</disk>

Remarquez comment j'ai utilisé /dev/disk/by-partuuid/d8b63353-34n6-6587-ac07-810dmf36d544 pour l'élément <source> au lieu de /dev/sda4.

Ce qui me dérange, c’est que mon cas d’utilisation consiste à passer une partition à QEMU, au lieu d’un disque. J'y ai installé Windows 10, le programme d'installation ne reconnaissant pas le stockage, j'ai donc chargé le pilote viostor à partir de FedoraProject .

L'installation de Windows s'est bien déroulée et les performances sont étonnantes. Toutefois, lorsque la VM est désactivée, le système hôte ne reconnaît pas le format de la partition.

J'ai trouvé intéressant que l'installateur Windows - avec le pilote viostor chargé - crée le partitions supplémentaires normalement requises par Windows sur un disque vierge . En d'autres termes, il a créé des partitions à l'intérieur de ce qui est supposé être une partition . Cela ne devrait pas être possible, du moins le pensais-je.

/dev/sda4 est présent dans l'hôte, mais n'est reconnu ni comme système de fichiers NTFS (non prévu, en effet), ni LVM, ni LDM (testé avec ldmtool ).

Le VM démarre correctement en mode UEFI avec le chipset Q35 .

Question: Ma procédure pour ajouter une partition à virt-manager est-elle correcte ou doit-elle uniquement être effectuée pour les disques - et non pour les partitions? De plus, quel type de partition ou quel format ai-je trouvé?

5
Marc.2377

Il semble que la solution passe tout le périphérique de bloc , comme /dev/sda ou l’équivalent de /dev/disk/by-id/, au paramètre <source dev=''>.

Cela permet à l'installation de Windows de voir les partitions existantes, y compris la partition racine de l'hôte.

Il ne devrait y avoir aucun conflit, à condition que:

  • vous n'essayez pas de monter/modifier une partition dans l'invité déjà monté dans l'hôte; et

  • vous ne montez/modifiez pas la partition actuellement utilisée par l'invité de l'hôte, alors que la VM est sous tension.

En ce qui concerne le premier point, il est bien sûr nécessaire de démonter la ESP (partition système EFI) de l'hôte avant de lancer la machine virtuelle. J'ai d'abord écrit un script pour cela, puis j'ai proposé une meilleure solution sous la forme d'un hook d'automatisation QEMU. Je le mets à disposition à l'adresse https://gitlab.com/ranolfi/rvirtesp .

Ce qui est bien, c’est que vous pouvez également démarrer le système d’exploitation virtualisé de manière native, comme dans le cas d’un démarrage double, en sélectionnant sa nouvelle entrée dans le menu de démarrage de la carte mère.

Je ne suis pas vraiment sûr que cela soit "supporté". Mais je l'utilise depuis près d'un an maintenant, sans problème.

3
Marc.2377