Essayer d'exécuter Hyper-v 2016 depuis USB


10

J'ai essayé de tester Hyper-v 2016 cet après-midi, mais je ne parviens pas à démarrer mon R630 à partir de l'USB que j'ai configuré à l'aide des instructions suivantes https://technet.microsoft.com/library/ee731893(ws.10).aspx

J'ai utilisé exactement le même guide sur Hyper-v 2012 R2 sans aucun problème.

Quelqu'un a-t-il de la chance avec ça?


1
Windows Server 2016 n'est pas Windows Server 2008 R2, Windows Server 2012 ou Windows Server 2012 R2. Qu'est-ce qui vous fait penser que cela devrait / pourrait fonctionner? Je ne trouve aucune documentation MS pour suggérer que c'est possible.
joeqwerty

3
en raison de microsoft a des retards dans la mise à jour de la documentation en pensant à tous les problèmes avec le système lui-même, il est difficile de garder tous les documents en ligne à jour, il y aura juste du temps ....... il n'y a aucune raison pour que cela ne fonctionne pas comme que ......
Michal

Réponses:


8

J'ai trouvé les informations sur le déploiement de Windows Server 2016 TP3 sur une carte SD.

https://www.danielstechblog.info/how-to-deploy-windows-server-2016-tp3-onto-an-sd-card/

Cette rubrique décrit le déploiement de Windows Server sur la carte SD, mais il s'agissait de TP3. Je suppose que vous pouvez effectuer les mêmes actions avec la version finale.

Vous pouvez également prendre en compte le DOM SATA.

https://www.supermicro.com/products/nfo/SATADOM.cfm

C'est une option bon marché et de petite taille pour vous. Vous pouvez y déployer n'importe quel système d'exploitation. C'est donc aussi une option.


3

J'ai rencontré ce problème récemment et après plusieurs jours de débogage, j'ai découvert le problème et l'ai résolu.

Roulement de tambour s'il vous plaît:

Après avoir installé Hyper-V Server 2016, utilisez un outil hors ligne (comme, par exemple, Windows PE) pour monter la ruche SYSTEM de la nouvelle installation et modifiez le DWORD ControlSet001 \ Control \ BootDriverFlags de 0x04 à 0x1c. (Vous devriez probablement changer la version de ControlSet002 également pour faire bonne mesure, et vous pouvez intégrer les modifications dans votre install.wim pour éviter d'avoir à le faire après chaque installation.)

(Parce que, bien sûr, il faut une semaine et un débogueur de noyau pour comprendre qu'il suffit d'un changement de deux bits dans un champ de bits obscur et complètement non documenté.)

Voici pourquoi.

Le chargeur de démarrage Windows utilise des routines UEFI intégrées pour trouver l'installation de Windows et charge le noyau et les pilotes de démarrage dans la RAM avant d'appeler ExitBootServices. Une fois qu'il a fait cela et passé le contrôle au noyau, le noyau ne peut pas accéder au volume de démarrage à moins que les pilotes appropriés soient déjà présents dans la RAM.

Voici le kicker, cependant: winload.efi n'est pas assez complexe pour énumérer le matériel et déterminer quels pilotes sont réellement requis. Dans les anciennes versions, il ne chargeait que les éléments définis sur Boot Start. Cependant, le chargement de pilotes étrangers entraîne une baisse des performances, et comme Windows a commencé à prendre en charge plus de classes de périphériques de démarrage, un meilleur système était nécessaire.

Entrez la valeur BootFlags sur les pilotes individuels et la valeur BootDriverFlags à l'échelle du système. Si (BootFlags & BootDriverFlags)! = 0, le pilote sera chargé même s'il n'est pas défini sur Boot Start. Chaque bit de la valeur est censé correspondre à un type de matériel différent, de sorte que la valeur BootDriverFlags définit les types de matériel à partir desquels il est possible de démarrer.

Lorsque ce mécanisme a été introduit, le bit 3 était destiné aux périphériques de démarrage USB, mais le démarrage à partir de périphériques USB n'était pas pris en charge dans Windows standard. La version Hyper-V Server 2008 R2 a ajouté une prise en charge spécifique pour le démarrage à partir d'USB en définissant cette valeur sur 0x04, et cette valeur a été définie dans chaque version d'Hyper-V Server publiée depuis.

Les améliorations générales apportées depuis lors pour prendre en charge la fonctionnalité Windows To Go signifient que vous n'avez pas à utiliser l'astuce de démarrage sur VHD recommandée pour les versions précédentes d'Hyper-V Server installées sur des périphériques USB. Cependant, ils modifient également la signification de la valeur BootDriverFlags. Les périphériques USB 3 ont reçu un bit séparé, et les cartes SD en particulier ont reçu un autre bit.

Dans la version 2016, cela signifie qu'une valeur de 0x04 permet désormais de démarrer uniquement à partir de disques USB2 qui ne sont pas des cartes SD. Toutes les versions de Server 2016 sauf Hyper-V Server sont livrées avec la valeur par défaut de 0x1c, qui permet le démarrage de la carte USB2, USB3 et SD; cependant, la valeur de 0x04 est toujours définie dans Hyper-V Server, car elle a été ajoutée en tant que remplacement dans le processus de création d'image pour la version 2008R2. Au lieu d'ajouter une fonctionnalité, cette valeur la supprime désormais.

Cela explique pourquoi certaines solutions précédentes à ce problème recommandaient de désactiver USB3 et de démarrer à partir d'une clé USB au lieu de la carte SD: cela forcerait la catégorie du périphérique de démarrage à être encore couverte par la définition désormais plus limitée du "USB". "bit dans BootDriverFlags.


La liste des valeurs d'indicateur et leur signification peut être trouvée ici: docs.microsoft.com/en-us/windows-hardware/drivers/install/…
RJ Cuthbertson

@RJCuthbertson Very nice!
Reid Rankin

1

J'ai suivi les instructions à la lettre (à la seule exception étant les lettres de lecteur) pour Hyper-V Server 2016 et cela fonctionnait parfaitement pour un ancien serveur Dell PowerEdge T710. Il fonctionne maintenant sur le port USB interne. Cependant, l'unité Dell peut indiquer au système que l'USB interne doit apparaître comme un disque dur. C'est peut-être la différence. Mais je peux dire oui, vous pouvez extrapoler les instructions pour 2008 R2 et l'appliquer très bien au serveur HyperV 2016.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.