Ciao a tutti!
In questo articolo sono descritti i passaggi necessari per aggiungere la funzionalità di avvio in modalità UEFI al tuo WDS.
Cioè, le istruzioni in questo articolo presumono che tu abbia già configurato circa quanto segue:
1. Windows Server 2012R2 (o superiore)
2. DHCP completamente configurato per funzionare con WDS
3. Il WDS stesso
4. IIS
5. Una macchina virtuale o un PC con UbuntuInoltre, qui sono descritti i passaggi che non mi hanno dato i risultati desiderati.
Li ho descritti per facilitare la ricerca e risparmiare tempo.
Prefazione
Una volta ho realizzato un WDS con molte funzionalità al lavoro, poiché ero stanco di correre sempre con un mucchio di pen drive e doverle registrare di nuovo.
Queste articoli mi hanno aiutato, tra l'altro:
Si presenta così

E andava tutto bene, venivano aggiunte nuove immagini per l'avvio, l'immagine winPE si arricchiva di nuove funzionalità e tutto funzionava.
Tuttavia, non tutti i dispositivi supportano la modalità di avvio BIOS/Legacy, e se la supportano, l'attivazione potrebbe trovarsi in un luogo molto poco ovvio.
E installare Windows in modalità legacy, quando c'è la possibilità di installarlo in UEFI, non è ideale.
Alla fine ho deciso di aggiungere la funzionalità di avvio in UEFI e sono andato su Google.
Ma non ho trovato informazioni strutturate su come ottenere un WDS + UEFI funzionante.
Ecco perché ho deciso di scrivere questo articolo.
Prima di iniziare, descriverò il problema che mi ha sottratto più tempo.
Quando si aggiunge UEFI a WDS, può verificarsi la seguente situazione piuttosto non ovvia:
Se aggiungi un file di avvio a WDS e, nel tentativo di avviarti sul dispositivo
in UEFI vedi il seguente messaggio:
Il dispositivo di avvio selezionato non è riuscito. Premi per continuare.
Oppure Dispositivo di avvio non trovato
Ma l'avvio in legacy funziona.
Quindi una delle possibili soluzioni è l'assenza del file wdsmgfw.efi,
al seguente percorso: %WDSpath%Bootx64wdsmgfw.efi
Puoi ottenerlo qui: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Oppure, se per qualche motivo ti manca questo file, l'ho caricato su .
Grazie a ragazzi di .
Ho speso il maggior tempo con questo problema, poiché pensavo che ci fosse un problema nella configurazione di WDS o DHCP.
Ho configurato le politiche, aggiungendo Vendor Classes per varie architetture, e configurando le opzioni DHCP 060, 066, 067. sulla configurazione delle politiche DHCP.
Architetture in ASCII per la configurazione DHCP
PXEClient:Arch:00000 — BIOS/Legacy
PXEClient:Arch:00006 — UEFI x86
PXEClient:Arch:00007 — UEFI x64
Ho anche provato diverse varianti di file di avvio .efi
- syslinux
- grub 2
Ho anche tentato di trovare il problema nel registro eventi.
win + r -> eventvwr -> Registri delle applicazioni e dei servizi -> Microsoft -> Windows -> Deployment-Services-Diagnostics
Ma, come ho detto sopra, il problema si trovava nel file wdsmgfw.efi.
O lo ho eliminato accidentalmente io, o non è stato copiato durante l'installazione
e la configurazione di WDS.
Bene, cominciamo!
Istruzione
Fase 1 — Verifica del funzionamento di WDS
Prendete qualsiasi dispositivo o macchina virtuale con supporto per l'avvio in modalità UEFI tramite rete e provate ad avviarlo.
Dovreste vedere la seguente schermata:

Se è così, ottimo, possiamo continuare.
Se no, date un'occhiata a quanto ho scritto nell'introduzione.
Fase 2 — Creazione del file di avvio iPXE
Avviamo Ubuntu preparato in precedenza, apriamo il terminale e incolliamo questa riga:
git clone https://git.ipxe.org/ipxe.git ipxe
Vorrei fare una piccola nota, che in Ubuntu potrebbe essere necessario aggiungere i pacchetti richiesti per la compilazione di C e C++.
A me erano già installati.
Scaricato? — Ottimo!
Ora dobbiamo creare il file di configurazione per la compilazione.
Nel terminale scriviamo:
cd ipxe/src
gedit chain.ipxeE inseriamo in questo file il seguente codice, quindi salviamo:
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxeTorniamo di nuovo al terminale e avviamo la compilazione:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Se tutto va bene, dovreste ricevere la seguente uscita nel terminale:

E il file ipxe.efi, nel percorso: ipxe/src/bin-x86_64-efi/ipxe.efi
Se per qualche motivo non siete riusciti a compilare autonomamente,
ho allegato il mio .
È stato compilato per il boot da http://192.168.0.100/install.ipxe
Questo è tutto per Ubuntu.
Fase 3 — Aggiungere ipxe.efi a WDS
Prendiamo il file che abbiamo ottenuto nella seconda fase e lo copiamo nel percorso:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Poi lo rinominiamo in BOOTX64.EFI.
Questo non è obbligatorio, è solo più comodo.
Poi eseguiamo cmd come amministratore e scriviamo i seguenti comandi:
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:x64uefiCosì installeremo il file ottenuto per l'avvio tramite WDS.
Controlliamo la configurazione:
wdsutil /get-server /Show:Config
Ho anche copiato il file ipxe.efi, l'ho rinominato in BOOTIA32.EFI e ho configurato l'avvio per esso, per precauzione. architecture:x86uefi
Ma in realtà non ha molto senso, poiché il file Bootmgfw.efi non supporta x86
Controlliamo il risultato.

Ottimo, WDS sta caricando il nostro file e cerca la configurazione nel seguente percorso: http://192.168.0.100/install.ipxe
Fase 4 — Configurazione del menu
Andiamo nella cartella principale del tuo sito.
Di default è: C:inetpubwwwroot
Creiamo un file di testo install.ipxe.
E lo configuriamo in base a e alle tue esigenze.
È disponibile anche una guida in russo comandi.
Ho utilizzato la guida per configurare il mio WDS.
Esempio di configurazione di 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 failedPuoi leggere della configurazione per il caricamento di winPE .
Fase 5 — tipi MIME
Dopo aver creato il menu e aggiunto tutti i file necessari nella cartella principale di IIS,
è necessario concedere l'accesso a essi.
Infatti, anche se provi a scaricare un file dal browser, riceverai un errore per il suo indirizzo: HTTP 404.3 - Not Found.

Per questo, devi aggiungere i tipi MIME nel pannello di controllo di IIS, in conformità
con le estensioni dei file che verranno caricati tramite http.
Non ho cercato quale tipo MIME fosse più adatto a questi scopi, quindi ho impostato application/octet-stream, dopo di che tutto ha funzionato.
Per i file senza estensione, utilizza un punto.
Ecco come:

Conclusione
In definitiva, abbiamo la possibilità di avviare tramite rete locale tramite UEFI.
Se tutto è stato fatto correttamente, dovrebbe apparire un menu di selezione del caricamento simile a questo:

Se hai già gli strumenti principali pronti e non vuoi preoccuparti della configurazione, ci vorranno circa 10-20 minuti per implementare questa funzionalità.
A me ci sono voluti 2 giorni lavorativi, poiché ho dovuto cercare molto su Google.
Buona realizzazione!
Grazie per l'attenzione e un enorme grazie a coloro i cui articoli mi hanno aiutato!
Su Habr è: e .
Fonte: habr.com
