Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Γεια σε όλους!

Αυτό το άρθρο περιγράφει τα βήματα που πρέπει να ακολουθήσετε για να προσθέσετε τη δυνατότητα εκκίνησης UEFI στο WDS σας.

Εκείνοι. Οι οδηγίες σε αυτό το άρθρο προϋποθέτουν ότι έχετε ήδη την ακόλουθη διαμόρφωση:

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

Επίσης, εδώ περιγράφονται ενέργειες που δεν μου έφεραν το σωστό αποτέλεσμα.
Τα περιέγραψα για να διευκολύνω την αναζήτηση και να εξοικονομήσω χρόνο.

πρόλογος

Έφτιαξα ένα WDS στη δουλειά με πολλά καλούδια, tk. Βαρέθηκα να τρέχω συνεχώς με ένα σωρό μονάδες flash και να τα αντικαθιστώ.

Παρεμπιπτόντως, αυτά τα άρθρα με βοήθησαν:
Προσθήκη ευελιξίας WDS
Μενού εκκίνησης PXE με το System Center Configuration Manager


Μοιάζει με αυτό

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Και όλα ήταν καλά, προστέθηκαν νέες εικόνες για φόρτωση, η εικόνα του winPE ήταν κατάφυτη με νέες δυνατότητες και όλα λειτουργούσαν.

Όμως, δεν υποστηρίζουν όλες οι συσκευές τη λειτουργία εκκίνησης BIOS / παλαιού τύπου, ή αν υποστηρίζουν, τότε η συμπερίληψή του μπορεί να είναι σε πολύ μη προφανές μέρος.

Ναι, και η εγκατάσταση των παραθύρων σε λειτουργία παλαιού τύπου, όταν είναι δυνατή η εγκατάσταση στο UEFI, δεν είναι ωραία.

Ως αποτέλεσμα, αποφάσισα να προσθέσω τη δυνατότητα εκκίνησης στο UEFI και πήγα στην Google.

Αλλά δεν βρήκα δομημένες πληροφορίες για το πώς να αποκτήσω ένα λειτουργικό WDS + UEFI.
Στην πραγματικότητα, γι' αυτό αποφάσισα να γράψω αυτό το άρθρο.

Πριν ξεκινήσω, θα περιγράψω το πρόβλημα που πήρε τον περισσότερο χρόνο.

Κατά την προσθήκη του UEFI στο WDS, είναι δυνατή η ακόλουθη, μάλλον μη προφανής κατάσταση:

Εάν προσθέσετε ένα αρχείο εκκίνησης στο WDS και όταν προσπαθείτε να κάνετε εκκίνηση στη συσκευή
στο UEFI βλέπετε το ακόλουθο κείμενο:
The selected boot device failed. Press <Enter> to Continue.
Ή Boot Device Not Found
Αλλά η φόρτωση παλαιού τύπου λειτουργεί για εσάς.
Τότε μια από τις πιθανές επιλογές είναι η απουσία αρχείου wdsmgfw.efi,
κατά μήκος της παρακάτω διαδρομής: %WDSpath%Bootx64wdsmgfw.efi

Μπορείτε να το πάρετε εδώ: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Ή, αν για κάποιο λόγο λείπει αυτό το αρχείο για εσάς, το δημοσίευσα στο google.
Για αυτήν τη λύση, ευχαριστώ παιδιά από reddit.

Με αυτό το πρόβλημα, σκότωσα τις περισσότερες φορές, γιατί. Νόμιζα ότι το πρόβλημα ήταν κάπου στη διαμόρφωση του WDS ή του DHCP.

Διαμόρφωσε πολιτικές προσθέτοντας κλάσεις προμηθευτή για διάφορες αρχιτεκτονικές και ορίζοντας τις επιλογές DHCP 060, 066, 067. Εντολή για τη διαμόρφωση των πολιτικών DHCP.

Αρχιτεκτονικές σε ASCII για τη διαμόρφωση του DHCP

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

Επίσης, δοκίμασα διάφορες επιλογές για αρχεία εκκίνησης. .efi

  • syslinux
  • γκρίνια 2

Προσπάθησα επίσης να βρω το πρόβλημα στο αρχείο καταγραφής συμβάντων.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Όμως, όπως είπα παραπάνω, το πρόβλημα βρισκόταν στο αρχείο wdsmgfw.efi.
Είτε το διέγραψα κατά λάθος ο ίδιος, είτε δεν αντιγράφηκε κατά την εγκατάσταση
και διαμόρφωση του WDS.

Λοιπόν, ας ξεκινήσουμε!

Εντολή

Στάδιο 1 - Βεβαιωθείτε ότι το WDS λειτουργεί

Πάρτε οποιαδήποτε συσκευή ή εικονική μηχανή με υποστήριξη για εκκίνηση σε λειτουργία UEFI μέσω του δικτύου και προσπαθήστε να κάνετε εκκίνηση.

Θα πρέπει να έχετε την παρακάτω εικόνα:

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Αν ναι, ωραία, μπορείτε να συνεχίσετε.
Αν όχι, τότε δες τι έγραψα στον πρόλογο.

Στάδιο 2 - Δημιουργία του αρχείου εκκίνησης iPXE

Ξεκινάμε το προπαρασκευασμένο Ubuntu, ανοίγουμε ένα τερματικό και επικολλάμε αυτήν τη γραμμή:

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

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Εδώ θα ήθελα να κάνω μια μικρή παρατήρηση ότι ίσως χρειαστεί να προσθέσετε πακέτα στο Ubuntu που είναι απαραίτητα για τη μεταγλώττιση των C και C ++.
Μόλις τα έχω εγκαταστήσει.

Έγινε λήψη; - Εξαιρετική!
Τώρα πρέπει να δημιουργήσετε ένα αρχείο ρυθμίσεων για τη συναρμολόγηση.
Στο τερματικό γράφουμε:

cd ipxe/src
gedit chain.ipxe

Και επικολλήστε τον ακόλουθο κώδικα σε αυτό το αρχείο και, στη συνέχεια, αποθηκεύστε:

#!ipxe

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

Επιστρέφουμε στο τερματικό και ξεκινάμε τη συλλογή:

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

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Εάν όλα είναι εντάξει, τότε θα πρέπει να λάβετε την ακόλουθη έξοδο στο τερματικό:

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Και αρχείο ipxe.efi, στην πορεία: ipxe/src/bin-x86_64-efi/ipxe.efi
Εάν για κάποιο λόγο δεν μπορείτε να μεταγλωττίσετε μόνοι σας,
Έχω επισυνάψει το δικό μου αρχείου.
Έχει μεταγλωττιστεί για εκκίνηση από http://192.168.0.100/install.ipxe

Αυτά είναι όλα για το Ubuntu.

Βήμα 3 - Προσθήκη ipxe.efi στο WDS

Παίρνουμε το αρχείο που λάβαμε στο δεύτερο στάδιο και το αντιγράφουμε στην πορεία:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Αφού το μετονομάσουμε σε BOOTX64.EFI.
Δεν είναι απαραίτητο, απλά είναι πιο βολικό.

Στη συνέχεια ξεκινάμε cmd εκ μέρους του διαχειριστή και γράψτε τις ακόλουθες εντολές:

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

Αυτό θα ρυθμίσει το αρχείο που προκύπτει να ληφθεί μέσω WDS.

Ας ελέγξουμε τη διαμόρφωση:

wdsutil /get-server /Show:Config

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Αντέγραψα επίσης το αρχείο ipxe.efi, το μετονόμασα σε BOOTIA32.EFI και ρύθμισα την εκκίνηση για αυτό, για κάθε ενδεχόμενο. architecture:x86uefi
Αλλά σε γενικές γραμμές, αυτό δεν έχει νόημα, γιατί. Το αρχείο Bootmgfw.efi δεν υποστηρίζει x86

Ας ελέγξουμε τι έγινε.
Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI
Ωραία, το WDS στέλνει το αρχείο μας για λήψη και αυτό, με τη σειρά του, αναζητά τη διαμόρφωση κατά μήκος της διαδρομής: http://192.168.0.100/install.ipxe

Βήμα 4 - Διαμόρφωση μενού

Μεταβείτε στον ριζικό φάκελο του ιστότοπού σας.
Η προεπιλογή είναι: C:inetpubwwwroot

Δημιουργήστε ένα αρχείο κειμένου install.ipxe.

και ρυθμίστε το σύμφωνα με τεκμηρίωση και τις ανάγκες σας.
Υπάρχει επίσης μια ρωσική γλώσσα περιγραφή εντολές.
Μου άρεσε αυτό οδηγίες κατά τη διαμόρφωση του WDS.

Παράδειγμα διαμόρφωσης 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

Μπορείτε να διαβάσετε σχετικά με τη διαμόρφωση για τη φόρτωση του winPE εδώ.

Στάδιο 5 - Τύποι MIME

Αφού δημιουργήσετε το μενού και προσθέσετε όλα τα απαραίτητα αρχεία στον ριζικό φάκελο των υπηρεσιών IIS,
πρέπει να τους δώσετε πρόσβαση.

Επειδή ακόμα κι αν προσπαθήσετε να κάνετε λήψη ενός αρχείου από το πρόγραμμα περιήγησης, θα λάβετε ένα σφάλμα στη διεύθυνσή του: HTTP 404.3 - Not Found.
Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Για να το κάνετε αυτό, πρέπει να προσθέσετε τύπους MIME στον πίνακα ελέγχου των υπηρεσιών IIS, σύμφωνα
με επεκτάσεις αρχείων που θα κατεβάσετε μέσω http.

Δεν έψαξα ποιος τύπος MIME είναι καλύτερος για αυτό το σκοπό και ρώτησα application/octet-stream, μετά από το οποίο όλα λειτούργησαν.

Για αρχεία που δεν έχουν επέκταση, χρησιμοποιήστε μια τελεία.

Σαν αυτό:

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Συμπέρασμα

Τελικά, έχουμε τη δυνατότητα εκκίνησης μέσω τοπικού δικτύου μέσω UEFI.

Εάν τα κάναμε όλα σωστά, τότε θα υπάρχει κάτι σαν αυτό το μενού επιλογής εκκίνησης:

Επέκταση της λειτουργικότητας WDS: Προσθήκη δυνατότητας εκκίνησης UEFI

Εάν έχετε προετοιμάσει τα βασικά εργαλεία και δεν θα ασχοληθείτε με τη διαμόρφωση, τότε χρειάζονται περίπου 10-20 λεπτά για να εφαρμόσετε αυτήν τη δυνατότητα.
Μου πήρε 2 εργάσιμες μέρες, γιατί. Χρειάστηκε να ψάξω πολύ στο google.

Επιτυχής υλοποίηση!

Σας ευχαριστώ για την προσοχή σας και ευχαριστώ πολύ εκείνους τους ανθρώπους των οποίων τα άρθρα με βοήθησαν!
Στο Habré είναι: Ingtar и Deeptown.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο