Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Ciao a tutti!

Questo articolo descrive i passaggi da seguire per aggiungere funzionalità di avvio UEFI al tuo WDS.

Quelli. Le istruzioni in questo articolo presuppongono che tu abbia già la seguente configurazione:

1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu

Inoltre, qui sono descritte le azioni che non mi hanno portato il risultato corretto.
Li ho descritti per facilitare la ricerca e farti risparmiare tempo.

prefazione

Ho fatto un WDS al lavoro con un sacco di chicche, tk. stanco di correre costantemente con un mucchio di unità flash e sovrascriverle.

Questi articoli mi hanno aiutato a proposito:
Aggiunta della versatilità WDS
Menu di avvio PXE con System Center Configuration Manager


Sembra così

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

E tutto è andato bene, sono state aggiunte nuove immagini per il caricamento, l'immagine winPE ha acquisito nuove funzionalità e tutto ha funzionato.

Tuttavia, non tutti i dispositivi supportano la modalità di avvio BIOS / Legacy o, se lo fanno, la sua inclusione potrebbe trovarsi in una posizione molto non ovvia.

Sì, e l'installazione di Windows in modalità legacy, quando è possibile installare in UEFI, non è interessante.

Di conseguenza, ho deciso di aggiungere la possibilità di eseguire l'avvio in UEFI e sono andato su Google.

Ma non ho trovato informazioni strutturate su come ottenere un WDS + UEFI funzionante.
In realtà, è per questo che ho deciso di scrivere questo articolo.

Prima di iniziare, descriverò il problema che ha richiesto più tempo.

Quando si aggiunge UEFI a WDS, è possibile la seguente situazione piuttosto non ovvia:

Se aggiungi un file di avvio a WDS e quando provi ad avviare sul dispositivo
in UEFI vedi il seguente testo:
The selected boot device failed. Press <Enter> to Continue.
O Boot Device Not Found
Ma il caricamento in legacy funziona per te.
Quindi una delle possibili opzioni è l'assenza di un file wdsmgfw.efi,
lungo il seguente percorso: %WDSpath%Bootx64wdsmgfw.efi

Puoi prenderlo qui: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Oppure, se per qualche motivo ti manca questo file, l'ho pubblicato su google.
Per questa soluzione, grazie ragazzi di reddit.

Con questo problema, ho ucciso la maggior parte del tempo, perché. Pensavo che il problema fosse da qualche parte nella configurazione WDS o DHCP.

Criteri configurati aggiungendo classi di fornitori per varie architetture e configurando le opzioni DHCP 060, 066, 067. Istruzione per la configurazione dei criteri DHCP.

Architetture in ASCII per la configurazione di DHCP

PXEClient:Arch:00000 - BIOS/Legacy
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64

Inoltre, ho provato varie opzioni per i file di avvio. .efi

  • syslinux
  • grub 2

Ho anche provato a trovare il problema nel registro eventi.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Ma, come ho detto sopra, il problema risiedeva nel file wdsmgfw.efi.
O l'ho cancellato accidentalmente da solo o non è stato copiato durante l'installazione
e configurazione WDS.

Bene, cominciamo!

Istruzione

Fase 1: verificare che WDS funzioni

Prendi qualsiasi dispositivo o macchina virtuale con supporto per l'avvio in modalità UEFI sulla rete e prova ad avviarlo.

Dovresti avere la seguente immagine:

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Se è così, bene, puoi continuare.
In caso contrario, guarda cosa ho scritto nella prefazione.

Fase 2 - Creazione del file di avvio iPXE

Lanciamo Ubuntu pre-preparato, apriamo un terminale e incolliamo questa riga:

git clone https://git.ipxe.org/ipxe.git ipxe

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Qui vorrei fare una piccola osservazione sul fatto che potresti dover aggiungere pacchetti a Ubuntu necessari per compilare C e C ++.
Li ho appena installati.

Scaricato? - Grande!
Ora devi creare un file di configurazione per l'assembly.
Nel terminale scriviamo:

cd ipxe/src
gedit chain.ipxe

E incolla il seguente codice in questo file, quindi salva:

#!ipxe

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

Torniamo al terminale e avviamo la compilazione:

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

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Se tutto è in ordine, dovresti ottenere il seguente output nel terminale:

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

E archivia ipxe.efi, lungo la strada: ipxe/src/bin-x86_64-efi/ipxe.efi
Se per qualche motivo non riesci a compilare da solo,
Ho allegato il mio файл.
È compilato per l'avvio da http://192.168.0.100/install.ipxe

Questo è tutto per Ubuntu.

Passaggio 3: aggiunta di ipxe.efi a WDS

Prendiamo il file che abbiamo ricevuto nella seconda fase e lo copiamo lungo il percorso:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Dopo averlo rinominato in BOOTX64.EFI.
Non è necessario, è solo più conveniente.

Quindi lanciamo cmd per conto dell'amministratore e scrivi 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

Questo imposterà il file risultante da scaricare tramite WDS.

Controlliamo la configurazione:

wdsutil /get-server /Show:Config

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Ho anche copiato il file ipxe.efi, l'ho rinominato BOOTIA32.EFI e ho configurato l'avvio per questo, per ogni evenienza. architecture:x86uefi
Ma in generale, questo non ha senso, perché. Il file Bootmgfw.efi non supporta x86

Controlliamo cosa è successo.
Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI
Bene, WDS invia il nostro file per il download e, a sua volta, cerca la configurazione lungo il percorso: http://192.168.0.100/install.ipxe

Passaggio 4: configurazione del menu

Vai alla cartella principale del tuo sito.
L'impostazione predefinita è: C:inetpubwwwroot

Crea un file di testo install.ipxe.

e configurarlo secondo documentazione e le tue esigenze.
C'è anche una lingua russa descrizione comandi.
mi è piaciuto questo istruzioni durante la configurazione del WDS.

Esempio di configurazione 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 informazioni sulla configurazione per il caricamento di winPE qui.

Fase 5 - Tipi MIME

Dopo aver creato il menu e aver aggiunto tutti i file necessari alla cartella principale di IIS,
è necessario concedere loro l'accesso.

Perché anche se provi a scaricare un file dal browser, otterrai un errore al suo indirizzo: HTTP 404.3 - Not Found.
Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Per fare ciò, è necessario aggiungere i tipi MIME nel pannello di controllo di IIS, in conformità
con estensioni di file che scaricherai tramite http.

Non ho cercato quale tipo MIME è il migliore per questo scopo e ho chiesto application/octet-stream, dopo di che tutto ha funzionato.

Per i file che non hanno un'estensione, usa un punto.

Ecco così:

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

conclusione

Alla fine, abbiamo la possibilità di eseguire l'avvio su una rete locale tramite UEFI.

Se abbiamo fatto tutto correttamente, ci sarà qualcosa come questo menu di selezione di avvio:

Espansione della funzionalità WDS: aggiunta della funzionalità di avvio UEFI

Se hai preparato gli strumenti di base e non ti preoccuperai della configurazione, sono necessari circa 10-20 minuti per implementare questa funzione.
Mi ci sono voluti 2 giorni lavorativi, perché. Ho dovuto cercare molto su Google.

Implementazione riuscita!

Grazie per l'attenzione e molte grazie a quelle persone i cui articoli mi hanno aiutato!
Su Habré è: Ingtar и Città profonda.

Fonte: habr.com

Aggiungi un commento