Γεια σε όλους!
Αυτό το άρθρο περιγράφει τα βήματα που πρέπει να ακολουθήσετε για να προσθέσετε τη δυνατότητα εκκίνησης UEFI στο WDS σας.
Εκείνοι. Οι οδηγίες σε αυτό το άρθρο προϋποθέτουν ότι έχετε ήδη την ακόλουθη διαμόρφωση:
1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu
Επίσης, εδώ περιγράφονται ενέργειες που δεν μου έφεραν το σωστό αποτέλεσμα.
Τα περιέγραψα για να διευκολύνω την αναζήτηση και να εξοικονομήσω χρόνο.
πρόλογος
Έφτιαξα ένα WDS στη δουλειά με πολλά καλούδια, tk. Βαρέθηκα να τρέχω συνεχώς με ένα σωρό μονάδες flash και να τα αντικαθιστώ.
Παρεμπιπτόντως, αυτά τα άρθρα με βοήθησαν:
Και όλα ήταν καλά, προστέθηκαν νέες εικόνες για φόρτωση, η εικόνα του 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
Ή, αν για κάποιο λόγο λείπει αυτό το αρχείο για εσάς, το δημοσίευσα στο
Για αυτήν τη λύση, ευχαριστώ παιδιά από
Με αυτό το πρόβλημα, σκότωσα τις περισσότερες φορές, γιατί. Νόμιζα ότι το πρόβλημα ήταν κάπου στη διαμόρφωση του WDS ή του DHCP.
Διαμόρφωσε πολιτικές προσθέτοντας κλάσεις προμηθευτή για διάφορες αρχιτεκτονικές και ορίζοντας τις επιλογές DHCP 060, 066, 067.
Αρχιτεκτονικές σε 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 μέσω του δικτύου και προσπαθήστε να κάνετε εκκίνηση.
Θα πρέπει να έχετε την παρακάτω εικόνα:
Αν ναι, ωραία, μπορείτε να συνεχίσετε.
Αν όχι, τότε δες τι έγραψα στον πρόλογο.
Στάδιο 2 - Δημιουργία του αρχείου εκκίνησης iPXE
Ξεκινάμε το προπαρασκευασμένο Ubuntu, ανοίγουμε ένα τερματικό και επικολλάμε αυτήν τη γραμμή:
git clone https://git.ipxe.org/ipxe.git ipxe
Εδώ θα ήθελα να κάνω μια μικρή παρατήρηση ότι ίσως χρειαστεί να προσθέσετε πακέτα στο 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
Εάν όλα είναι εντάξει, τότε θα πρέπει να λάβετε την ακόλουθη έξοδο στο τερματικό:
Και αρχείο 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
Αντέγραψα επίσης το αρχείο ipxe.efi, το μετονόμασα σε BOOTIA32.EFI και ρύθμισα την εκκίνηση για αυτό, για κάθε ενδεχόμενο. architecture:x86uefi
Αλλά σε γενικές γραμμές, αυτό δεν έχει νόημα, γιατί. Το αρχείο Bootmgfw.efi δεν υποστηρίζει x86
Ας ελέγξουμε τι έγινε.
Ωραία, το WDS στέλνει το αρχείο μας για λήψη και αυτό, με τη σειρά του, αναζητά τη διαμόρφωση κατά μήκος της διαδρομής: http://192.168.0.100/install.ipxe
Βήμα 4 - Διαμόρφωση μενού
Μεταβείτε στον ριζικό φάκελο του ιστότοπού σας.
Η προεπιλογή είναι: C:inetpubwwwroot
Δημιουργήστε ένα αρχείο κειμένου install.ipxe.
και ρυθμίστε το σύμφωνα με
Υπάρχει επίσης μια ρωσική γλώσσα
Μου άρεσε
Παράδειγμα διαμόρφωσης 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
.
Για να το κάνετε αυτό, πρέπει να προσθέσετε τύπους MIME στον πίνακα ελέγχου των υπηρεσιών IIS, σύμφωνα
με επεκτάσεις αρχείων που θα κατεβάσετε μέσω http.
Δεν έψαξα ποιος τύπος MIME είναι καλύτερος για αυτό το σκοπό και ρώτησα application/octet-stream
, μετά από το οποίο όλα λειτούργησαν.
Για αρχεία που δεν έχουν επέκταση, χρησιμοποιήστε μια τελεία.
Σαν αυτό:
Συμπέρασμα
Τελικά, έχουμε τη δυνατότητα εκκίνησης μέσω τοπικού δικτύου μέσω UEFI.
Εάν τα κάναμε όλα σωστά, τότε θα υπάρχει κάτι σαν αυτό το μενού επιλογής εκκίνησης:
Εάν έχετε προετοιμάσει τα βασικά εργαλεία και δεν θα ασχοληθείτε με τη διαμόρφωση, τότε χρειάζονται περίπου 10-20 λεπτά για να εφαρμόσετε αυτήν τη δυνατότητα.
Μου πήρε 2 εργάσιμες μέρες, γιατί. Χρειάστηκε να ψάξω πολύ στο google.
Επιτυχής υλοποίηση!
Σας ευχαριστώ για την προσοχή σας και ευχαριστώ πολύ εκείνους τους ανθρώπους των οποίων τα άρθρα με βοήθησαν!
Στο Habré είναι:
Πηγή: www.habr.com