Процес завантаження Windows NT 6 (Windows Vista і новіших версій) відрізняється від процесу завантаження попередніх версій Windows.
У цій статті, якщо не вказано інше, те, що сказано про Windows Vista, стосується також всіх пізніших операційних систем сімейства Windows NT. У Windows Vista завантажувальний сектор або UEFI завантажує диспетчер завантаження Windows (файл з іменем BOOTMGR або в системному, або в завантажувальному розділі), отримує доступ до сховища даних конфігурації завантаження та використовує інформацію для завантаження операційної системи. Потім BCD викликає завантажувач і, у свою чергу, переходить до ініціювання ядра Windows . Ініціалізація на цьому етапі відбувається аналогічно попереднім версіям Windows NT.[1]
Windows Vista представляє повну перебудову архітектури завантажувача операційної системи Windows.[2][3] Найдавніше відоме посилання на цю переглянуту архітектуру включено в слайди PowerPoint, які розповсюджувала Microsoft під час конференції Windows Hardware Engineering Conference 2004 року, коли операційна система мала кодову назву «Longhorn».[4] У цій документації згадується, що завантажувач операційної системи Windows зазнає значної реструктуризації, щоб підтримувати EFI та «виконати деяку серйозну переробку застарілого коду».[5] Нова архітектура завантаження повністю замінює архітектуру NTLDR, яка використовувалася в попередніх версіях Windows NT.[3]
Більшість кроків, що виконуються після завантаження ядра NT, включаючи ініціалізацію ядра та ініціалізацію користувацького простору, залишаються такими ж, як і в попередніх системах NT.[1] Рефакторинг у Winlogon призвів до того, що GINA була повністю замінена постачальниками облікових даних і графічними компонентами в Windows Vista і новіших версіях.[6]
Дані конфігурації завантаження (Boot Configuration Data)
Дані конфігурації завантаження (Boot Configuration Data — BCD) — це незалежна від прошивки база даних для даних конфігурації під час завантаження . Він використовується новим диспетчером завантаження Windows від Microsoft і замінює boot.ini, який використовувався NTLDR.
Дані конфігурації завантаження зберігаються у файлі даних, який має той самий формат, що і вулики реєстру Windows, і, в кінцевому підсумку, монтуються в розділі реєстру[HKEY_LOCAL_MACHINE\BCD00000][7] (з обмеженими дозволами[8]). Для завантаження UEFI файл знаходиться за адресою /EFI/Microsoft/Boot/BCD на системному розділі EFI. Для традиційного завантаження BIOS файл знаходиться в каталозі /boot/BCD активного розділу.[9]
Дані конфігурації завантаження можна змінити за допомогою інструменту командного рядка (bcdedit.exe), за допомогою редактора реєстру[7] (regedit.exe), за допомогою інструментів керування Windows або за допомогою інструментів сторонніх розробників, таких як EasyBCD, BOOTICE[10], або Visual BCD Editor[11].
Дані конфігурації завантаження містять пункти меню, які представлені диспетчером завантаження Windows (Windows Boot Manager), так само як boot.ini містив пункти меню, які були представлені NTLDR. Ці пункти меню можуть включати:
параметри завантаження Windows Vista та новіших версій, викликом winload.exe;
параметри відновлення Windows Vista та новіших версій із режиму глибокого сну, викликом winresume.exe;
параметри завантаження попередньої версії сімейства Windows NT шляхом виклику її NTLDR;
Дані конфігурації завантаження дозволяють сторонню інтеграцію, тому будь-хто може впровадити такі інструменти, як діагностика або параметри відновлення.
Завантажувачі
bootmgr
Під час запуску BIOS викликає код, що міститься в головному завантажувальному записі (MBR) жорсткого диску . Код завантаження з головного завантажувального запису (MBR) і код з запису завантаження тому (Volume Boot Record — VBR) залежать від операційної системи. У Microsoft Windows код завантаження MBR намагається знайти активний розділ (MBR становить лише 512 байт), а потім виконує код завантаження VBR активного розділу. Код завантаження VBR намагається знайти та виконати файл bootmgr з активного розділу.[12]
Диспетчер завантаження Windows викликає winload.exe — завантажувач операційної системи — щоб завантажити виконавчу програму ядра операційної системи (ntoskrnl.exe) і драйвери основних пристроїв. У цьому відношенні winload.exe функціонально еквівалентний функції завантажувача операційної системи NTLDR у попередніх версіях Windows NT. У системах UEFI файл називається winload.efi і завжди знаходиться за адресою \windows\system32 або \windows\system32\boot .
winresume.exe
Якщо комп'ютер нещодавно перейшов у режим глибокого сну, bootmgr замість цього викличе winresume.exe. У системах UEFI файл називається winresume.efi і завжди знаходиться за адресою \windows\system32 або \windows\system32\boot.[13]
З появою в Windows Vista нового менеджера завантаження багато компонентів були змінені; одним з них є меню Advanced Boot Options, яке надає параметри для розширених режимів завантаження (наприклад, безпечний режим). Через реалізацію швидкого завантаження, в Windows 8 і новіших версіях доступ до меню додаткових параметрів завантаження за замовчуванням вимкнено. Однак доступ все ще можливий, якщо модифікувати BCD. Ось можливі режими завантаження:
Безпечний режим — завантажує безпечний режим, режим завантаження з мінімальною кількістю драйверів і ресурсів, призначених для видалення шкідливих програм або заміни несправних драйверів.
Безпечний режим із мережею — завантажує безпечний режим разом із мережевими драйверами.
Безпечний режим із командним рядком — завантажує безпечний режим із командним рядком як оболонкою замість Windows Explorer . Провідник Windows все ще можна завантажити, ввівши explorer у командному рядку.
Увімкнути журнал завантаження — дозволяє записувати ntbtlog.txt, файл, який реєструватиме процес завантаження; список драйверів, які завантажилися, і драйверів, які ні.
Увімкнути відео з низькою роздільною здатністю — вимикає графічний драйвер за замовчуванням і використовує стандартний драйвер VGA. Призначений на випадок, якщо користувач змінив роздільну здатність на непридатний рівень (тобто 320×200 при низькій частоті оновлення <24 Гц, 60 Гц>)
Остання відома вдала конфігурація — завантажує конфігурацію на основі останнього успішного процесу завантаження. Призначений для випадку пошкодження реєстру. Цей режим видалено в Windows 8 і новіших версіях Windows.
Режим налагодження — завантажується під час завантаження налагоджувача ядра.
Вимкнути автоматичний перезапуск у разі збою системи — вимикає функцію автоматичного перезавантаження після появи синього екрану смерті .
Вимкнення драйвера захисту від зловмисного програмного забезпечення раннього запуску — ELAM попередньо перевіряє драйвери, необхідні для завантаження, на наявність підписів і фальсифікацій. Вимкнення ELAM має на меті дозволити завантаження під час помилкових перевірок драйверів, але також може дозволити завантажити підроблений драйвер.[14]
До меню ABO можна отримати доступ, швидко натиснувши або утримуючи F8 перед завантаженням Windows. Починаючи з Windows 8 на UEFI, до нього можна отримати доступ, лише натиснувши Перезавантажити, утримуючи клавішу Shift .
↑Overview of Boot Options in Windows : [арх. 21.04.2020] / Ted Hudek, Don Marshall, Eliot Graf ; Microsoft // Microsoft Docs Hardware Dev Center. — . — Дата звернення: 21 квітня 2020.