Процес завантаження 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)[ред. | ред. код]

Диспетчер завантаження Windows (BOOTMGR) із виділеною Windows 7 і параметрами для завантаження Windows Vista через BOOTMGR і XP через NTLDR.

Дані конфігурації завантаження (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
Тип команда
Розробник 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).

Дані конфігурації завантаження дозволяють сторонню інтеграцію, тому будь-хто може впровадити такі інструменти, як діагностика або параметри відновлення.

Завантажувачі[ред. | ред. код]

bootmgr[ред. | ред. код]

Під час запуску BIOS викликає код, що міститься в головному завантажувальному записі (MBR) жорсткого диску . Код завантаження з головного завантажувального запису (MBR) і код з запису завантаження тому (Volume Boot Record — VBR) залежать від операційної системи. У Microsoft Windows код завантаження MBR намагається знайти активний розділ (MBR становить лише 512 байт), а потім виконує код завантаження VBR активного розділу. Код завантаження VBR намагається знайти та виконати файл bootmgr з активного розділу.[12]

UEFI викликає bootmgfw.efi із системного розділу EFI під час завантаження.

winload.exe[ред. | ред. код]

Диспетчер завантаження 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]

Розширені параметри завантаження (Advanced Boot Options)[ред. | ред. код]

З появою в 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 .

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. а б The Windows NT 6 boot process / Jonathan de Boyne Pollard // Frequently Given Answers.
  2. Inside the Windows Vista Kernel – Startup Processes / Microsoft. — Дата звернення: 01.10.2010.
  3. а б Boot Configuration Data in Windows Vista : [DOCX] / Microsoft. — . — Дата звернення: 18 квітня 2015.
  4. Microsoft Longhorn : [арх. 21.04.2014] // Experience Longhorn. — Experience Longhorn.
  5. EFI and Windows 'Longhorn' : [PPT] : [арх. 09.06.2004] / Andrew Ritz. — Microsoft, 2004. — 21 May. — Дата звернення: 18 квітня 2015.
  6. Winlogon and GINA / Microsoft // MSDN. — Дата звернення: 4 грудня 2014.
  7. а б Russinovich, Mark (8 листопада 2011). Fixing Disk Signature Collisions. Mark's Blog. Microsoft Corporation. Microsoft TechNet. Архів оригіналу за 27 листопада 2020. Процитовано 5 лютого 2021.
  8. Why can't I edit the system BCD store via regedit?.
  9. Knowledge Base Article ID: 2004518 / Microsoft.
  10. BOOTICE board index / Pauly.
  11. Visual BCD Editor / Bo Yans.
  12. Boot Sequence of Windows Multi-Boot - Multibooters.com // www.multibooters.com. — Дата звернення: 19.11.2020.
  13. Overview of Boot Options in Windows : [арх. 21.04.2020] / Ted Hudek, Don Marshall, Eliot Graf ; Microsoft // Microsoft Docs Hardware Dev Center. — . — Дата звернення: 21 квітня 2020.
  14. Early launch antimalware - Win32 apps / QuinnRadich // docs.microsoft.com. — Дата звернення: 14.12.2021.