خوش آمدید!
این مقاله مراحلی را که باید برای افزودن قابلیت بوت UEFI به WDS خود دنبال کنید، شرح می دهد.
آن ها دستورالعمل های این مقاله فرض می کند که شما از قبل پیکربندی زیر را دارید:
1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu
همچنین، در اینجا اقداماتی شرح داده شده است که نتیجه مناسبی برای من به همراه نداشته است.
من آنها را برای تسهیل جستجو و صرفه جویی در وقت شما شرح دادم.
پیش گفتار
من یک WDS در محل کار با چیزهای بسیار خوبی ساختم، tk. خسته از دویدن مداوم با یک دسته فلش مموری و بازنویسی آنها.
این مقالات به هر حال به من کمک کردند:
و همه چیز خوب بود، تصاویر جدیدی برای بارگذاری اضافه شد، تصویر winPE با ویژگی های جدید پر شد و همه چیز کار کرد.
اما، همه دستگاهها از حالت بوت BIOS / Legacy پشتیبانی نمیکنند، یا اگر پشتیبانی میکنند، ممکن است گنجاندن آن در یک مکان بسیار غیر واضح باشد.
بله، و نصب ویندوز در حالت legacy، زمانی که امکان نصب در UEFI وجود دارد، جالب نیست.
در نتیجه تصمیم گرفتم قابلیت بوت شدن را به UEFI اضافه کنم و به گوگل رفتم.
اما من اطلاعات ساختاری در مورد نحوه دریافت 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
ما اوبونتو از پیش آماده شده را راه اندازی می کنیم، یک ترمینال باز می کنیم و این خط را می چسبانیم:
git clone https://git.ipxe.org/ipxe.git ipxe
در اینجا میخواهم یک نکته کوچک بگویم که ممکن است مجبور شوید بستههایی را به اوبونتو اضافه کنید که برای کامپایل 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
این همه برای اوبونتو است.
مرحله 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 روز کاری طول کشید، زیرا. مجبور شدم خیلی در گوگل سرچ کنم.
اجرای موفق!
از توجه شما متشکرم و از افرادی که مقالاتشان به من کمک کرد سپاسگزارم!
در هابره این است:
منبع: www.habr.com