Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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 Ubuntu

Inoltre, 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:
Aggiunta di universalità a WDS
Menu di avvio PXE con System Center Configuration Manager


Si presenta così

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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 google.
Grazie a ragazzi di reddit.

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. Istruzione 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:

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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.ipxe

E inseriamo in questo file il seguente codice, quindi salviamo:

#!ipxe

dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe

Torniamo di nuovo al terminale e avviamo la compilazione:

make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

Se tutto va bene, dovreste ricevere la seguente uscita nel terminale:

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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 file.
È 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:x64uefi

Così installeremo il file ottenuto per l'avvio tramite WDS.

Controlliamo la configurazione:

wdsutil /get-server /Show:Config

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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.
Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.
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 documentazione e alle tue esigenze.
È disponibile anche una guida in russo descrizione comandi.
Ho utilizzato questo 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 failed

Puoi leggere della configurazione per il caricamento di winPE qui.

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.
Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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:

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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:

Espandiamo le funzionalità di WDS: aggiunta della possibilità di avvio su UEFI.

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 è: Ingtar e Deeptown.

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster