53 votes

Windows 10 dans KVM : changer le disque de démarrage pour Virtio

J'ai installé une machine virtuelle Windows 10 en utilisant un disque IDE et j'aimerais maintenant changer le disque pour utiliser le pilote Virtio.

Pour les autres versions de Windows, l'approche décrite dans cette question semble suffisante. Comment migrer une VM IDE vers une VM virtio ?

Cependant, avec Windows 10, cela conduit à un INACCESSIBLE_BOOT_DEVICE question.

Je sais que l'approche préférée est d'utiliser le périphérique Virtio dès le départ et d'installer le pilote Virtio approprié lorsqu'on vous le demande. Malheureusement, j'ai eu des problèmes avec le changement de CD dans KVM (je n'arrivais pas non plus à faire fonctionner 2 périphériques CDROM).

Existe-t-il un moyen de corriger ce problème sans réinstallation ?

Problème similaire ici - https://me.m01.eu/blog/2015/03/Windows-10-kvm-and-iscsi/#comment-36090

51voto

llegolas Points 511

Toutes les réponses sont correctes, mais il se peut que vous deviez effectuer quelques opérations. supplémentaires après avoir installé les pilotes virtio. Voici les étapes que j'ai suivies :

  1. Ouvrez une invite de commande élevée et configurez la VM pour qu'elle démarre en mode sans échec en tapant

    bcdedit /set {current} safeboot minimal

  2. arrêtez la VM et changez le type de périphérique de démarrage en virtio.

  3. démarrer la VM. Elle entrera en mode sans échec.

    Note : En mode sans échec, tous les pilotes de démarrage seront activés et chargés, y compris le pilote virtio. Puisqu'il y a maintenant un miniport installé pour l'utiliser, le noyau l'inclura dans les pilotes qui doivent être chargés au démarrage et ne le désactivera pas à nouveau.

  4. dans la VM démarrée, réinitialiser les paramètres de bcdedit pour permettre à la machine de démarrer en mode normal en tapant (à nouveau dans l'invite de commande élevée) :

    bcdedit /deletevalue {current} safeboot

  5. Fait.

36voto

JPvRiel Points 1351

Une juste une réponse simple est fournie - et peut fonctionner dans de nombreux cas, ainsi que des indications sur d'autres options. Si (comme moi) vous n'êtes pas en mesure de passer à l'IDE et que vous êtes obligé d'utiliser VirtIO, l'approche alternative suivante peut fonctionner :

  1. Ajouter l'ISO du pilote virtio à la VM.
    • Il s'agit d'une obligation : Le pilote ISO le plus récent peut être extrait des RPM qui se trouvent à l'adresse suivante https://fedorapeople.org/groups/virt/virtio-win/repo/latest/
    • Suggéré : Ajoutez également le DVD/CD ISO de Windows 10 et démarrez à partir de celui-ci si vous n'avez pas accès à la réparation du démarrage ou si vous ne parvenez pas à charger le pilote et à rendre le volume du système d'exploitation Windows 10 disponible.
  2. Utilisez Troubleshoot -> Advanced Options -> Command Prompt (Dépannage -> Options avancées -> Invite de commande) soit à partir d'un menu de récupération en cas d'échec du démarrage, soit à partir d'un DVD/CD Windows 10 et accédez à une invite de commande à partir de l'option du mode de réparation.
  3. Identifiez vos mappages de pilotes via wmic logicaldisk get deviceid, volumename, description
    • Dans mon cas, l'ISO d'installation de virtio-win (disque CD-ROM) a été assigné à E: Votre cas est différent !
  4. Charger le pilote via l'interface de programmation, par exemple drvload g:\viostor\w10\amd64\viostor.inf .
    • Après avoir chargé le pilote, exécutez wmic logicaldisk get deviceid, volumename, description encore une fois.
    • F: est l'endroit où l'installation de Windows a été montée dans mon cas. Votre cas peut varier !
  5. Utilisez la commande DISM pour injecter le pilote du contrôleur de stockage
    • Par exemple dism /image:f:\ /add-driver /driver:e:\viostor\w10\amd64\viostor.inf
    • Comme ci-dessus, modifiez l'affectation des lettres de lecteur en fonction de votre environnement.

Évite de devoir bricoler des CD/Images de démarrage Windows spéciaux et "corrige" l'image d'installation Windows à la volée.

A noter également :

  • Bien qu'il soit possible d'utiliser la réparation du démarrage, j'ai eu un jour des problèmes avec le programme drvload suggérant qu'un redémarrage était nécessaire. Il ne semblait pas charger le volume du système d'exploitation Windows 10 et un redémarrage était inutile puisque j'étais bloqué à l'écran de réparation du démarrage et que je devais à nouveau charger le pilote.
  • Une fois, avec une instance hybride de Windows 10 que je peux démarrer sur bare metal, ou dans qemu/libvirt (en utilisant le stockage brut et virtio), j'ai mis à jour pendant que je fonctionnais sur bare metal et cela a gâché mes pilotes virtio lorsque j'ai démarré virtuellement par la suite. Réparation au démarrage et dism dans ce cas, a fonctionné sans avoir besoin du DVD d'installation de Windows 10.
  • Si vous démarrez à partir du DVD/ISO d'installation de Windows, veillez à éviter l'empressement du DVD de Windows 10 à tout restaurer ou réinstaller...

Crédit pour l'approche DISM : Utilisation de dism pour ajouter des pilotes

11voto

harrymc Points 394411

Les étapes à suivre en général sont les suivantes :

  1. Installer les pilotes VirtIO dans la VM
  2. Configurer le disque système de la VM pour qu'il utilise VirtIO
  3. Si la VM ne démarre pas, exécutez Startup Repair ou même Repair Install.

En procédure en détail est :

  1. Remettre le disque de démarrage en IDE.
  2. Assurez-vous que la VM Windows est arrêtée.
  3. Télécharger l'ISO des pilotes VirtIO à partir de aquí .
  4. Montez-le sur le lecteur de CD de la VM.
  5. Ajouter un périphérique de stockage de type VirtIO. La taille allouée n'a pas d'importance puisque vous l'utilisez pour installer les pilotes.
  6. Démarrer la VM Windows. Elle essaiera d'installer les pilotes. Si ce n'est pas le cas, ouvrez le Gestionnaire de périphériques et vous devriez voir le périphérique SCSI listé avec l'icône du point d'exclamation à côté. Vous pouvez choisir de mettre à jour le pilote et de pointer vers le répertoire approprié de l'ISO montée. Une fois le pilote installé, ne redémarrez pas la machine, mais arrêtez-la.
  7. Dans les paramètres de virt-manager pour Windows, changez le type de stockage de IDE à VirtIO.
  8. Vous pouvez supprimer le périphérique de stockage que vous avez créé précédemment. Il n'est plus nécessaire.
  9. Démarrez Windows, il devrait démarrer et installer les pilotes SCSI. Vous devrez ensuite redémarrer.
  10. Si la VM ne démarre pas mais que les pilotes sont installés, vous pouvez essayer de faire :

    1. Réparation du démarrage qui peut résoudre certains problèmes de système susceptibles d'empêcher le démarrage de Windows.
    2. La dernière solution : Réparer Installer lors du démarrage à partir de la version ISO de Windows 10. Cela permet de conserver toutes les applications et tous les paramètres utilisateur, il suffit d'actualiser Windows et de démarrer. Utilisez une version ISO récente de Windows 10.

Si la dernière étape est malheureusement nécessaire, une autre difficulté peut se présenter difficulté est que le CD de démarrage de Windows ne peut pas comprendre le disque VirtIO parce que ces parce que ces pilotes n'ont pas été inclus par Microsoft. Dans ce cas, il faut créer un CD/USB de démarrage personnalisé qui contient ces pilotes. ces pilotes, mais assurez-vous que vous démarrez à partir d'un ISO Windows qui est du même niveau que l'installation en obtenant la dernière version (actuellement 1511).

Voici quelques tutoriels sur la manière d'intégrer les pilotes dans Windows :

8voto

sdhd Points 81

La réponse de harrymc me convient parfaitement.

les étapes suivantes que j'ai suivies :

  1. Installer le pilote virtio dans Windows
  2. Ajouter un disque virtio "factice" supplémentaire. Redémarrez et vérifiez si le disque "factice" fonctionne.
  3. Si l'étape 2 fonctionne, changer le disque de démarrage pour virtio.
  4. Reboot
  5. Supprimer le disque virtio "factice" supplémentaire
  6. ...

7voto

Scott Petrack Points 199

Il est malheureusement possible d'avoir un pilote parfaitement installé et d'obtenir malgré tout un "périphérique de démarrage inaccessible". La raison est un peu choquante (je trouve) : une installation Win 10 "se souvient" des pilotes qui étaient nécessaires lors de la première installation, et par défaut NE CHARGERA PAS d'autres pilotes de stockage au moment du démarrage. Il semble que cela soit dû au "piratage" : il est ainsi difficile d'exécuter la "même" installation sur du matériel différent. Il existe une excellente documentation sur cette "fonctionnalité" dans ce post des forums gentoo. L'essentiel est le suivant :

Les pilotes visés par l'interdiction de chargement au démarrage peuvent être déterminés comme suit : Dans la clé de registre Ordinateur \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services il y a une sous-clé pour chaque pilote connu de l'installation. Le nom de cette sous-clé est simplement le nom du pilote. Dans chaque sous-clé de pilote, il y aura une sous-clé "STARTOVERRIDE" si ce pilote doit être empêché de se charger au démarrage. En particulier, la sous-clé STARTOVERRIDE contient un paramètre dont le nom est "0". Si la valeur de ce paramètre est "3", le pilote ne sera pas chargé au démarrage. En définissant cette valeur à 0, vous annulez ce comportement.

Pour ma part, je me contente d'aller sur Computer \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services et rechercher "STARTOVERRIDE". Chaque fois que je le trouve, s'il y a un nom en dessous appelé "0" avec la valeur "3", je le change en "0". Cela semble exagéré, car il suffit de modifier le lecteur qui doit être chargé. Dans mon cas, il y en a plusieurs, et je ne me souviens jamais lesquels, alors je fais une "recherche F3" dans la section "services".

Et un dernier conseil qui n'est pas nécessaire pour le stockage virtio actuel, signé, mais qui pourrait l'être pour quelqu'un d'autre lisant ceci s'il veut utiliser un pilote plus expérimental qui n'est pas (encore) signé : J'ai découvert que MÊME après avoir fait l'astuce ci-dessus, je devais AUSSI démarrer dans l'écran des options avancées et choisir F7 ("désactiver la vérification de la signature du pilote"). Malheureusement, il ne suffisait pas d'activer le drapeau bcd pour désactiver la vérification du pilote, car le pilote doit être chargé avant que la machine ne lise le BCD et ne découvre qu'elle n'a pas besoin de vérifier la signature.

En somme, ce n'est pas l'heure la plus brillante de Microsoft. Il faut vraiment détester ses utilisateurs pour préférer donner aux utilisateurs légitimes un écran bleu artificiel plutôt que de leur permettre de remplacer un disque SATA par un disque NVMe et de faire en sorte que cela "fonctionne".

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