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:
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
Per questa soluzione, grazie ragazzi di
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.
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:
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
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
Se tutto è in ordine, dovresti ottenere il seguente output nel terminale:
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
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.
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
C'è anche una lingua russa
mi è piaciuto
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
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
.
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ì:
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:
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é è:
Fonte: habr.com