Процес завантаження Windows NT 6
Процес завантаження 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 — BCD) — це незалежна від прошивки база даних для даних конфігурації під час завантаження . Він використовується новим диспетчером завантаження Windows від Microsoft і замінює boot.ini, який використовувався NTLDR.
Дані конфігурації завантаження зберігаються у файлі даних, який має той самий формат, що і вулики реєстру Windows, і, в кінцевому підсумку, монтуються в розділі реєстру[HKEY_LOCAL_MACHINE\BCD00000][7] (з обмеженими дозволами[8]). Для завантаження UEFI файл знаходиться за адресою /EFI/Microsoft/Boot/BCD
на системному розділі EFI. Для традиційного завантаження BIOS файл знаходиться в каталозі /boot/BCD
активного розділу.[9]
Тип | команда |
---|---|
Розробник | Microsoft |
Операційна система | Microsoft Windows |
Ліцензія | власницьке програмне забезпечення |
Вебсайт | docs.microsoft.com/en-us/windows-server/administration/windows-commands/bcdedit |
Дані конфігурації завантаження можна змінити за допомогою інструменту командного рядка (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;
- параметри завантаження та виконання запису завантаження з тому (Volume Boot Record).
Дані конфігурації завантаження дозволяють сторонню інтеграцію, тому будь-хто може впровадити такі інструменти, як діагностика або параметри відновлення.
Під час запуску BIOS викликає код, що міститься в головному завантажувальному записі (MBR) жорсткого диску . Код завантаження з головного завантажувального запису (MBR) і код з запису завантаження тому (Volume Boot Record — VBR) залежать від операційної системи. У Microsoft Windows код завантаження MBR намагається знайти активний розділ (MBR становить лише 512 байт), а потім виконує код завантаження VBR активного розділу. Код завантаження VBR намагається знайти та виконати файл bootmgr
з активного розділу.[12]
UEFI викликає bootmgfw.efi
із системного розділу EFI під час завантаження.
Диспетчер завантаження Windows викликає winload.exe
— завантажувач операційної системи — щоб завантажити виконавчу програму ядра операційної системи (ntoskrnl.exe) і драйвери основних пристроїв. У цьому відношенні winload.exe функціонально еквівалентний функції завантажувача операційної системи NTLDR у попередніх версіях Windows NT. У системах UEFI файл називається winload.efi
і завжди знаходиться за адресою \windows\system32
або \windows\system32\boot
.
Якщо комп'ютер нещодавно перейшов у режим глибокого сну, bootmgr
замість цього викличе winresume.exe
. У системах UEFI файл називається winresume.efi
і завжди знаходиться за адресою \windows\system32
або \windows\system32\boot
.[13]
З появою в Windows Vista нового менеджера завантаження багато компонентів були змінені; одним з них є меню Advanced Boot Options, яке надає параметри для розширених режимів завантаження (наприклад, безпечний режим). Через реалізацію швидкого завантаження, в Windows 8 і новіших версіях доступ до меню додаткових параметрів завантаження за замовчуванням вимкнено. Однак доступ все ще можливий, якщо модифікувати BCD. Ось можливі режими завантаження:
- Відремонтуйте свій комп'ютер — завантажує середовище відновлення Windows (WinRE або Windows RE)
- Безпечний режим — завантажує безпечний режим, режим завантаження з мінімальною кількістю драйверів і ресурсів, призначених для видалення шкідливих програм або заміни несправних драйверів.
- Безпечний режим із мережею — завантажує безпечний режим разом із мережевими драйверами.
- Безпечний режим із командним рядком — завантажує безпечний режим із командним рядком як оболонкою замість Windows Explorer . Провідник Windows все ще можна завантажити, ввівши
explorer
у командному рядку. - Увімкнути журнал завантаження — дозволяє записувати
ntbtlog.txt
, файл, який реєструватиме процес завантаження; список драйверів, які завантажилися, і драйверів, які ні. - Увімкнути відео з низькою роздільною здатністю — вимикає графічний драйвер за замовчуванням і використовує стандартний драйвер VGA. Призначений на випадок, якщо користувач змінив роздільну здатність на непридатний рівень (тобто 320×200 при низькій частоті оновлення <24 Гц, 60 Гц>)
- Остання відома вдала конфігурація — завантажує конфігурацію на основі останнього успішного процесу завантаження. Призначений для випадку пошкодження реєстру. Цей режим видалено в Windows 8 і новіших версіях Windows.
- Режим відновлення служб каталогів — режим завантаження, який використовується для перезавантаження контролера домену, якщо він не працює належним чином.
- Режим налагодження — завантажується під час завантаження налагоджувача ядра.
- Вимкнути автоматичний перезапуск у разі збою системи — вимикає функцію автоматичного перезавантаження після появи синього екрану смерті .
- Вимкнення драйвера захисту від зловмисного програмного забезпечення раннього запуску — ELAM попередньо перевіряє драйвери, необхідні для завантаження, на наявність підписів і фальсифікацій. Вимкнення ELAM має на меті дозволити завантаження під час помилкових перевірок драйверів, але також може дозволити завантажити підроблений драйвер.[14]
- Disable Driver Signature Enforcement — вимикає налаштування ядра, які забороняють завантажувати непідписані драйвери.
- Звичайне завантаження Windows
До меню ABO можна отримати доступ, швидко натиснувши або утримуючи F8
перед завантаженням Windows. Починаючи з Windows 8 на UEFI, до нього можна отримати доступ, лише натиснувши Перезавантажити, утримуючи клавішу Shift
.
- ↑ а б The Windows NT 6 boot process / Jonathan de Boyne Pollard // Frequently Given Answers.
- ↑ Inside the Windows Vista Kernel – Startup Processes / Microsoft. — Дата звернення: 01.10.2010.
- ↑ а б Boot Configuration Data in Windows Vista : [DOCX] / Microsoft. — . — Дата звернення: 18 квітня 2015.
- ↑ Microsoft Longhorn : [арх. 21.04.2014] // Experience Longhorn. — Experience Longhorn.
- ↑ EFI and Windows 'Longhorn' : [PPT] : [арх. 09.06.2004] / Andrew Ritz. — Microsoft, 2004. — 6 July. — Дата звернення: 18 квітня 2015.
- ↑ Winlogon and GINA / Microsoft // MSDN. — Дата звернення: 4 грудня 2014.
- ↑ а б Russinovich, Mark (8 листопада 2011). Fixing Disk Signature Collisions. Mark's Blog. Microsoft Corporation. Microsoft TechNet. Архів оригіналу за 27 листопада 2020. Процитовано 5 лютого 2021.
- ↑ Why can't I edit the system BCD store via regedit?.
- ↑ Knowledge Base Article ID: 2004518 / Microsoft.
- ↑ BOOTICE board index / Pauly.
- ↑ Visual BCD Editor / Bo Yans.
- ↑ Boot Sequence of Windows Multi-Boot - Multibooters.com // www.multibooters.com. — Дата звернення: 19.11.2020.
- ↑ Overview of Boot Options in Windows : [арх. 21.04.2020] / Ted Hudek, Don Marshall, Eliot Graf ; Microsoft // Microsoft Docs Hardware Dev Center. — . — Дата звернення: 21 квітня 2020.
- ↑ Early launch antimalware - Win32 apps / QuinnRadich // docs.microsoft.com. — Дата звернення: 14.12.2021.