Bonjour à tous!
Cet article décrit les étapes à suivre pour ajouter la capacité de démarrage UEFI à votre WDS.
Ceux. Les instructions de cet article partent du principe que vous disposez déjà de la configuration suivante :
1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu
De plus, voici des actions décrites qui ne m'ont pas apporté le bon résultat.
Je les ai décrites pour faciliter la recherche et vous faire gagner du temps.
Avant-propos
J'ai fait un WDS au travail avec plein de goodies, tk. fatigué de courir constamment avec un tas de clés USB et de les écraser.
Ces articles m'ont d'ailleurs aidé :
Et tout allait bien, de nouvelles images ont été ajoutées pour le chargement, l'image winPE était envahie par de nouvelles fonctionnalités et tout fonctionnait.
Mais, loin de tous les appareils prennent en charge le mode de démarrage BIOS / Legacy, ou s'ils le font, son inclusion peut être dans un endroit très non évident.
Oui, et installer windows en mode legacy, alors qu'il est possible d'installer en UEFI, ce n'est pas cool.
En conséquence, j'ai décidé d'ajouter la possibilité de démarrer dans UEFI et je suis allé sur Google.
Mais je n'ai pas trouvé d'informations structurées sur la façon d'obtenir un WDS + UEFI fonctionnel.
En fait, c'est pourquoi j'ai décidé d'écrire cet article.
Avant de commencer, je vais décrire le problème qui a pris le plus de temps.
Lors de l'ajout d'UEFI à WDS, la situation suivante, plutôt non évidente, est possible :
Si vous ajoutez un fichier de démarrage à WDS et lorsque vous essayez de démarrer sur le périphérique
dans UEFI, vous voyez le texte suivant :
The selected boot device failed. Press <Enter> to Continue.
Ou Boot Device Not Found
Mais le chargement dans l'héritage fonctionne pour vous.
Ensuite l'une des options possibles est l'absence de fichier wdsmgfw.efi,
de la manière suivante: %WDSpath%Bootx64wdsmgfw.efi
Tu peux le prendre ici : C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Ou, si pour une raison quelconque ce fichier vous manque, je l'ai posté sur
Pour cette solution, merci les gars de
Avec ce problème, j'ai tué le plus de temps, parce que. Je pensais que le problème était quelque part dans la configuration WDS ou DHCP.
Politiques configurées en ajoutant des classes de fournisseurs pour diverses architectures et en définissant les options DHCP 060, 066, 067.
Architectures en ASCII pour configurer DHCP
PXEClient:Arch:00000 - BIOS/hérité
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64
De plus, j'ai essayé diverses options pour les fichiers de démarrage. .efi
- syslinux
- grub 2
J'ai également essayé de trouver le problème dans le journal des événements.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics
Mais, comme je l'ai dit plus haut, le problème résidait dans le fichier wdsmgfw.efi.
Soit je l'ai supprimé accidentellement moi-même, soit il n'a pas été copié lors de l'installation
et configurer WDS.
Eh bien, commençons !
Instruction
Étape 1 - Vérifiez que WDS fonctionne
Prenez n'importe quel appareil ou machine virtuelle prenant en charge le démarrage en mode UEFI sur le réseau et essayez de démarrer.
Vous devriez avoir l'image suivante :
Si c'est le cas, super, vous pouvez continuer.
Sinon, voyez ce que j'ai écrit dans la préface.
Étape 2 - Création du fichier de démarrage iPXE
Nous lançons Ubuntu pré-préparé, ouvrons un terminal et collons cette ligne :
git clone https://git.ipxe.org/ipxe.git ipxe
Ici, je voudrais faire une petite remarque sur le fait que vous devrez peut-être ajouter des packages à Ubuntu qui sont nécessaires pour compiler C et C ++.
Je viens de les installer.
Téléchargé ? - Super!
Vous devez maintenant créer un fichier de configuration pour l'assemblage.
Dans le terminal, on écrit :
cd ipxe/src
gedit chain.ipxe
Et collez le code suivant dans ce fichier, puis enregistrez :
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe
On retourne au terminal et on lance la compilation :
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Si tout est en ordre, vous devriez obtenir la sortie suivante dans le terminal :
Et fichier ipxe.efi, le long du chemin: ipxe/src/bin-x86_64-efi/ipxe.efi
Si pour une raison quelconque vous ne pouvez pas compiler vous-même,
j'ai joint le mien
Il est compilé pour démarrer à partir de http://192.168.0.100/install.ipxe
C'est tout pour Ubuntu.
Étape 3 - Ajout de ipxe.efi à WDS
Nous prenons le fichier que nous avons reçu à la deuxième étape et le copions en cours de route :
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Après l'avoir renommé BOOTX64.EFI.
Ce n'est pas nécessaire, c'est juste plus pratique.
Puis nous lançons cmd au nom de l'administrateur, et écrivez les commandes suivantes :
wdsutil /set-server /bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
и
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
Cela définira le fichier résultant à télécharger via WDS.
Vérifions la configuration :
wdsutil /get-server /Show:Config
J'ai également copié le fichier ipxe.efi, l'ai renommé BOOTIA32.EFI et configuré le démarrage, juste au cas où. architecture:x86uefi
Mais dans l'ensemble, cela n'a aucun sens, parce que. Le fichier Bootmgfw.efi ne prend pas en charge x86
Vérifions ce qui s'est passé.
Génial, WDS envoie notre fichier en téléchargement et celui-ci, à son tour, recherche la configuration le long du chemin : http://192.168.0.100/install.ipxe
Étape 4 - Configuration des menus
Accédez au dossier racine de votre site.
La valeur par défaut est : C:inetpubwwwroot
Créer un fichier texte installer.ipxe.
et configurez-le selon
Il y a aussi une langue russe
j'ai aimé
exemple de configuration install.ipxe
#!ipxe
:start
menu Please choose an operating system to start/install
item --gap Start Win PE
item WinPE-x64 WinPE x64
item --gap ipxe shell
item shell Drop to iPXE shell
choose target && goto ${target}
:failed
echo Booting failed, dropping to shell
goto shell
:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:WinPE-x64
kernel http://192.168.0.100/wimboot
initrd http://192.168.0.100/peSE/Boot/bcd
initrd http://192.168.0.100/peSE/Boot/boot.sdi
initrd http://192.168.0.100/peSE/Boot/peSE64.wim
boot || goto failed
Vous pouvez lire sur la configuration pour le chargement de winPE
Étape 5 - Types MIME
Après avoir créé le menu et ajouté tous les fichiers nécessaires au dossier racine IIS,
vous devez leur donner accès.
Parce que même si vous essayez de télécharger un fichier depuis le navigateur, vous obtiendrez une erreur à son adresse : HTTP 404.3 - Not Found
.
Pour ce faire, vous devez ajouter des types MIME dans le panneau de configuration IIS, conformément
avec des extensions de fichiers que vous téléchargerez via http.
Je n'ai pas cherché quel type MIME convient le mieux à cette fin et j'ai demandé application/octet-stream
, après quoi tout a fonctionné.
Pour les fichiers qui n'ont pas d'extension, utilisez un point.
La voici:
Conclusion
En fin de compte, nous avons la possibilité de démarrer sur un réseau local via UEFI.
Si nous avons tout fait correctement, alors il y aura quelque chose comme ce menu de sélection de démarrage :
Si vous avez préparé les outils de base et que vous ne vous souciez pas de la configuration, la mise en œuvre de cette fonctionnalité prend environ 10 à 20 minutes.
Cela m'a pris 2 jours ouvrables, parce que. J'ai dû beaucoup googler.
Mise en œuvre réussie !
Merci pour votre attention et un grand merci aux personnes dont les articles m'ont aidé !
Sur Habré c'est :
Source: habr.com