Процес завантаження 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. Ці пункти меню можуть включати:
Дані конфігурації завантаження дозволяють сторонню інтеграцію, тому будь-хто може впровадити такі інструменти, як діагностика або параметри відновлення.
Під час запуску 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. Ось можливі режими завантаження:
explorer
у командному рядку.ntbtlog.txt
, файл, який реєструватиме процес завантаження; список драйверів, які завантажилися, і драйверів, які ні.До меню ABO можна отримати доступ, швидко натиснувши або утримуючи F8
перед завантаженням Windows. Починаючи з Windows 8 на UEFI, до нього можна отримати доступ, лише натиснувши Перезавантажити, утримуючи клавішу Shift
.