Какие файлы нужны для загрузки системы windows 10

2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 78

1

31.01.2022, 14:16. Показов 3276. Ответов 12


Студворк — интернет-сервис помощи студентам

Добрый день

Пользователь ушатал комп каким-то активатором. Теперь при загрузке система ругается на файл winload.efi, ошибка 0xc0000001
Восстановил BCD загрузчик, прописал нужный раздел в загрузочной записи. Но это не помогло.
Попытался извлечь из образа винды, файла install.esd файлы winload.efi и winload.exe, положил их в убитую систему в windows\system32 и windows\system32\boot — результата это не дало.
Винда 10 x86 версия не известна.

Кто знает, какие вообще файлы участвуют в загрузке системы, где они лежат в установленной системе и откуда их можно выгрузить из образа. Интересует всё от BCDBOOT до winload.efi. И как это работает. К сожалению в интернете подобной информации не нашёл.

Можно ли реанимировать систему, заменив все загрузочные файлы на оригинальные или тут уже без шансов?



0



5256 / 4203 / 1039

Регистрация: 29.08.2013

Сообщений: 26,580

Записей в блоге: 3

01.02.2022, 00:57

2

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

Можно ли реанимировать систему, заменив все загрузочные файлы на оригинальные

но не руками же
через sfc можно восстановить родные файлы

вопрос в другом — зачем? чего ради ты бьешся и тратишь время? ставишь новую винду и все



0



2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 78

01.02.2022, 10:28

 [ТС]

3

Цитата
Сообщение от qwertehok
Посмотреть сообщение

через sfc

Пробовал и sfc и dism — ошибок не найдено

Цитата
Сообщение от qwertehok
Посмотреть сообщение

ставишь новую винду и все

согласен

Цитата
Сообщение от qwertehok
Посмотреть сообщение

вопрос в другом — зачем?

для собственного развития)



0



5256 / 4203 / 1039

Регистрация: 29.08.2013

Сообщений: 26,580

Записей в блоге: 3

01.02.2022, 18:16

4

данные, как я понимаю, не важны
посоветую загрузиться с флэшки, слить данные и поставить винду поверх

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

для собственного развития)

этот путь не ведет никуда
для развития есть другие ветки



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

7457 / 4006 / 502

Регистрация: 13.03.2013

Сообщений: 14,709

Записей в блоге: 12

03.02.2022, 05:20

5

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

для собственного развития)

https://habr.com/ru/post/518972/

В остальном полностью солидарен с предыдущими ораторами: систему под снос.



0



2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 78

03.02.2022, 07:52

 [ТС]

6

Цитата
Сообщение от Maks
Посмотреть сообщение

https://habr.com/ru/post/518972/

спасибо. Ознакомлюсь.

Цитата
Сообщение от qwertehok
Посмотреть сообщение

поставить винду поверх

Данные нужны. По поводу винды поверх, мелкософт нас поимели много лет назад. Это XP легко можно было установить поверх, загрузившись прямо с диска. И все данные и настройки профиля сохранялись.
В семёрке и младше такую возможность усложнили. Установка с сохранением параметров пользователя производится методом обновления. Но этот метод доступен лишь при установке из-под винды (в которую надо войти само собой). При установке с флешки доступен лишь метод Выборочная: только установка WIndows со всеми вытекающими — создаётся новая голая винда, твоя учётка не сохраняется. Файлы будут лежать в Windows.old но настройки и сейвы игр…

Конечно, винда уже переустановлена. Однако вопрос классической установки «поверх» мертвеца с сохранением старой учётки остаётся открытым.



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8587 / 3017 / 507

Регистрация: 14.04.2011

Сообщений: 7,530

03.02.2022, 13:52

7

SFC /Scannow может проверить и исправить повреждённые системные файлы, если система не сборка от Васи Пупкина.



0



Maks

Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

7457 / 4006 / 502

Регистрация: 13.03.2013

Сообщений: 14,709

Записей в блоге: 12

03.02.2022, 14:14

8

При нарушении загрузки системы я обычно делаю так:
Загружаюсь с любого доступного дистрибутива Windows 10, Shift+F10, далее выбираю командную строку и выполняю команды:

Windows Batch file
1
2
3
4
5
bootrec /FixMBR
::перезаписать главную загрузочную запись (MBR) диска.
::&
bootrec /fixboot
::перезаписать загрузочную запись раздела (PBR)



0



5256 / 4203 / 1039

Регистрация: 29.08.2013

Сообщений: 26,580

Записей в блоге: 3

03.02.2022, 14:51

9

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

Файлы будут лежать в Windows.old но настройки и сейвы игр…

поэтому папку Мои документы (где лежат все сейвы) нужно перемещать на Д



0



Эксперт HardwareЭксперт WindowsАвтор FAQ

8587 / 3017 / 507

Регистрация: 14.04.2011

Сообщений: 7,530

03.02.2022, 15:05

10

При желании-необходимости, систему из Windows.old можно вернуть, восстановить врукопашную.



0



Робот сгибальщик

1183 / 516 / 110

Регистрация: 29.07.2020

Сообщений: 2,721

Записей в блоге: 7

03.02.2022, 16:30

11

Кроме

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

winload.efi

с расширением *.efi есть какой-нибудь файл?



0



0 / 0 / 0

Регистрация: 12.02.2022

Сообщений: 5

13.02.2022, 00:13

12

Получилось в итоге оживить ОС? Бьюсь с подобной проблеммой… sfc ошибок не находит…



0



2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 78

15.02.2022, 07:25

 [ТС]

13

Цитата
Сообщение от Maks
Посмотреть сообщение

и выполняю команды

прошли те времена. Сейчас уже все диски винда размечает в GPT и там команды несколько иные

Цитата
Сообщение от qwertehok
Посмотреть сообщение

поэтому папку Мои документы (где лежат все сейвы) нужно перемещать на Д

это знаем мы. Но попробуй объясни пользователю, да так, чтобы он не забывал это. Тем более ноут был личный, домашний.

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

восстановить врукопашную

не спорю. При

желании

и

свободном времени

всё можно.

Dutch777, да нет. Торопился человек, поэтому просто переустановили ОС и всё.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

15.02.2022, 07:25

13

2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 73

1

31.01.2022, 14:16. Показов 2153. Ответов 12


Добрый день

Пользователь ушатал комп каким-то активатором. Теперь при загрузке система ругается на файл winload.efi, ошибка 0xc0000001
Восстановил BCD загрузчик, прописал нужный раздел в загрузочной записи. Но это не помогло.
Попытался извлечь из образа винды, файла install.esd файлы winload.efi и winload.exe, положил их в убитую систему в windowssystem32 и windowssystem32boot — результата это не дало.
Винда 10 x86 версия не известна.

Кто знает, какие вообще файлы участвуют в загрузке системы, где они лежат в установленной системе и откуда их можно выгрузить из образа. Интересует всё от BCDBOOT до winload.efi. И как это работает. К сожалению в интернете подобной информации не нашёл.

Можно ли реанимировать систему, заменив все загрузочные файлы на оригинальные или тут уже без шансов?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

4730 / 3935 / 997

Регистрация: 29.08.2013

Сообщений: 25,235

Записей в блоге: 3

01.02.2022, 00:57

2

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

Можно ли реанимировать систему, заменив все загрузочные файлы на оригинальные

но не руками же
через sfc можно восстановить родные файлы

вопрос в другом — зачем? чего ради ты бьешся и тратишь время? ставишь новую винду и все

0

2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 73

01.02.2022, 10:28

 [ТС]

3

Цитата
Сообщение от qwertehok
Посмотреть сообщение

через sfc

Пробовал и sfc и dism — ошибок не найдено

Цитата
Сообщение от qwertehok
Посмотреть сообщение

ставишь новую винду и все

согласен

Цитата
Сообщение от qwertehok
Посмотреть сообщение

вопрос в другом — зачем?

для собственного развития)

0

4730 / 3935 / 997

Регистрация: 29.08.2013

Сообщений: 25,235

Записей в блоге: 3

01.02.2022, 18:16

4

данные, как я понимаю, не важны
посоветую загрузиться с флэшки, слить данные и поставить винду поверх

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

для собственного развития)

этот путь не ведет никуда
для развития есть другие ветки

0

Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

03.02.2022, 05:20

5

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

для собственного развития)

https://habr.com/ru/post/518972/

В остальном полностью солидарен с предыдущими ораторами: систему под снос.

0

2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 73

03.02.2022, 07:52

 [ТС]

6

Цитата
Сообщение от Maks
Посмотреть сообщение

https://habr.com/ru/post/518972/

спасибо. Ознакомлюсь.

Цитата
Сообщение от qwertehok
Посмотреть сообщение

поставить винду поверх

Данные нужны. По поводу винды поверх, мелкософт нас поимели много лет назад. Это XP легко можно было установить поверх, загрузившись прямо с диска. И все данные и настройки профиля сохранялись.
В семёрке и младше такую возможность усложнили. Установка с сохранением параметров пользователя производится методом обновления. Но этот метод доступен лишь при установке из-под винды (в которую надо войти само собой). При установке с флешки доступен лишь метод Выборочная: только установка WIndows со всеми вытекающими — создаётся новая голая винда, твоя учётка не сохраняется. Файлы будут лежать в Windows.old но настройки и сейвы игр…

Конечно, винда уже переустановлена. Однако вопрос классической установки «поверх» мертвеца с сохранением старой учётки остаётся открытым.

0

Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

03.02.2022, 13:52

7

SFC /Scannow может проверить и исправить повреждённые системные файлы, если система не сборка от Васи Пупкина.

0

Maks

Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

03.02.2022, 14:14

8

При нарушении загрузки системы я обычно делаю так:
Загружаюсь с любого доступного дистрибутива Windows 10, Shift+F10, далее выбираю командную строку и выполняю команды:

Windows Batch file
1
2
3
4
5
bootrec /FixMBR
::перезаписать главную загрузочную запись (MBR) диска.
::&
bootrec /fixboot
::перезаписать загрузочную запись раздела (PBR)

0

4730 / 3935 / 997

Регистрация: 29.08.2013

Сообщений: 25,235

Записей в блоге: 3

03.02.2022, 14:51

9

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

Файлы будут лежать в Windows.old но настройки и сейвы игр…

поэтому папку Мои документы (где лежат все сейвы) нужно перемещать на Д

0

Эксперт HardwareЭксперт WindowsАвтор FAQ

8447 / 2969 / 494

Регистрация: 14.04.2011

Сообщений: 7,362

03.02.2022, 15:05

10

При желании-необходимости, систему из Windows.old можно вернуть, восстановить врукопашную.

0

Робот сгибальщик

831 / 456 / 95

Регистрация: 29.07.2020

Сообщений: 2,346

Записей в блоге: 7

03.02.2022, 16:30

11

Кроме

Цитата
Сообщение от jkom-18rus
Посмотреть сообщение

winload.efi

с расширением *.efi есть какой-нибудь файл?

0

0 / 0 / 0

Регистрация: 12.02.2022

Сообщений: 5

13.02.2022, 00:13

12

Получилось в итоге оживить ОС? Бьюсь с подобной проблеммой… sfc ошибок не находит…

0

2 / 2 / 0

Регистрация: 26.02.2016

Сообщений: 73

15.02.2022, 07:25

 [ТС]

13

Цитата
Сообщение от Maks
Посмотреть сообщение

и выполняю команды

прошли те времена. Сейчас уже все диски винда размечает в GPT и там команды несколько иные

Цитата
Сообщение от qwertehok
Посмотреть сообщение

поэтому папку Мои документы (где лежат все сейвы) нужно перемещать на Д

это знаем мы. Но попробуй объясни пользователю, да так, чтобы он не забывал это. Тем более ноут был личный, домашний.

Цитата
Сообщение от Андрей1224
Посмотреть сообщение

восстановить врукопашную

не спорю. При

желании

и

свободном времени

всё можно.

Dutch777, да нет. Торопился человек, поэтому просто переустановили ОС и всё.

0

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

15.02.2022, 07:25

13

В современных версиях Windows информация для запуска операционной системы храните в файле конфигурации загрузки BCD (Boot Configuration Data). В этом файле хранятся данные об установленной Windows и параметрах ее загрузки. Если файл BCD удален или поврежден, Windows перестает загружаться. Также вы не сможете загрузить Windows, если повреждена MBR запись на жестком диске. В этой статье мы покажем, как корректно пересоздать файл хранилища данных конфигурации загрузки BCD и
Master Boot Record
(MBR) на примере Windows 10 и 11.

Содержание:

  • Ошибка “The boot configuration data file is missing some required information”
  • Автоматическое восстановление конфигурации загрузчика Windows
  • Идентификация разметки дисков и букв томов
  • Восстановление загрузочного сектора MBR в Windows 10/11
  • Пересоздание BCD файла загрузчика Windows 10

Ошибка “The boot configuration data file is missing some required information”

Если файл BCD поврежден, отсутствует, если вы удалили / отформатировали отдельный раздел диска с меткой System Reserved (и размером 500Мб), специальный OEM раздел, то скорее всего при попытке загрузить Windows появится такое сообщение:

Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: BootBCD
Error code: 0xc0000034

The Boot Configuration Data file is missing some required information
Также ошибка может выглядеть так:

The Boot Configuration Data for your PC is missing or contain errors.
File: bootbcd
Error Code: 0xc000000f

При повреждении MBR может быть ошибка No operating system found.

ошибка 0xc000000f отсутсвует файл bootbcd при загрузке Windows 10bcd-

При появлении такой ошибки, в первую очередь попробуйте исправить проблему с загрузкой ОС с помощью режима автоматического восстановления (Startup Repair), который можно запустить из среды восстановления Windows RE.

Совет. Желательно периодически проверять работоспособность среды WinRE, и если она не работает, воспользоваться для ее восстановления методикой из статьи Восстановление среды WinRE в Windows.

Если автоматическое восстановление с помощью Startup Repair не помогло решить проблему, вам нужно загрузиться с загрузочного или установочного диска с Windows или в среде WinRe (Repair your computer -> Troubleshoot -> Advanced options -> Command Prompt), запустить командную строку и попробовать полностью пересоздать файл конфигурации загрузчика BCD и обновить MBR запись.

Advanced options -> Command Prompt

В этом примере я буду использовать установочный диск с Windows 10. Выберите в настройках BIOS первичным загрузочным устройство DVD диск или USB флешку с дистрибутивом Windows (в зависимости от того, с какого устройства вы хотите загрузить компьютер). Загрузитесь с установочного диска и на экране выбора языка установки нажмите сочетание клавиш Shift+F10. Перед вами откроется консоль командной строки.

Попробуйте восстановить BCD файл автоматически, выполнив команду:

bootrec /RebuildBCD

Перезагрузите компьютер и проверьте, загружается ли Windows (не забудьте изменить приоритет загрузочных устройств в BIOS). Если Windows не загружается, еще раз загрузитесь с установочного диска и откройте окно командной строки.

Идентификация разметки дисков и букв томов

Очень важно. Все инструкции, описанные ниже, подходят для обычных компьютеров с BIOS (или загружающихся в режиме UEFI legacy) и MBR таблицей разделов. На компьютерах с UEFI прошивками для пересоздания BCD нужно использовать следующе инструкци: восстановлению EFI загрузчика в Windows 10 или восстановление удаленного EFI раздела в Windows.

Как понять, используется ли у вас BIOS или UEFI система? Проще всего проверить тип таблицы разделов на диске, на котором установлена Windows: GPT или MBR. Для этого выполните команду:

diskpart

Затем выполните:

list disk

  • Если у диска в столбце Gpt указана звездочка (*), значит на диске используется таблица разделов GPT. Это значит, что у вас компьютер с UEFI, и для восстановления загрузчика нужно использовать статью по ссылке выше.
  • Если в столбце GPT звездочка отсутствует, значит у вас на диске таблица разделов MBR, и вы можете продолжить следовать данной инструкции.

проверить тип разметки диска gpt или mbr

Далее вам нужно идентифицировать локальные диски и разделы системы (скорее всего назначенные им буквы дисков будут отличаться от дисков, которые вы видели при работе в Windows). Проще всего это сделать с помощью утилиты diskpart. Выполните следующие команды:

diskpart
list vol

diskpart: list volumes

Перед вами появится список разделов в системе, назначенные им буквы дисков и их размер. В нашем случае к компьютеру подключен 1 жесткий диск, на котором имеются всего два раздела:

  • Раздел System Reserved размером 500 Мб, которому назначена буква диска C:. На этом небольшом служебном разделе по-умолчанию хранится файл конфигурации загрузки BCD (подробнее)
  • NTFS раздел размером 39 Гб, которому назначена буква D:. На этом разделе находится установленная Windows, программы и данные пользователя.

Важно. Запомните буквы дисков, назначенные разделам. Данные буквы дисков будут использоваться в последующих командах.

Восстановление загрузочного сектора MBR в Windows 10/11

С помощью утилиты bootrec.exe можно перезаписать данные в MBR и загрузочном секторе, поместим в них ссылки на загрузчик Windows (bootloader).

Попробуйте перезаписать основную загрузочную запись (MBR) системного раздела для совместимости с загрузчиком Windows (существующая таблица разделов не перезаписывается).

bootrec.exe /fixmbr

Добавьте в загрузочные секторы диска код для загрузки файла bootmgr ( диспетчера загрузки Windows):

bootsect.exe /nt60 all /force

Прежде, чем идти далее, попробуйте автоматически пересоздать конфигурацию загрузчика BCD командами (это самый простой способ для начинающих):

bootrec /FixBoot
– команда создает новый загрузочный сектор на системном разделе (перезаписывает загрузочную запись раздела PBR).
bootrec /ScanOs
– просканировать диски и найти установленные копии Window, которых нет в хранилище конфигурации загрузки

В случае успешного сканирования появится запрос на добавление записей о найденный Windows в BCD:

Scanning all disks for Windows installations.  
Please wait, since this may take a while...  
Successfully scanned Windows installations. 
Total identified Windows installations: 1 [1] D:Windows 
Add installation to boot list? Yes/No/All:

bootrec /RebuildBcd
– пересоздать хранилище конфигурации загрузкика, добавить в BCD найденные на компьютере копии Windows/

После этого перезагрузите компьютер и проверьте загрузку Windows. Если ОС не загружается, следуйте инструкции.

Если команда bootsect.exe не найдена, попробуйте указать полный путь к ней:
X:bootbootsect.exe /nt60 all /force

bootsect.exe nt60 all force

Пересоздание BCD файла загрузчика Windows 10

Далее с помощью команды BCDedit нужно создать новый файл с конфигурацией загрузчика (предполагается, что у вас нет резервной копии BCD).

Ваши дальнейшие действия зависят от того, есть ли на диске отдельный раздел System Reserved или нет. В командной строке выполните:

diskpart
list vol

Проверьте, есть ли на диске компьютера системный раздел System Reserved. Его можно идентифицировать по метке тома, либо более точнее по размеру (500 Мб для Windows 10+, 350 Мб для Windows 8.1 и 100 Мб для Windows 7).

проверить есть ли раздел system reserved в Windows

  • Если раздела нет (вы случайно удалили его), можно хранить конфигурацию загрузчика BCD на основном диске, где находится каталог Windows. Чтобы создать конфигурационные файл загрузчика BCD и Bootmgr на указанном диске, выполните команду:
    bcdboot C:Windows /S C:

    Должно появится сообщение
    Boot files successfully created
    .

  • Если раздел System Reserved у вас имеется, удалите старый (поврежденный) файл BCD и создайте вместо него новый:
    del c:bootbcd

Если разделу System Reserved не назначена буква диска (по-умолчанию), вы можете сами назначить ее с помощью diskpart.

Запустите:
diskpart

Выберите диск (в моем случае в компьютере имеется всего один жесткий диск, а вы можете вывести список дисков командой list disk):
select disk 0

На скриншота выше видно, что раздел с меткой System Reserverd называется Volume 1. Выберите его:
select volume 1

Назначьте букву диска (я назначил букву C:, но вы можете использовать любую другую букву, в этом случае измените путь в следующих командах):
assign letter C:

exit

Создайте временный пустой файл bcd.tmp:
bcdedit /createstore c:bootbcd.tmp

Создайте запись для диспетчера загрузки bootmgr:
bcdedit.exe /store c:bootbcd.tmp /create {bootmgr} /d "Windows Boot Manager"

Импортируйте в BCD настройки из файла bcd.tmp:
bcdedit.exe /import c:bootbcd.tmp

Если команда bcdedit возвращает ошибку (
Ошибка создания хранилища. Отказано в доступе, access denied
) при доступе к файлу BCD, попробуйте снять с него атрибуты скрытый, read-only и системный:

attrib C:BootBCD -s -h -r

Укажите, что загрузчик находится на служебном разделе System Reserved (ему назначена буква диска C: )
bcdedit.exe /set {bootmgr} device partition=c:

Настройте время ожидания при выборе ОС:
bcdedit.exe /timeout 10

Удалите временный файл:
del c:bootbcd.tmp

bcdedit.exe /set {bootmgr} device partition=c:Итак, вы создали пустой BCD файл с параметрами загрузчика. Теперь в него нужно добавить записи об установленных на диске Windows .
Создайте в хранилище BCD новую запись для Windows 10:
bcdedit.exe /create /d "Windows 10" /application osloader

Команда должна вернуть уникальный идентификатор (GUID) данной записи загрузчика:

The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.

The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.

Укажем, что bootmgr должен использовать данную запись по-умолчанию (после истечения времени ожидания при выборе ОС, для загрузки будет используется именно эта запись).

bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}

Теперь в новой записи загрузчика осталось указать пути к имеющейся на диске установленной копии Windows 10. Ранее мы определили, что в среде WinPE диску с установленной Windows присвоена буква D:. Используйте эту букву диска в следующих командах:

bcdedit.exe /set {default}device partition=d:
bcdedit.exe /set {default} osdevice partition=d:
bcdedit.exe /set {default} path Windowssystem32winload.exe
bcdedit.exe /set {default} systemroot Windows

Осталось сделать данную загрузочную запись в BCD видимой (по умолчанию она скрыта):
bcdedit.exe /displayorder {default} /addlast

bcdedit.exe /displayorder {default} /addlast

Итак, мы полностью пересоздали загрузчик Windows 10 (обновили файл BCD и перезаписали загрузочный сектор MBR).

Теперь нужно сделать раздел, на котором находится файл BCD с конфигурацией загрузчика активным (BIOS передает управлению загрузчику ОС с активным MBR раздел). Допустим, разделы на вашем диске распределены так.

  • Volume 0 – загрузочная/установочная флешка (ISO образ) диск, с которого вы загрузили компьютер
  • Volume 1 – раздел System Reserved с BCD загрузчиком (размер 500 Мб)
  • Volume 2 – раздел с файлами Windows (здесь находятся каталог Windows, Program Files, Users и т.д.)

diskpart список разделов на диске

В этом примере нужно сделать активным раздел Volume 1 (в вашем случае определите номер раздела самостоятельно). Сделать раздел активным можно с помощью diskpart:

diskpart
list disk
sel disk 0
list vol
select volume 1

(файлы bootmgr и «BootBCD» находятся на этом разделе)
active
exit

Проверьте, что раздел volume 1 теперь активный:

select vol 1
detail partition

Все верно (
Active: Yes
).

diskpart сделать раздел активным active:yes

Теперь вы можете перезагрузить компьютер и убедится, что Windows загружается в штатном режиме.

Здравствуйте админ, как произвести восстановление загрузчика Windows 10? Совсем не загружается операционная система на новом ноутбуке с БИОСом UEFI.

С чего всё началось. Обновил на новом ноутбуке Windows 8.1 до Windows 10, пользовался новой операционной системой два месяца и всё было нормально, но вчера при завершении работы компьютера система вывела окно «Идет установка обновлений. Не выключайте компьютер…», но я сильно устал и просто выключил ноутбук через кнопку Power, затем пошёл спать, а сегодня с утра ноутбук загрузился с ошибкой — File:EFIMicrosoftBootBCD.

Загрузил ноутбук с установочного диска Windows 10 и зашёл в Дополнительные параметры, выбрал средство «восстановление при загрузке», но оно не помогло, вышла ошибка «Восстановление при загрузке не удалось восстановить компьютер». Поискал информацию в интернете, все говорят восстанавливай загрузчик Windows 10! Где он хотя бы находится этот загрузчик и смогу я его восстановить самостоятельно? Также хотелось бы узнать, почему это всё произошло.

Автор Владимир.

Привет друзья! Причин, по которым файлы загрузки Windows 10 могут стать неработоспособными достаточно много. Это и работа вредоносных программ, ошибки файловой системы, бэд-блоки на жёстком диске, установка операционных систем в неправильной последовательности, то есть сначала устанавливаем младшую Win 10, затем старшую Win XP, не последними в этом списке будут неправильные действия пользователя при работе за компьютером — не рекомендуется прерывать установку обновлений Windows. Но что случилось, то случилось и вопрос теперь в другом — как будем восстанавливать загрузчик системы.

Важное примечание: Друзья, способы восстановления загрузчика на простых компьютерах и новых ноутбуках с интерфейсом UEFI отличаются. Если у вас обычный стационарный компьютер без БИОСа UEFI или у вас этот интерфейс выключен, то примените в первую очередь способ №1 и если он не поможет, то попробуйте ещё способ №4 и №5. Для новых ноутбуков с включённой технологией EFI примените способы №1, 2, 3.

Давайте начнём процесс восстановления загрузчика с того, что я сначала покажу вам, где он находится.

Если вы читали нашу статью: — Что содержат скрытые разделы ноутбука с Windows 10, то знаете, что файлы загрузки Windows 10 располагаются на скрытом шифрованном (EFI) системном разделе отформатированном в файловую систему FAT32, размер 200-300 Мб. 

Управление дисками компьютера

Данный раздел не имеет буквы и чтобы посмотреть находящиеся на нём файлы нужно запустить командную строку от имени администратора и ввести команды:

diskpart

lis vol (выводим в список все разделы на жёстком диске).

sel vol 5 (этой командой выбираем Том 5, так как именно он является скрытым шифрованном (EFI) системным разделом FAT32, размер 260 Мб).

assign (этой командой разделу присваивается буква)

exit (выходим из diskpart)

Открываем проводник и видим, что скрытому разделу присвоена буква (I:).

Войти в него всё равно не получится, но посмотреть содержимое можно так:

Запускаем командную строку и вводим команду: 

dir I:efimicrosoftboot (где I:, буква присвоенная скрытому разделу),

открывается содержимое папки EFIMicrosoftBoot, видим в ней файлы загрузчика Windows 10, в том числе и файл данных конфигурации загрузки (BCD). Именно с этим файлом проблемы у нашего читателя, судя по его ошибке. 

Посмотреть файлы загрузчика Windows 10 можно не только в командной строке, но и с помощью файлового менеджера Total Commander. Запустите его и откройте Конфигурацию—>Настройка,

затем в окне Содержимое панелей, отметьте галочками пункты Показывать скрытые файлы и Показывать системные файлы, нажмите Применить и ОК.

Выберите букву диска скрытого раздела, в нашем случае (I:) и вы увидите все файлы загрузчика Windows 10 в графическом отображении.

Вы даже можете посмотреть содержимое файла данных конфигурации загрузки (BCD), для этого нужно просто ввести в командной строке, запущенной от администратора, команду bcdedit. 

Если у вас ноутбук с Windows 10, то загружаемся с загрузочной флешки Windows 10. В начальном окне установки системы жмём клавиатурное сочетание «Shift+F10»,

открывается окно командной строки.

Вводим команды:

diskpart

list vol (выводим в список все существующие разделы жёсткого диска, можно заметить, что разделу с операционной системой Windows 10 присвоена буква C:)

exitыходим из diskpart)

bcdboot.exe C:Windows (этой командой мы восстанавливаем содержимое хранилища загрузки Windows 10. Осторожно! У вас вместо C: может быть другая буква, смотрите букву раздела с файлами операционной системы).

  • Примечание: Друзья, именно этой командой, при помощи утилиты bcdboot, установщик Windows 10 создает при установке системы папку EFIMicrosoftBoot, затем копирует в нее файлы загрузки и формирует конфигурацию загрузки (BCD).

Файлы загрузки Win 10 успешно восстановлены!

В некоторых случаях у вас может выйти ошибка при вводе последней команды, тогда нужно поступить по другому, просто взять и форматировать скрытый шифрованный (EFI) системный раздел, затем определённой командой записать на него файлы загрузки Windows 10 заново, подробно об этом написано в способе №2.

Опять загружаемся с загрузочной флешки Win 10, в начальном окне установки системы жмём «Shift+F10». В командной строке вводим:

diskpart

list vol (выводит список всех доступных томов)

sel vol 5 (выбираем Том 5 (файловая система FAT32, размер 260 МБ) шифрованный (EFI) системный раздел, содержащий все файлы загрузчика Windows 10

format fs=FAT32 (производим форматирование выбранного тома в файловую систему FAT32 )

exit (выходим из командной строки).

Создаём для Windows 10 новые файлы загрузки командой.

bcdboot.exe C:Windows (Осторожно! У вас вместо C: может быть другая буква, смотрите букву раздела с файлами операционной системы). 

Файлы загрузки успешно созданы!

Друзья, при определённых обстоятельствах при вводе последней команды bcdboot.exe C:Windows, где (C:) раздел с установленной операционной системой Windows 10 у вас может выйти ошибка «Сбой при копировании файлов загрузки»,

в этом случае нужно совсем удалить шифрованный (EFI) системный раздел и создать его заново, если у вас такая ситуация, то переходите по ссылке и читайте нашу статью.

Форматируем скрытый раздел System Reserved (Зарезервировано системой, объём 350 МБ) и создаём его заново.

Если у вас обычный стационарный компьютер без БИОСа UEFI, то загружаемся в среду восстановления и вводим команды:
diskpart
lis vol (выводим все разделы накопителей подключённых к компьютеру в список).
sel vol 1 (Том 1, это и есть наш скрытый раздел System Reserved, выбираем его этой командой).
format fs=NTFS (форматируем его в файловую систему NTFS).
exit
bcdboot D:Windows (создаём заново файлы загрузки на скрытом разделе System Reserved для Windows 10, так как буква диска операционной системы в среде восстановления (D:)).
Файлы загрузки успешно созданы.

Удаляем скрытый раздел System Reserved (Зарезервировано системой, объём 350 МБ) и создаём его заново.

В некоторых случаях форматирование скрытого раздела System Reserved с файлами загрузки системы не поможет, тогда его нужно удалить и создать заново.

Загружаемся в среду восстановления и вводим команды:

diskpart

lis vol (выводим все разделы накопителей подключенных к компьютеру в список).

sel vol 1 (Том 1, это и есть наш скрытый раздел System Reserved, выбираем его этой командой). 

del vol (удаляем его образуя нераспределённое пространство на жёстком диске)

lis dis (выводим список дисков подключенных к компьютеру)

sel dis 0 (выбираем единственный Диск 0)

create par primary size=350 (создаём заново скрытый раздел System Reserved).

format fs=NTFS (форматируем его в файловую систему NTFS).

activ (делаем активным).

assign (присваиваем букву).

lis vol (выводим все разделы накопителей подключенных к компьютеру в список).

exit

bcdboot D:Windows (создаём заново файлы загрузки на скрытом разделе System Reserved для Windows 10, так как буква диска операционной системы в среде восстановления (D:)).

Файлы загрузки успешно созданы

Статьи по этой теме: 

  1. Как автоматически восстановить загрузку Windows 10 с помощью установочной флешки Windows 7
  2. Как запустить Windows без загрузчика: используем Live-диск by Sergei Strelec
  3. Восстановление загрузчика EFI-систем Windows с помощью Live-диска by Sergei Strelec

priplyili-s-windows-10Доброго времени!

Несмотря на то, что Windows 10/11 стали очень надежными системами (хотя бы, если сравнить с Windows XP…), однако, и они не застрахованы от различных проблем. Одна из наиболее частых и болезненных — отказ ОС загружаться… 👀

Чаще всего Windows не загружается после того, как вы установили вторую ОС на другой раздел диска, возможно обновили систему, подключили еще один жесткий диск (или SSD), инсталлировали определенный софт… В редких случаях, проблема возникает из-за некорректной работы антивируса.

В этой статье покажу несколько способов, как можно восстановить загрузчик и вернуть ОС Windows 10/11 к «жизни». Думаю, информация будет актуальна для большинства начинающих пользователей…

*

📌 Дополнение!

инструкция по восстановлению windows 10

Возможно, вам пригодится статья о способах восстановления Windows 10 (о Windows 11 — в этой заметке).

*

Содержание статьи

    ускорение ПК

  • 1 Восстановление загрузки Windows 10, 11
    • 1.1 Автоматическое восстановление
    • 1.2 Ручное восстановление (с помощью командной строки)
    • 1.3 Универсальный способ 👌
    • 1.4 Что делать, если всё предыдущее не помогло
  •  → Задать вопрос | дополнить 

Восстановление загрузки Windows 10, 11

В этой статье я исхожу из того, что ваша ОС Windows совсем не загружается, выдавая различные ошибки, например, «No bootable device found…», «An operating system wasn’t found», «reboot and select proper…» и др.

Кстати, нам для работы будет необходима загрузочная (или как ее называют, установочная) флешка с Windows 10 (11).

The system cannot find any bootable devices — система не может найти на одного загрузочного устройства

The system cannot find any bootable devices — система не может найти на одного загрузочного устройства (один из примеров проблемы)

*

📌 Инструкция!

инструкция по флешке с windows 10

Создание загрузочной флешки Windows 10, 11 для UEFI и BIOS — пошаговая инструкция для начинающих

*

Вообще, ее очень рекомендуют создавать заранее (и не терять!), т.к. она не раз и не два пригодится при различных проблемах. Если флешки нет, создайте ее на другом ПК/ноутбуке.

📌 Важно!

При проблемах с загрузкой ОС Windows, первое, что сделайте — это проверьте, чтобы в дисководах не было оставленных дисков (дискет), от USB-портов (да и вообще от ПК/ноутбука) отключите все накопители и устройства (оставьте минимум: мышка, клавиатура).

Также проверьте настройки BIOS/UEFI (попробуйте сбросить их до оптимальных). Особенно, на это стоит обратить внимание при установке (и любых манипуляциях) с накопителями. Нередко, когда все дело в том, что в BIOS неправильно указан диск, с которого производить загрузку ОС.

В помощь:

  1. Как сбросить настройки БИОС
  2. Как настроить BIOS для загрузки с флешки или диска

*

Автоматическое восстановление

Наиболее актуальный и простой способ вернуть Windows к нормальной работе. Самое важное, что от пользователя требуется нажать всего несколько пунктов в меню, вызываемого с помощью установочной флешки.

*

Все действия рассмотрю по шагам (чтобы каждый смог сориентироваться):

  1. Вставляем загрузочную флешку с Windows в USB-порт;
  2. Перезагружаем/включаем компьютер (ноутбук);
  3. Вызываем BOOT меню для выбора носителя, с которого будет загружаться компьютер/ноутбук. Альтернативный вариант: можно настроить BIOS для загрузки с флешки (если вызвать BOOT меню не получается);
  4. Первый экран при загрузке с установочного носителя с Windows — это выбор языка. Жмем кнопку «далее»;

    Выбор языка - первый экран при загрузке с флешки

    Выбор языка — первый экран при загрузке с флешки

  5. Затем вместо кнопки «Установить» нажмите в углу экрана ссылку «Восстановление системы». Отмечу, что эта ссылка есть не всегда, например, ее может не быть, если вы используете различные «сборники» Windows от умельцев. Вообще, свои рекомендации по созданию загрузочного носителя высказывал здесь;

    Восстановление системы (при установке ОС)

    Восстановление системы (при установке ОС)

  6. После чего появиться «синий» экран с несколькими вариантами дальнейших действий. Нужно выбрать «Поиск и устранение неисправностей».

    выбор действия - поиск и устранение неисправности

    выбор действия — поиск и устранение неисправности

  7. Далее укажите функцию «Восстановление при загрузке» — это поможет устранить причины и неполадки, которые мешают загрузке ОС Windows.

    Устранение неполадок, мешающих загрузке Windows

    Устранение неполадок, мешающих загрузке Windows

  8. Собственно, через небольшой промежуток времени, вам должны представить уведомление о том, что система восстановлена (либо, что нет и возникли такие-то ошибки).
  9. Кстати, отмечу, что в ряде случаев, даже если уведомление сообщает, что «что-то там не получилось» — всё равно попробуйте перезагрузить компьютер и загрузить Windows. Нередко, когда даже после «не успешной» процедуры восстановления — всё начинало работать в штатном режиме…

*

Если описанный выше способ не помог, попробуйте ручной способ (с помощью командной строки 👇). Он немного более заморочный, но в нем тоже нет ничего сложного — запустить его также сможет любой пользователь…

*

Ручное восстановление (с помощью командной строки)

📌 Вот здесь более подробно рассмотрен этот вариант, рекомендую!

*

  1. Первые пункты (1, 2, 3) выполняются аналогично, как в автоматическом восстановлении (ссылки приводил выше);
  2. После того, как увидите первый экран с выбором языка (загрузившись с установочной флешки), нажмите сочетание кнопок Shift+F10 (должна запуститься командная строка!);
  3. Далее нам необходимо узнать, какая буква у диска с вашей Windows 10 (загрузившись с флешки — далеко не факт, что это будет диск «C:»). Для этого поочередно введите три команды: diskpart, list volume, exit. В моем случае, буква диска оказалась «C:» (в вашем случае, буква диска может отличаться).

    Командная строка - просмотр дисков, поиск буквы диска с Windows

    Командная строка — просмотр дисков, поиск буквы диска с Windows

  4. Затем введите команду bcdboot c:windows (обратите внимание, что вместо c:, возможно, нужно будет указать d:, и команда будет выглядеть так: bcdboot d:windows).

    Файлы загрузки успешно созданы

    Файлы загрузки успешно созданы

  5. Если восстановление успешно прошло — вы увидите сообщение «Файлы загрузки успешно созданы» (подобно скриншоту выше). Кстати, если у вас несколько ОС Windows на разных разделах диска — то команду из предыдущего пункта, вы можете ввести несколько раз, меняя букву диска.

*

Универсальный способ 👌

Этот способ хорош тем, что помогает восстановить загрузку Windows при самых разных случаях: даже если слетела файловая система загрузочного раздела! Разумеется, он универсален и подходит для GPT— и MBR-дисков.

Для работы нам понадобиться спец. LiveCD-флешка (👉 по этой ссылке вы можете узнать как ее подготовить, и как с нее загрузиться).

*

После загрузки с LiveCD-флешки — необходимо для начала запустить программу MiniTool Partition Wizard. Пример ниже на скриншоте. 👇

Запускаем программу MiniTool Partition Wizard

Запускаем программу MiniTool Partition Wizard

Далее нужно найти диск, на котором установлена Windows (обычно в его начале должен быть загрузочный раздел на 100-512 МБ). В моем примере ниже 👇 у него нет файловой системы — помечен как «Незанятый».

В этом случае нужно создать раздел, кликнув ПКМ по этому не занятому месту… (если у вас с этим разделом всё в порядке — то этот шаг пропускаете). Для GPT-диска — необходимо задать файловую систему FAT32, для MBR — NTFS, и сделать его активным!

Создать раздел (если GPT — FAT32, если MBR — NTFS, активный)

Создать раздел (если GPT — FAT32, если MBR — NTFS, активный)

Не забудьте нажать «Применить», чтобы MiniTool Partition Wizard выполнила отмеченные операции.

Применить изменения

Применить изменения

После нам потребуется утилита Dism++ (на рекомендованном мной LiveCD она также присутствует).

Запускаем Dism++

Запускаем Dism++

Dism++ автоматически найдет все установленные Windows на дисках: нам же потребуется выбрать из них ту, которая не загружается. В моем случае — это вторая ОС (т.к. первая — сама LiveCD). После — нужно запустить функцию восстановления загрузки. 👇

Восстановление загрузки (Dism++)

Восстановление загрузки (Dism++)

Затем вручную выбрать загрузочный раздел, нажав по кнопке «Больше». 👇

Больше (Dism++)

Больше (Dism++)

В моем примере этот раздел на первом месте. Осталось только выбрать его и нажать на OK.

Выбираем наш подготовленный раздел

Выбираем наш подготовленный раздел

Если вы всё сделали правильно — Dism++ известит о успешном восстановлении загрузки. Задача выполнена — можно вынимать LiveCD-флешку из USB-порта и перезагрузить ПК!

Восстановление загрузки успешно восстановлено!

Восстановление загрузки успешно восстановлено!

*

Что делать, если всё предыдущее не помогло

1) Если вышеперечисленное не помогло, то как вариант, можно 👉 переустановить ОС Windows (если были повреждены какие-то системные файлы или система заражена вирусом — это единственная альтернатива).

2) Кстати, хороший вариант (для тех, кто не хочет терять старую систему со всеми данными):

  1. создать на жестком диске еще один раздел под-установку новой ОС Windows (с помощью 👉 LiveCD или 👉 спец. утилит для работы с HDD — это можно сделать быстро и без потери данных);
  2. далее установить Windows на этот раздел диска;
  3. затем можно «прошерстить» старую Windows и забрать все нужные файлы, что были на том разделе;
  4. после чего старый раздел диска можно отформатировать и присоединить его к любому другому разделу (также с помощью спец. утилит, ссылку привел выше).

*

3) Либо, можно попробовать восстановить Windows с помощью специальных инструментов, которые есть на 👉 LiveCD (DVD/USB). Такой аварийный носитель позволит проверить систему на вирусы, оценить состояние жесткого диска, убрать некоторые ошибки и пр.

Правда, его необходимо подготавливать заранее, либо воспользоваться другим ПК/ноутбуком. О том, как создать такой носитель, расскажет одна из моих прошлых статей:

восстановление диска, флешки

👉 Как создать загрузочный LiveCD/DVD/USB-флешку или диск с операционной системой Windows и сервисными утилитами, не требующие установки на жесткий диск

*

Дополнения по теме приветствуются…

Всего доброго!

👋

Первая публикация: 17.03.2018

Корректировка: 21.01.2022

donate

dzen-ya

Полезный софт:

  • видеомонтаж
  • Видео-Монтаж
  • Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
    Видео сделает даже новичок!

  • утилита для оптимизации
  • Ускоритель компьютера
  • Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).

BOOT.INI — это внутренний файл Windows с параметрами запуска. К нему обращается ОС, когда вы включаете компьютер. Если вас не устраивают изначальные настройки запуска, их можно изменить. Нужно лишь внести изменения в этот файл. Но отыскать его непросто: системные папки часто скрыты от глаз пользователя, чтобы человек случайно не удалил или не переместил важный каталог. В новых Windows этот файл отсутствует.

Где находится файл Boot.ini

Что такое BOOT.INI?

Если на компьютере не одна ОС, при запуске будет предложен выбор. Именно за это отвечает BOOT.INI. В нём прописано, какая из систем приоритетная, с какими настройками её загружать и т. п.

При включении Windows обращается к нескольким файлам, которые контролируют загрузку на разных этапах. Это ntbootdd.sys, ntdetect.com, ntldr, bootsect.dos. И, конечно, сам BOOT.INI. Если какой-то из них переименовать, перетащить, удалить или неаккуратно отредактировать, это может вызвать проблемы. Компьютер будет без конца перезагружаться, выдавать ошибки или элементарно не включаться. Поэтому с внутренними данными операционной системы надо обращаться осторожно. Неправильная цифра или не в том месте поставленное тире — и вам придётся восстанавливать ОС.

Ошибка запуска Windows

Будьте осторожны при редактировании boot.ini, поскольку в случае ошибки потребуется переустановка или восстановление Windows

Как найти BOOT.INI

Вначале поговорим о Windows XP. Где находится BOOT.INI в этой модели? Его можно найти непосредственно в корневой директории (там, где основные дистрибутивы системы). Но увидеть его не получится, если не активировано отображение скрытых объектов. Чтобы включить эту опцию:

  1. Зайдите в «Панель управления» (в меню «Пуск»).
  2. Откройте «Параметры папок» в разделе «Оформление и персонализация».
  3. Найдите вкладку «Вид».
  4. Прокрутите ползунок вниз. Там будет строчка «Показывать скрытые файлы». Поставьте галочку.

Как настроить отображение скрытых файлов

Теперь вы сможете увидеть BOOT.INI. Он находится прямо на системном диске (обычно это диск C:). Сам файл имеет иконку в виде листка с шестерёнкой. Он будет полупрозрачным. Это означает, что он скрытый, и снять с него этот атрибут невозможно.

Если вы не представляете, где именно установлена ваша ОС, зайдите в меню «Пуск — Поиск». Выберите «Файлы и папки» и в поле для ввода напишите название или часть названия. В окне отобразятся все результаты с таким именем.

Если вы используете Windows 7, во всех моделях, начиная с Vista, эти настройки заменили на файл конфигурации «BCD», который не имеет расширения. Его можно запустить как часть реестра, но настроить или изменить в нём что-то будет трудно. Он содержит очень много параметров и значений, в которых непросто ориентироваться. В Windows 10 BOOT.INI тоже отсутствует, поэтому менять параметры загрузки придётся другим способом.

BCD намного полезнее и функциональнее своего «предшественника», но этот файл не предназначен для ручной настройки. Он нужен для нужд системы, и исправлять в нём что-либо не стоит.

Как редактировать?

BOOT.INI можно отредактировать в любом текстовом процессоре. Подойдёт обычный блокнот Windows или «продвинутый» Notepad+. Но перед этим надо разрешить доступ к файлу, иначе после внесения изменений его нельзя будет сохранить.

  1. Кликните по нему правой кнопкой мыши.
  2. Выберите «Свойства».
  3. Во вкладке «Общие» уберите галочку из пункта «Только чтение».
  4. Нажмите «Применить».

После этого можно менять значения в BOOT.INI. Файл имеет чёткую структуру. Не рекомендуется удалять в нём что-то, перемещать операторы без надобности, стирать скобки или знаки препинания. Вкратце о каждом параметре:

  • «Timeout» показывает, сколько времени даётся на выбор ОС при запуске (если установлено несколько). Напишите после знака равенства «=» нужную вам цифру. Таймер ведёт отсчёт в секундах.
  • В «default» обозначена операционная система, заданная по умолчанию. Она будет загружена, если за отведённое время вы не выберите, какую именно ОС активировать. Этот параметр может выглядеть примерно так: «scsi(0)disk(0)rdisk(0)partition(1)WINDOWS».
  • «Scsi» — контроллер, который управляет физическим диском. Если их несколько, второй будет иметь вид «scsi(1)».
  • «Partition» — это раздел, в котором находится ОС. К примеру, «Partition(1)» указывает на C:, «partition(2)» — на D: и так далее.
  • Ниже параметра «operating systems» представлен список установленных операционных систем. Если у вас одна ОС, там будет одна строчка.
  • Могут быть вписаны и другие параметры. Например, «/SOS», чтобы при запуске показывались имена драйверов, или «/debug» для отладки ядра. Все возможные команды есть на официальном сайте Microsoft.

Boot.ini в блокноте

Как менять порядок загрузки без файла BOOT.INI

Так как отредактировать BOOT.INI в Windows 7 и более поздних версиях не получится из-за отсутствия этого файла, придётся настраивать порядок загрузки другим способом. Конечно, можно попробовать поработать с BCD, но разобраться во всех его опциях будет непросто.

Если вам надо поменять время, которое даётся на выбор ОС, или поставить другую систему по умолчанию, сделать это можно так:

  1. Откройте «Мой компьютер».
  2. Щёлкните в любом свободном месте окна правой кнопкой мыши.
  3. Зайдите в «Свойства».
  4. Затем — в«Дополнительные настройки».
  5. На вкладке «Дополнительно» в разделе «Восстановление и загрузка» нажмите «Параметры». Там будут нужные опции.

Порядок загрузки Windows 7

Ещё один способ:

  1. Перейдите в Пуск — Выполнить.
  2. В открывшемся окне напишите «msconfig» (без кавычек). Появятся настройки конфигурации.
  3. Вкладка «Загрузки». Откроется список установленных ОС. Можно решить, какую из них назначить по умолчанию, и изменить таймаут при запуске и выборе системы.

К сожалению, эти методы не позволяют задать особые параметры.

Использование программ

Описанные выше задачи можно упростить. Для этого существуют специальные утилиты — менеджеры загрузок. С ними можно обойтись и без BOOT.INI. Вот некоторые из этих программ:

  • Оболочка для BCD. С её помощью можно настроить этот файл.
  • OSL2000 BootManager. Поддерживает работу с большим количеством операционных систем (до 100 штук).
  • Обеспечивает быстрый перезапуск в нужную ОС.

В Windows XP BOOT.INI отвечает за порядок загрузки системы. Его можно изменить, прописав команды вручную. В последующих версиях ОС файл убрали. Но настройка параметров запуска всё равно доступна. Если вы не разбираетесь в этом вопросе, воспользуйтесь предназначенными для этого программами. Так не придётся трогать собственную информацию Windows.

Восстановление загрузчика Windows 10 необходимо выполнить в случае невозможности загрузки на компьютере операционной системы. После запуска ПК, на экране появляется сообщение об ошибке, говорящее о невозможности загрузки системы по тем или иным причинам.

Причины неполадок с загрузчиком системы могут возникнуть из-за аппаратного и программного обеспечения. В этой статье мы рассмотрим способы восстановления загрузчика операционной системы, не связанные с проблемами оборудования компьютера, например, с неисправностью жесткого диска или оперативной памяти.

Содержание:

  1. Восстановление загрузчика Windows 10 с помощью автоматического исправления неполадок
  2. Восстановление загрузчика Windows через командную строку — 1 способ
  3. Как восстановить загрузчик Windows 10 с помощью командной строки — 2 способ
  4. Восстановление загрузчика Windows 10 в Bootrec
  5. Выводы статьи

Некоторые возможные причины возникновения неполадок загрузчика Windows:

  • неизвестный системный сбой;
  • воздействие вредоносного программного обеспечения;
  • неправильные действия пользователя;
  • выключение компьютера во время установки обновлений;
  • установка на компьютер другой операционной системы;
  • результат работы программ для чистки и твикеров системы.

Если пользователь удалил загрузчик своими неправильными действиями, или он не работает из-за другой неполадки, как восстановить? На компьютере внезапно стало невозможно загрузить операционную систему, как восстановить загрузчик Windows?

Выполнить восстановление загрузчика Windows, если не сработает автоматическое восстановление, поможет командная строка, запускаемая с диска восстановления Windows 10, с установочного диска или с загрузочной флешки Windows 10. Поэтому я рекомендую всем пользователям иметь у себя загрузочные диски, которые пригодятся, в случае возникновения проблем на компьютере.

Простые сбои устраняются непосредственно в работающей системе, а при серьезных неполадках ОС может не загружаться. Загрузка на ПК, выполненная с загрузочного носителя (флешки или диска), позволит вызвать средства восстановления системы для решения проблемы.

Непосредственно средствами системы можно создать Диск восстановления Windows 10 на флешке или CD/DVD диске. Для восстановления системы можно использовать загрузочную флешку Windows или установочный DVD диск с операционной системой.

Пользователь может бесплатно скачать Windows 10 с официального сайта, а затем сразу создать загрузочную флешку в Media Creation Tool. Имеется большое количество программ от сторонних производителей для создания загрузочных флешек.

Самый надежный способ восстановления системы при серьезных неполадках: создание резервной копии Windows 10, например, средствами системы, а затем восстановление системы из резервной копии. Для создания резервного образа системы можно воспользоваться сторонним софтом: AOMEI Backupper, Acronis True Image WD (бесплатная программа) и т. д.

В статье мы рассмотрим несколько способов восстановления загрузчика Windows 10, без использования стороннего программного обеспечения. Инструкция подойдет для операционных систем Windows 8.1, Windows 8, Windows 7.

Для запуска загрузки с загрузочного диска (флешки или DVD) необходимо войти в загрузочное меню BIOS или UEFI, а затем выбрать загрузочное устройство. Другой вариант запуска: выбор в настройках БИОС приоритета загрузки с загрузочного носителя. За вход в BIOS на компьютерах отвечают разные клавиши клавиатуры, поэтому предварительно узнайте, на что следует нажимать, ориентируясь на модель своего устройства.

Восстановление загрузчика Windows 10 с помощью автоматического исправления неполадок

На моем примере мы попробуем восстановить UEFI загрузчик Windows 10. Статья подойдет для пользователей с компьютерами, имеющими MBR загрузчик в Windows 10.

После загрузки на компьютере, в первом окне программы установки Windows нажмите на кнопку «Далее».

выбор языка

В следующем окне нажмите на «Восстановление системы».

восстановление системы

В окне «Выбор действия» нажмите на «Поиск и устранение неисправностей».

поиск и устранение неисправностей

Сначала я рекомендую выбрать способ: «Восстановление при загрузке». Операционная система Windows самостоятельно устранит неполадки, мешающие загрузке системы. Это самый простой вариант решения проблемы, я сам не раз им пользовался.

восстановление при загрузке

Операционная система автоматически диагностирует причину сбоя и восстановит системные файлы, необходимые для загрузки Windows.

В случае положительного исхода, на компьютере произойдет запуск Windows 10 в штатном режиме.

Если восстановлению при загрузке не удалось восстановить компьютер, придется воспользоваться командной строкой.

восстановление при загрузке не удалось

Восстановление загрузчика Windows через командную строку — 1 способ

После неудачного автоматического восстановления, в окне «Восстановление при загрузке» нажмите на кнопку «Дополнительные параметры».

По-другому, можно заново загрузиться с загрузочного носителя (флешки или DVD-диска), а затем пройти путь до окна «Дополнительные параметры».

В окне «Дополнительные параметры» нажмите на кнопку «Командная строка».

командная строка

Мы выполним восстановление загрузчика Windows через командную строку. Процесс восстановления загрузчика пройдет в два этапа:

  • с помощью утилиты Diskpart мы узнаем имя системного диска, на котором установлена Windows;
  • затем мы создадим файлы загрузки операционной системы.

В окне интерпретатора командной строки введите команду для запуска утилиты Diskpart (после ввода каждой команды нажимайте на клавишу «Enter»):

diskpart
list volume

В списке дисков (томов) компьютера нужно найти системный раздел, на котором установлена операционная система Windows. Нам нужно узнать «Имя» (букву диска), при поиске тома ориентируйтесь на размер диска с установленной системой. Операционная система может быть установлена диск «C», «D», «E» и т. д.

выбор имени диска

В моем случае, система установлена на диск «C».

Для выхода из утилиты Diskpart введите команду:

exit

Теперь необходимо ввести команду для создания файлов загрузки операционной системы с помощью утилиты bcdboot.

В окне командной строки введите команду:

bcdboot X:windows

В этой команде «X» — буква тома (диска), на котором установлена система, на моем компьютере диск «C», поэтому я ввел эту букву диска.

После выполнения команды, вы увидите сообщение о том, что файлы загрузки успешно созданы.

файлы загрузки успешно созданы

Закройте окно командной строки.

В окне «Выбор действия» нажмите на кнопку «Продолжить» для выхода из восстановления системы и продолжения использования Windows 10.

продолжить

Как восстановить загрузчик Windows 10 с помощью командной строки — 2 способ

При этом способе будет использована командная строка, вызываемая с диска восстановления, загрузочной флешки, или с установочного DVD диска с Windows. На компьютере необходимо загрузится с загрузочного диска, а затем запустить командную строку.

Процесс создания файлов загрузки Windows 10 пройдет в три этапа:

  • при помощи утилиты DiskPart мы узнаем номер скрытого тома (диска, раздела) и файловую систему, форматируем диск, а затем дадим букву тому (диску);
  • создание на скрытом томе (диске) файлов для загрузки системы;
  • удаление буквы с диска (тома) скрытого раздела.

В окне интерпретатора командной строки по очереди введите команды (не забудьте нажать на «Enter», после ввода соответствующей команды):

diskpart
list volume

На компьютере с GPT UEFI имеется скрытый раздел с файловой системой FAT32, он не помечен буквой, размером от 99 до 300 MB. На компьютерах с BIOS MBR находится скрытый том с файловой системой NTFS, размером до 500 MB.

Нам нужен номер тома («Том 0», «Том 1», «Том 2» и т. д.) и его файловая система. Обратите внимание на букву тома (диска), на котором установлена Windows.

Выберите скрытый том, он не имеет «Имени» (буквы диска). В данном случае это «Том 4», на вашем компьютере может быть другой номер тома.

select volume X

выбор тома

Введите команду для форматирования тома в файловую систему «FAT32» или «NTFS», в зависимости от стиля разделов жесткого диска UEFI или MBR соответственно. На моем компьютере скрытый раздел имеет файловую систему «FAT32», поэтому я выбрал вариант с форматированием в эту файловую систему.

format fs=fat32 или format fs=ntfs

Далее присвойте диску букву «Z» (последняя буква английского алфавита, которая наверняка будет свободной):

assign letter=Z

Выйдите из утилиты Diskpart:

exit

Теперь необходимо выполнить команду для создания файлов загрузки Windows:

bcdboot C:Windows /s Z: /f ALL

В этой команде «C» — буква раздела, на котором установлена Windows, а «Z» — буква скрытого диска.

запись загрузочного раздела

После того, как файлы загрузки были успешно созданы, снова запустите утилиту Diskpart:

diskpart

Отобразите в командной строке список томов компьютера:

list volume

Выберите скрытый том, которому вы ранее присвоили букву «Z»:

select volume X

В этой команде «X» — номер скрытого тома на вашем компьютере. Вы его уже выбирали в командной строке, когда присвоили имя для этого тома (раздела).

Введите команду для удаления имени тома (буквы диска), а затем выйдите из утилиты Diskpart:

remove letter=Z
exit

удаление имени диска

Закройте командную строку.

Извлеките DVD диск или загрузочную флешку из компьютера, загрузочный носитель больше не нужен.

В окне «Выбор действия» нажмите на кнопку «Выключить».

Включите ПК, на котором снова загрузится операционная система Windows 10.

Восстановление загрузчика Windows 10 в Bootrec

С помощью утилиты Bootrec.exe можно устранить неполадки при запуске системы на компьютерах с MBR (главной загрузочной записью).

Основные команды утилиты Bootrec.exe:

  • FixMbr — запись основного загрузочного раздела (MBR), совместимого с Windows, существующая таблица разделов не перезаписывается.
  • FixBoot — запись в системный раздел нового загрузочного сектора, совместимого с Windows.
  • ScanOS — поиск на всех дисках установленных систем, совместимых с Windows, вывод записей, которых нет в хранилище конфигурации системы.
  • RebuildBcd — поиск на всех дисках установленных систем, совместимых с Windows, выбор систем, которые нужно добавить в хранилище конфигурации.

В большинстве случаев, достаточно записать основной загрузочный раздел или новый загрузочный сектор, совместимый с текущей операционной системой.

После загрузки в среду восстановления Windows. В окне командной строки введите одну из команд:

Bootrec.exe /FixMbr
Bootrec.exe /FixBoot

запись загрузочного раздела

Если проблема не решается предложенными способами, устранить неполадку можно с помощью «чистой» установки Windows 10, вместо установленной на компьютере системы.

Выводы статьи

В случае, возникновения неполадок при загрузке операционной системы, пользователю необходимо восстановить загрузчик Windows 10. Для выполнения работы, потребуется загрузиться на компьютере с загрузочной флешки или с установочного DVD-диска. Восстановление выполняется из среды восстановления автоматически средствами системы, или вручную пользователем, после ввода соответствующих команд в командной строке.

Похожие публикации:

  • Восстановление загрузчика Windows 7 — 3 способа
  • Команды «Выполнить» в Windows: полный список
  • Как преобразовать MBR в GPT системными средствами — 3 способа
  • Как преобразовать GPT в MBR системными средствами
  • Режим совместимости в Windows

В современных версиях Windows информация для запуска операционной системы храните в файле конфигурации загрузки BCD (Boot Configuration Data). В этом файле хранятся данные об установленной Windows и параметрах ее загрузки. Если файл BCD удален или поврежден, Windows перестает загружаться. Также вы не сможете загрузить Windows, если повреждена MBR запись на жестком диске. В этой статье мы покажем, как корректно пересоздать файл хранилища данных конфигурации загрузки BCD и
Master Boot Record
(MBR) на примере Windows 10 и 11.

Содержание:

  • Ошибка “The boot configuration data file is missing some required information”
  • Автоматическое восстановление конфигурации загрузчика Windows
  • Идентификация разметки дисков и букв томов
  • Восстановление загрузочного сектора MBR в Windows 10/11
  • Пересоздание BCD файла загрузчика Windows 10

Ошибка “The boot configuration data file is missing some required information”

Если файл BCD поврежден, отсутствует, если вы удалили / отформатировали отдельный раздел диска с меткой System Reserved (и размером 500Мб), специальный OEM раздел, то скорее всего при попытке загрузить Windows появится такое сообщение:

Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD
Error code: 0xc0000034

The Boot Configuration Data file is missing some required information
Также ошибка может выглядеть так:

The Boot Configuration Data for your PC is missing or contain errors.
File: \boot\bcd
Error Code: 0xc000000f

При повреждении MBR может быть ошибка No operating system found.

ошибка 0xc000000f отсутсвует файл boot\bcd при загрузке Windows 10bcd-

Автоматическое восстановление конфигурации загрузчика Windows

При появлении такой ошибки, в первую очередь попробуйте исправить проблему с загрузкой ОС с помощью режима автоматического восстановления (Startup Repair), который можно запустить из среды восстановления Windows RE.

Совет. Желательно периодически проверять работоспособность среды WinRE, и если она не работает, воспользоваться для ее восстановления методикой из статьи Восстановление среды WinRE в Windows.

Если автоматическое восстановление с помощью Startup Repair не помогло решить проблему, вам нужно загрузиться с загрузочного или установочного диска с Windows или в среде WinRe (Repair your computer -> Troubleshoot -> Advanced options -> Command Prompt), запустить командную строку и попробовать полностью пересоздать файл конфигурации загрузчика BCD и обновить MBR запись.

Advanced options -> Command Prompt

В этом примере я буду использовать установочный диск с Windows 10. Выберите в настройках BIOS первичным загрузочным устройство DVD диск или USB флешку с дистрибутивом Windows (в зависимости от того, с какого устройства вы хотите загрузить компьютер). Загрузитесь с установочного диска и на экране выбора языка установки нажмите сочетание клавиш Shift+F10. Перед вами откроется консоль командной строки.

Попробуйте восстановить BCD файл автоматически, выполнив команду:

bootrec /RebuildBCD

Перезагрузите компьютер и проверьте, загружается ли Windows (не забудьте изменить приоритет загрузочных устройств в BIOS). Если Windows не загружается, еще раз загрузитесь с установочного диска и откройте окно командной строки.

Идентификация разметки дисков и букв томов

Очень важно. Все инструкции, описанные ниже, подходят для обычных компьютеров с BIOS (или загружающихся в режиме UEFI legacy) и MBR таблицей разделов. На компьютерах с UEFI прошивками для пересоздания BCD нужно использовать следующе инструкци: восстановлению EFI загрузчика в Windows 10 или восстановление удаленного EFI раздела в Windows.

Как понять, используется ли у вас BIOS или UEFI система? Проще всего проверить тип таблицы разделов на диске, на котором установлена Windows: GPT или MBR. Для этого выполните команду:

diskpart

Затем выполните:

list disk

  • Если у диска в столбце Gpt указана звездочка (*), значит на диске используется таблица разделов GPT. Это значит, что у вас компьютер с UEFI, и для восстановления загрузчика нужно использовать статью по ссылке выше.
  • Если в столбце GPT звездочка отсутствует, значит у вас на диске таблица разделов MBR, и вы можете продолжить следовать данной инструкции.

проверить тип разметки диска gpt или mbr

Далее вам нужно идентифицировать локальные диски и разделы системы (скорее всего назначенные им буквы дисков будут отличаться от дисков, которые вы видели при работе в Windows). Проще всего это сделать с помощью утилиты diskpart. Выполните следующие команды:

diskpart
list vol

diskpart: list volumes

Перед вами появится список разделов в системе, назначенные им буквы дисков и их размер. В нашем случае к компьютеру подключен 1 жесткий диск, на котором имеются всего два раздела:

  • Раздел System Reserved размером 500 Мб, которому назначена буква диска C:. На этом небольшом служебном разделе по-умолчанию хранится файл конфигурации загрузки BCD (подробнее)
  • NTFS раздел размером 39 Гб, которому назначена буква D:. На этом разделе находится установленная Windows, программы и данные пользователя.

Важно. Запомните буквы дисков, назначенные разделам. Данные буквы дисков будут использоваться в последующих командах.

Восстановление загрузочного сектора MBR в Windows 10/11

С помощью утилиты bootrec.exe можно перезаписать данные в MBR и загрузочном секторе, поместим в них ссылки на загрузчик Windows (bootloader).

Попробуйте перезаписать основную загрузочную запись (MBR) системного раздела для совместимости с загрузчиком Windows (существующая таблица разделов не перезаписывается).

bootrec.exe /fixmbr

Добавьте в загрузочные секторы диска код для загрузки файла bootmgr ( диспетчера загрузки Windows):

bootsect.exe /nt60 all /force

Прежде, чем идти далее, попробуйте автоматически пересоздать конфигурацию загрузчика BCD командами (это самый простой способ для начинающих):

bootrec /FixBoot
– команда создает новый загрузочный сектор на системном разделе (перезаписывает загрузочную запись раздела PBR).
bootrec /ScanOs
– просканировать диски и найти установленные копии Window, которых нет в хранилище конфигурации загрузки

В случае успешного сканирования появится запрос на добавление записей о найденный Windows в BCD:

Scanning all disks for Windows installations.  
Please wait, since this may take a while...  
Successfully scanned Windows installations. 
Total identified Windows installations: 1 [1] D:\Windows 
Add installation to boot list? Yes/No/All:

bootrec /RebuildBcd
– пересоздать хранилище конфигурации загрузкика, добавить в BCD найденные на компьютере копии Windows/

После этого перезагрузите компьютер и проверьте загрузку Windows. Если ОС не загружается, следуйте инструкции.

Если команда bootsect.exe не найдена, попробуйте указать полный путь к ней:
X:\boot\bootsect.exe /nt60 all /force

bootsect.exe nt60 all force

Пересоздание BCD файла загрузчика Windows 10

Далее с помощью команды BCDedit нужно создать новый файл с конфигурацией загрузчика (предполагается, что у вас нет резервной копии BCD).

Ваши дальнейшие действия зависят от того, есть ли на диске отдельный раздел System Reserved или нет. В командной строке выполните:

diskpart
list vol

Проверьте, есть ли на диске компьютера системный раздел System Reserved. Его можно идентифицировать по метке тома, либо более точнее по размеру (500 Мб для Windows 10+, 350 Мб для Windows 8.1 и 100 Мб для Windows 7).

проверить есть ли раздел system reserved в Windows

  • Если раздела нет (вы случайно удалили его), можно хранить конфигурацию загрузчика BCD на основном диске, где находится каталог Windows. Чтобы создать конфигурационные файл загрузчика BCD и Bootmgr на указанном диске, выполните команду:
    bcdboot C:\Windows /S C:

    Должно появится сообщение
    Boot files successfully created
    .
  • Если раздел System Reserved у вас имеется, удалите старый (поврежденный) файл BCD и создайте вместо него новый:
    del c:\boot\bcd

Если разделу System Reserved не назначена буква диска (по-умолчанию), вы можете сами назначить ее с помощью diskpart.

Запустите:
diskpart

Выберите диск (в моем случае в компьютере имеется всего один жесткий диск, а вы можете вывести список дисков командой list disk):
select disk 0

На скриншота выше видно, что раздел с меткой System Reserverd называется Volume 1. Выберите его:
select volume 1

Назначьте букву диска (я назначил букву C:, но вы можете использовать любую другую букву, в этом случае измените путь в следующих командах):
assign letter C:

exit

Создайте временный пустой файл bcd.tmp:
bcdedit /createstore c:\boot\bcd.tmp

Создайте запись для диспетчера загрузки bootmgr:
bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"

Импортируйте в BCD настройки из файла bcd.tmp:
bcdedit.exe /import c:\boot\bcd.tmp

Если команда bcdedit возвращает ошибку (
Ошибка создания хранилища. Отказано в доступе, access denied
) при доступе к файлу BCD, попробуйте снять с него атрибуты скрытый, read-only и системный:

attrib C:\Boot\BCD -s -h -r

Укажите, что загрузчик находится на служебном разделе System Reserved (ему назначена буква диска C: )
bcdedit.exe /set {bootmgr} device partition=c:

Настройте время ожидания при выборе ОС:
bcdedit.exe /timeout 10

Удалите временный файл:
del c:\boot\bcd.tmp

bcdedit.exe /set {bootmgr} device partition=c:Итак, вы создали пустой BCD файл с параметрами загрузчика. Теперь в него нужно добавить записи об установленных на диске Windows .
Создайте в хранилище BCD новую запись для Windows 10:
bcdedit.exe /create /d "Windows 10" /application osloader

Команда должна вернуть уникальный идентификатор (GUID) данной записи загрузчика:

The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.

The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.

Укажем, что bootmgr должен использовать данную запись по-умолчанию (после истечения времени ожидания при выборе ОС, для загрузки будет используется именно эта запись).

bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}

Теперь в новой записи загрузчика осталось указать пути к имеющейся на диске установленной копии Windows 10. Ранее мы определили, что в среде WinPE диску с установленной Windows присвоена буква D:. Используйте эту букву диска в следующих командах:

bcdedit.exe /set {default}device partition=d:
bcdedit.exe /set {default} osdevice partition=d:
bcdedit.exe /set {default} path \Windows\system32\winload.exe
bcdedit.exe /set {default} systemroot \Windows


Осталось сделать данную загрузочную запись в BCD видимой (по умолчанию она скрыта):
bcdedit.exe /displayorder {default} /addlast

bcdedit.exe /displayorder {default} /addlast

Итак, мы полностью пересоздали загрузчик Windows 10 (обновили файл BCD и перезаписали загрузочный сектор MBR).

Теперь нужно сделать раздел, на котором находится файл BCD с конфигурацией загрузчика активным (BIOS передает управлению загрузчику ОС с активным MBR раздел). Допустим, разделы на вашем диске распределены так.

  • Volume 0 – загрузочная/установочная флешка (ISO образ) диск, с которого вы загрузили компьютер
  • Volume 1 – раздел System Reserved с BCD загрузчиком (размер 500 Мб)
  • Volume 2 – раздел с файлами Windows (здесь находятся каталог Windows, Program Files, Users и т.д.)

diskpart список разделов на диске

В этом примере нужно сделать активным раздел Volume 1 (в вашем случае определите номер раздела самостоятельно). Сделать раздел активным можно с помощью diskpart:

diskpart
list disk
sel disk 0
list vol
select volume 1

(файлы bootmgr и «\Boot\BCD» находятся на этом разделе)
active
exit

Проверьте, что раздел volume 1 теперь активный:

select vol 1
detail partition

Все верно (
Active: Yes
).

diskpart сделать раздел активным active:yes

Теперь вы можете перезагрузить компьютер и убедится, что Windows загружается в штатном режиме.

Мы продолжаем разбираться как работает ПК на примере клавиатуры и Windows 10. В этой статье поговорим о том как происходит единение софта и железа.

Старт системы

Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.

Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.

Плата ноутбука с кнопкой включения и светодиодом состояния

Cистемный контроллер обладает огромными полномочиями – включать и выключать компьютер, исполнять код в режиме ядра. Помимо него могут быть и другие чипы со сравнимыми возможностями, такие как Intel Management Engine или AMD Secure Technology (часть CPU), которые так же работают когда компьютер «выключен». Чип с Intel ME имеет в себе x86 CPU с операционной системой MINIX 3. Что он может делать:

  1. Включать и выключать компьютер, т.е. выполнять программы имея доступ ко всей вычислительной мощности, периферии машины и сети.
  2. Обходить ограничения файервола.
  3. Видеть все данные в CPU и RAM, что даёт доступ к запароленным файлам.
  4. Красть ключи шифрования и получать доступ к паролям
  5. Логировать нажатия клавиш и движения мыши
  6. Видеть что отображается на экране
  7. Вредоносный код в Intel ME не может быть детектирован антивирусом, потому как на такой низкий уровень он добраться не может
  8. И конечно же скрытно отправлять данные по сети используя свой стек для работы с сетью.

Это вызывает серьёзные вопросы безопасности, потому как он может быть хакнут или использовать в шпионских целях.

Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (Nvidia 2070 S) на офисный ПК, то просто вставить её недостаточно, потому как она требует питание в 600W, в то время как такой ПК имеет блок на ~500W. Первое что придёт в голову – купить новый блок питания на 650W с отдельной линией для видеокарты. Но и здесь будут разочарования, потому как разъёмы материнки будут не совпадать с разъёмами БП, а если его отдельно воткнуть в розетку и подключить к видюхе тоже ничего не будет – в блоке питания вентилятор не крутится и изображения нет. Так происходит, потому что БП должен получить сигнал от материнки на полное включение. Очевидное решение – новая материнка с совместимыми разъёмами, однако она стоит ~$300. Есть решение проще, хоть оно и вызывает опасения пожаробезопасности. Берём скрепку, разгибаем и вставляем в зелёный (PS_ON) и один из чёрных пинов (COM). Теперь всё должно работать.

Поиск загрузчика ОС

Есть два вида прошивки материнки – BIOS (Basic Input Output System) на старых машинах и UEFI (Unified Extensible Firmware Interface) на новых. Windows 10 поддерживает обе и абстрагирует различия между ними. UEFI правильней называть ОС чем прошивкой, потому как он предлагает больше возможностей, к примеру богатый графический интерфейс вместо текстового, наличие мышки, больший объём доступной памяти, улучшенная модель безопасности и валидации файлов ОС, взаимодействие с железом через API, вместо прерываний как в BIOS.

Пример экрана монитора BIOS.

Программа BIOS хранится на отдельном чипе, подключенном к Южному мосту. Этот чип можно достать и перепрошить новой программой, по факту это просто носитель памяти, а не самостоятельный микрокомпьютер.

Настройки BIOS (системное время, например), хранятся на другом чипе который как правило находится возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК. Называется он CMOS, что означает Complementary Metal Oxide Semiconductor, а по-русски просто — КМОП, что есть комплементарная структура металл-оксид-полупроводник.

Первым делом программа BIOS выполняет проверку подсистем, эта процедура называется POST – Power On Self Test. Тест может быть сокращённый либо полный, это задаётся в настройках BIOS. Процитирую Википедию, что в себя включают эти тесты:
Сокращённый тест включает:

  1. Проверку целостности программ BIOS в ПЗУ, используя контрольную сумму.
  2. Обнаружение и инициализацию основных контроллеров, системных шин и подключённых устройств (графического адаптера, контроллеров дисководов и т. п.), а также выполнение программ, входящих в BIOS устройств и обеспечивающих их самоинициализацию.
  3. Определение размера оперативной памяти и тестирования первого сегмента (64 килобайт).

Полный регламент работы POST:

  1. Проверка всех регистров процессора;
  2. Проверка контрольной суммы ПЗУ;
  3. Проверка системного таймера и порта звуковой сигнализации (для IBM PC — ИМС i8253 или аналог);
  4. Тест контроллера прямого доступа к памяти;
  5. Тест регенератора оперативной памяти;
  6. Тест нижней области ОЗУ для проецирования резидентных программ в BIOS;
  7. Загрузка резидентных программ;
  8. Тест стандартного графического адаптера (VGA или PCI-E);
  9. Тест оперативной памяти;
  10. Тест основных устройств ввода (НЕ манипуляторов);
  11. Тест CMOS
  12. Тест основных портов LPT/COM;
  13. Тест накопителей на гибких магнитных дисках (НГМД);
  14. Тест накопителей на жёстких магнитных дисках (НЖМД);
  15. Самодиагностика функциональных подсистем BIOS;
  16. Передача управления загрузчику.

По результатам этого теста может быть обнаружена неисправность, к примеру нерабочая видеокарта или клавиатура. Поскольку экран монитора может не работать результаты тестов сообщаются в виде последовательности звуковых сигналов разной высоты. Что конкретно они значат надо смотреть в документации к материнской плате. Старые компьютеры часто бибикали во время старта — это программа BIOS сообщала о результатах тестов. Иногда может дополнительно использоваться индикатор, показывающий номер ошибки.

Если всё прошло успешно, BIOS начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых сектор, обычно он 512 байт, однако современный стандарт – 4096 байт. Установщик Windows в самый первый сектор на диске записывает специальный программный код и данные о разделах. Этот сектор называется Master Boot Record. Диск разбивается на разделы (partitions), отформатированный своей файловой системой. Максимум 4 раздела, каждый из который может быть расширенным (extended partition), такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено. Как только BIOS находит Master Boot Record он считывает оттуда код и передаёт ему управление. Этот код поочередно просматривает данные о разделах и находит тот который помечен как активный, в нём находится код загрузчика Windows (Это не раздел с C:\Windows\System32!), этот раздел называется system partition. Как правило он занимает 100Мб и скрыт от пользователя. В первом секторе этого раздела хранится загрузочный код, которому передаётся управление. Это volume boot sector, код в нём ищет файл Bootmgr, с которого и начинается процесс загрузки Windows. Файл Bootmgr создан через соединение в один файлов Startup.com и Bootmgr.exe.

Процессор начинает свою работу в режиме который называется «Реальный». Это режим совместимости, в нём CPU работает так же как и старые 16-bit процессоры, не имевшие поддержки виртуальной памяти и работавшие напрямую с физической памятью через 20-bit шину адресов, позволявшую адресовать 1Мб памяти. Простые MS-DOS программы выполнялись в этом режиме и имели расширение .COM. Первое что делает Startup.com (Bootmgr) – переключает процессор в режим «Защищённый», где под защитой понимается защита процессов друг от друга. В этом режиме поддерживается виртуальная память и 32х битные адреса, которыми можно адресовать 4Гб оперативной памяти. Следующим этапом Bootmgr заполняет таблицу виртуальных адресов на первые 16Мб RAM и включает трансляцию с виртуальных адресов в физические. В этом режиме и работает Windows. Поскольку на этом этапе подсистемы ОС ещё не созданы, Bootmgr имеет свою простую и неполную реализацию файловой системы NTFS, благодаря которой он находит BCD файл (Boot Configuration Data), в котором хранятся настройки параметров загрузки ОС. Вы можете редактировать его через утилиту BcdEdit.exe. В этих настройках BCD может быть указано, что Windows была в состоянии гибернации, и тогда Bootmgr запустит программу WinResume.exe, которая считывает состояние из файла Hyberfil.sys в память и перезапускает драйвера. Если BCD говорит, что есть несколько ОС, то Bootmgr выведет на экран их список и попросит пользователя выбрать. Если ОС одна, то Bootmgr запускает WinLoad.exe, этот процесс и выполняет основную работу по инициализации Windows:

  1. Выбирает соотвествующую версию ядра Windows. Можете думать о нём как о Windows10.exe, хотя на самом деле он называется NtOsKrnl.exe. Какие есть версии? Согласно википедии:
    • ntoskrnl.exe — однопроцессорное ядро Windows. без поддержки режима PAE
    • ntkrnlmp.exe (англ. NT Kernel, Multi-Processor version) — многопроцессорное ядро Windows. без поддержки режима PAE
    • ntkrnlpa.exe — однопроцессорное ядро Windows с поддержкой режима PAE.
    • ntkrpamp.exe — многопроцессорное ядро Windows с поддержкой режима PAE.

  2. Загружает HAL.dll (Hardware Abstraction Layer), который абстрагирует особенности материнки и CPU.
  3. Загружает файл шрифтов vgaoem.fon
  4. Загружает файлы в которых содержится инфомрация о представлениях даты времени, форматов чисел и пр. Эта функциональность называется National Language System.
  5. Загружает в память реестр SYSTEM, в нём содержится информация о драйверах которые надо загрузить. Информация о всех драйверах находится в HKLM\SYSTEM\CurrentControlSet\Services\. Драйвера которые надо загрузить имеют ключ start = SERVICE_BOOT_START (0). Об устройстве реестра мы поговорим в другой статье.
  6. Загружает драйвер файловой системы для раздела на котором располагаются файлы драйверов.
  7. Загружает драйвера в память, но пока не инициализирует их из-за круговых зависимостей.
  8. Подготавливает регистры CPU для выполнения ядра Windows выбранного на первом шаге – NtOsKrnl.exe.

Во время загрузки драйверов WinLoad проверяет их цифровые подписи и если они не совпадают, то будет синий (BSOD) или зелёный (GSOD, для insider preview сборок) «экран смерти».

Запуск на UEFI

Пример экрана загрузки UEFI

BIOS существует больше 30 лет и в попытках исправить его недостатки компания Intel в 1998 году создала стандарт Intel Boot Initiative, позже переименованный в EFI и в 2005 году пожертвованный организации EFI Forum. Недостатки BIOS:
• Работает только в 16-битном режиме
• Может адресовать только 1Mb оперативной памяти
• Часто имеет проблемы совместимости
• MBR ограничен только четырьмя главными разделами диска
• Диск с ОС не может быть больше чем 2.2Tb.
• Имеет очень ограниченные возможности для валидации загрузчика ОС.
На смену BIOS пришёл UEFI, по сути это миниатюрная ОС которая может работать и в 32-bit и в 64-bit. Для совместимости есть опция Compatibility Support Module, которая включается в настройках и эмулирует работу BIOS.

В UEFI загрузка происходит в родной для процессора битности – 32 или 64, есть доступ ко всей памяти, поддерживается виртуальная память, включен Secure Boot и есть возможность запустить antimalware до начала загрузки ОС. Порядок загрузки ОС в UEFI:

  1. Инициализация и запуск Firmware, запуск чип-сета.
  2. POST тест, аналогично BIOS
  3. Загрузка EFI-драйверов и поиск диска подпадающего под требования EFI для загрузочного диска
  4. Поиск папки с именем EFI. Спецификация UEFI требует чтобы был раздел для EFI System Partition, отформатированный под файловую систему FAT, размером 100Мб – 1Гб или не более 1% от размера диска. Каждая установленная Windows имеет свою директорию на этом разделе – EFI\Microsoft.
  5. Читает из настроек UEFI сохранённых в NVRAM (энергонезависимая память) путь к файлу загрузчика.
  6. Находит и запускает EFI/Microsoft/Boot/BootMgrFw.efi.
  7. BootMgrFw.efi находит раздел реестра BCD, который хранится в отдельном файле с именем BCD. Из него он находит WinLoad.efi, который расположен в C:\Windows\System32\winload.efi.

Чтобы посмотреть содержимое раздела EFI System Partition откройте консоль с правами админа (WinKey+X => Windows PowerShell (Admin)) и выполните команды mountvol Z: /s, Z:, dir. CD — меняет директорию.
Главное отличие компонентов BootMgr и WinLoad для UEFI от своих копий для BIOS тем что они используют EFI API, вместо прерываний BIOS и форматы загрузочных разделов MBR BIOS и EFI System Partition сильно отличаются.

Инициализация ядра

Напоминаю, что мы рассматриваем загрузку ПК в контексте работы клавиатуры, поэтому не стоит заострять внимание на всех этапах. Надо понять где в этом процессе находится клавиатура, важные для понимания этапы выделены.
На предыдущем этапе был запущен компонент WinLoad.exe/WinLoad.efi, который запускает NtOsKrnl.exe указав ему параметры загрузки в глобальной переменной nt!KeLoaderBlock (память режима ядра доступна всем процессам), которые WinLoad собрал во время своей работы. Они включают:

  1. Пути к System (загрузчик Windows) и Boot (C:\Windows\System32) директориям.
  2. Указатель на таблицы виртуальной памяти которые создал WinLoad
  3. Дерево с описанием подключенного hardware, оно используется для создания HKLM\HARDWARE ветки реестра.
  4. Копия загруженного реестра HKLM\System
  5. Указатель на список загруженных (но не инициализированных) драйверов участвующих в старте Windows.
  6. Прочая информация необходимая для загрузки.

Инициализация ядра Windows происходит в два этапа. До этого происходит инициализация Hardware Abstraction Layer, который в числе всего прочего настраивает контроллеры прерывания для каждого CPU.
На этой же стадии загружаются в память строки с сообщениями для BSOD, потому как в момент падения они могут быть недоступны или повреждены.

  • Первая фаза инициализации ядра:
    1. Слой Executive инициализирует свои объекты состояний – глобальные объекты, списки, блокировки. Производится проверка Windows SKU (Stock Keeping Unit), примеры Windows 10 SKU — Home, Pro, Mobile, Enterprise, Education.
    2. Если включен Driver Verifier, то он инициализируется.
    3. Менеджер памяти создаёт структуры данных, необходимые для работы внутренних API для работы с памятью (memory services), резервирует память для внутреннего пользования ядром.
    4. Если подключен отладчик ядра (kernel debugger) ему отправляется уведомление загрузить символы для драйверов загружаемых во время старта системы.
    5. Инициализируется информация о версии билда Windows.
    6. Старт Object Manager – позволяет регистрировать именованные объекты к которым могут получать доступ по имени другие компоненты. Яркий пример – мьютекс по которому приложение позволяет запустить единственный экземпляр. Здесь же создаётся храниться handle table, по которой устанавливается соответствие к примеру между HWND и объектом описывающим окно.
    7. Старт Security Reference Monitor подготавливает всё необходимое для создания первого аккаунта.
    8. Process Manager подготавливает все списки и глобальные объекты для создания процессов и потоков. Создаются процесс Idle и System (в нём исполняется “Windows10.exe” он же NtOsKrnl.exe), они пока не исполняются, потому как прерывания выключены.
    9. Инициализация User-Mode Debugging Framework.
    10. Первая фаза инициализации Plug and Play Manager. PnP – это стандарт который реализовывается на уровне производителей периферии, материнских плат и ОС. Он позволяет получать расширенную информацию о подключенных устройствах и подключать их без перезагрузки ПК.

  • Вторая фаза инициализации ядра. Она содержит 51 шаг, поэтому я пропущу многие из них:
    1. По завершению первой фазы главный поток процесса System (NtOsKrnl.exe) уже начал исполнение. В нём производится вторая фаза инициализации. Поток получает самый высокий приоритет – 31.
    2. HAL настраивает таблицу прерываний и включает прерывания.
    3. Показывается Windows Startup Screen, которая по умолчанию представляет из себя чёрный экран с progress bar.
    4. Executive слой инициализирует инфраструктуру для таких объектов синхронизации как Semaphore, Mutex, Event, Timer.
    5. Объекты для User-Mode Debugger проинициализированы.
    6. Создана symbolic link \SystemRoot.
    7. NtDll.dll отображена в память. Она отображается во все процессы и содержит Windows APIs.
    8. Инициализирован драйвер файловой системы.
    9. Подсистема межпроцессного общения между компонентами Windows ALPC проинициализирована. Можете думать о ней как о named pipes или Windows Communication Foundation для межпроцессного общения.
    10. Начинается инициализация I/O Manager, который создаёт необходимые структуры данных для инициализации и хранения драйверов подключенной к компьютеру периферии. Этот процесс очень сложный.
      Здесь же инициализируются компоненты Windows Management Instrumentation и Event Tracing for Windows (на него полагается Windows Performance Analyzer). После этого шага все драйвера проинициализированы.
    11. Запускается процесс SMSS.exe (Session Manager Sub System). Он отвечает за создание режима пользователя, в котором будет создана визуальная часть Windows.

Запуск подсистем – SMSS, CSRSS, WinInit

SMSS.exe отличается от пользовательских процессов, это нативный процесс и это даёт ему дополнительные полномочия. SMSS.exe работает с ядром в обход Windows API, он использует то что называется Native API. Windows API – обёртка вокруг Native API. SMSS.exe первым делом запускает подсистему Windows (CSRSS.exe – Client Server Runtime Sub System) и заканчивает инициализацию реестра.

Процесс и потоки SMSS.exe помечены как критические, это значит что если они неожиданно завершаться, к примеру из-за ошибки, это приведёт к падению системы. Для общения с подсистемами, к примеру вызову API создающему новую сессию, SMSS создаёт ALPC-порт с именем SmApiPort. Загружаются из реестра переменные среды окружения, запускаются программы такие как Check Disk (autochk.exe, эти программы записаны в реестре HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute). SMSS.exe запускается для каждой пользовательской сессии. Глобальные переменные (очередь сообщений например) у каждой сессии своя за счёт механизма виртуальной памяти. В Windows есть контексты потока, процесса и сессии. Каждый SMSS.exe запускает свой экземпляр подсистемы, на данный момент это только CSRSS.exe (Windows), в прошлом поддерживались операционные системы OS/2 (os2ss.exe) и POSIX (psxss.exe), но эта идея была неудачной. Самый первый SMSS.exe засыпает в ожидании процесса WinInit.exe. Остальные экземпляры вместо этого создают процесс WinLogon который показывает UI для входа.

WinInit.exe инициализирует подсистемы для создания графической оболочки – Windows Station и десктопы, это не тот рабочий стол который вы видите, это иная концепция Windows. Далее он запускает процессы:

  1. Services.exe Services Control Manager (SCM) запускает сервисы и драйвера помеченные как AutoStart. Сервисы запускаются в процессах svchost.exe. Есть утилита tlist.exe, которая запущенная с параметром tlist.exe -s напечатает в консоли имена сервисов в каждом из svchost.exe.
  2. LSASS.exe – Local System Authority.
  3. LSM.exe – Local Session Manager.

WinLogon.exe – загружает провайдеры аутентификации (credential providers), которые могут быть password, Smartcard, PIN, Hello Face. Он порождает процесс LogonUI.exe который и показывает пользователю интерфейс для аутентификации, а после валидирует введённые данные (логин и пароль, PIN).

Если всё прошло успешно, то WinLogon запускает процесс указанный в ключе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit. По умолчанию это процесс UserInit.exe, который:

  1. Запускает скрипты указанные в реестрах:
    • HKCU\Software\Policies\Microsoft\Windows\System\Scripts
    • HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts
  2. Если групповая политика безопасности определяет User Profile Quota, запускает %SystemRoot%\System32\Proquota.exe
  3. Запускает оболочку Windows, по умолчанию это Explorer.exe. Этот параметр конфигурируется через реестр:
    • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
    • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell

WinLogon уведомляет Network Provider о залогинившемся пользователе, на что тот восстанавливает и подключает системные диски и принтеры сохранённые в реестре. Network Provider представляет из себя файл mpr.dll из системной папки, который хостится в процессе svchost.exe, т.е. сервис Windows.

Дерево процессов выглядит следующим образом, на нём можно увидеть кто и кого создал (показаны не все процессы, может немного отличаться от последний версий Windows).

Где здесь клавиатура?

Во время запуска ядро Windows считывает из реестра информацию о контроллере системной шины, как правило это шина PCI (реже MSI), к ней подключены контроллеры портов ввода-вывода, в том числе и USB, PS/2. Информация о нём записывается во время установки Windows. Система загружает для него драйвер и рекурсивно обходит все порты так же загружая для каждого из них свой драйвер. Драйвера могут комбинироваться в узлы (driver node), к примеру драйвер клавиатуры, будет соединён с драйвером порта PS2. А вот порт USB сложнее — сначала драйвер порта, потом драйвер для работы с протоколом HID и только потом клавиатура.

Каждый порт контроллируется своим чипом, который мониторит подключение, принимает/отправляет сигналы между CPU и устройством. Если чип-сет Южный мост не встроен в CPU, как это часто делают в ноутбуках, а существует отдельным чипом на материнке, то правильней говорить: сигнал между Южным мостом и контроллером порта. Чип контроллирующий порт имеет выделенную линию с контроллером прерываний (PIC или APIC), по которой он может попросить обратить на себя внимание CPU, к примеру считать данные от клавиатуры (порт PS/2, с USB другая история). Поскольку ОС загрузила для порта драйвер, она может отдавать ему команды, читать и отправлять данные. В нашем примере был загружен драйвер из C:\Windows\System32\i8042prt.sys. Давайте вспомним предыдущую статью. В старых компьютерах с PIC на чипе Intel 8259 было 15 линий прерываний, где клавиатура была подключена к ножке IRQ1, таймер IRQ0, а мышка к IRQ12, который на самом деле был пятой ножкой второго чипа 8259, который мультиплексировал свои прерывания через ножку IRQ2 первого контроллера. В современных PIC могут быть 255 контактов для сигналов прерываний. Во время загрузки ОС программирует APIC/PIC возвращать определённое число когда скажем пришло прерывание от порта клавиатуры или USB и по этому номеру CPU находит в таблице векторов прерываний функцию которую надо выполнить. Номер прерываний определяют HAL и Plug’n’Play Manager. Контроллер прерываний ищет сигнал на своих ножках в определённом порядке, к примеру в бесконечном цикле проверяет напряжение на ножках от 1 до MAX_PIN. Этот порядок определяет приоритет, к примеру клавиатура будет замечена раньше мышки, а таймер раньше клавиатуры. Чтобы не зависеть от особенностей работы контроллеров прерываний Windows абстрагирует концепцию IRQ (Interrupt Request) в IRQL (Interrupt Request Level). Будь у контроллера прерываний хоть 15 хоть 255 линий они все будут отображены на 32 IRQL для x86 и 15 IRQL для x64 и IA64.

Что означают приоритеты IRQL:

  1. High – когда происходит краш системы, обычно это вызов функции KeBugCheckEx.
  2. Power Fail – не используется. Изначально был придуман для Windows NT.
  3. Interprocessor Interrupt – нужен отправить запрос другому CPU на мультипроцессорной системе выполнить действие, например обновить TLB cache, system shutdown, system crash (BSOD).
  4. Clock – нужен чтобы обновлять системные часы, а так же вести статистику сколько времени потоки проводят в режиме пользователя и ядра.
  5. Profile – используется для real-time clock (local APIC-timer) когда механизм kernel-profiling включен.
  6. Device 1 … Device N – прерывания от устройств I/O. Во время прерывания данные от клавиатуры, мыши и других устройств считываются в отдельные буфера и сохраняются в объектах типа DPC (Deferred Procedure Call), чтобы обработать их позже и дать возможность устройствам переслать данные. После приоритет снижается до Dispatch DPC
  7. Dispatch DPC — как только данные от устройств получены можно начинать их обрабатывать.
  8. APC — Asynchronous Procedure Call. Через этот механизм вы можете исполнить код когда поток будет спать вызвав WaitForSingleObject, Sleep и другие.
  9. Passive/Low — здесь исполняются все приложения в User Mode.

Если вы всегда программировали в режиме пользователя, то никогда не слышали про IRQL, потому что все пользовательские программы выполняеются с приоритетом Passive/Low (0). Как только происходит событие с большим уровнем приоритета (событие от клавиатуры, таймер планировщика потоков), процессор сохраняет состояние прерванного потока, которое представляет из себя значения регистров CPU, и вызывает диспетчер прерываний (interrupt dispatcher, просто функция), который повышает приоритет IRQL через API KeRaiseIrql в HAL и вызывает непосредственно сам код обработчика (interrupt’s service routine). После этого IRQL CPU понижается до прежнего уровня через функцию KeLowerIrql и прерванный поток начинает обработку с того же места где его прервали. На этом механизме основан планировщик потоков. Он устанавливает таймер, который с определённым интервалом (квант времени) генерирует прерывание с приоритетом DPC/Dispatch (2) и в своей interrupt’s service routine по определённому алгоритму назначает новый поток на исполнение.

Механизм IRQL реализовывается на уровне софта в Hardware Abstraction Layer (HAL.dll), а не железа. В Windows системах есть драйвер шины (bus driver), который определяет наличие устройств подключенных к шинам – PCI, USB и др. и номера прерываний которые могут быть назначены каждому устройству. Драйвер шины сообщает эту информацию Plug and play manager, который уже решает какие номера прерываний назначить каждому устройству. Далее арбитр прерываний внутри PnP Mgr (PnP interrupt arbiter) устанавливает связи между IRQ и IRQL.

Когда приходит прерывание от клавиатуры, любой исполняемый в данный момент поток (это может быть ваша программа) назначается на его обработку. Interrupt dispatcher повышает приоритет IRQL CPU до одного из уровней Device1-DeviceN. После этого менеджер виртуальной памяти не сможет найти страницу если она не загружена в RAM (не сможет обработать Page Fault), планировщик потоков не сможет прервать выполнение, потому что они все работают с меньшим уровнем IRQL. Главная задача драйвера клавиатуры в этот момент считать полученные данные и сохранить их для дальнейшей обработки. Данные записываются в объект типа _DPC (Deferred Procedure Call), который сохраняется в список DPC потока (что-то вроде std::list<DPC>, в ядре ОС вместо массивов используются связанные списки). Как только прерывания от всех внешних устройств обработаны, IRQL потока понижается до уровня DPC в котором и производится обработка отложенных процедур (DPC). В коде обработчика DPC для клавиатуры вызывается функция из драйвера клавиатуры Kbdclass.sys:

VOID KeyboardClassServiceCallback(
  _In_    PDEVICE_OBJECT       DeviceObject,
  _In_    PKEYBOARD_INPUT_DATA InputDataStart,
  _In_    PKEYBOARD_INPUT_DATA InputDataEnd,
  _Inout_ PULONG               InputDataConsumed
);

Так вот, драйвер клавиатуры (kbdclass.sys) получает данные от порта (USB, PS2) через прерывание и записывает их через WriteFile, компонент внутри ядра Windows просыпается, считывает их используя API ReadFile и добавляет в очередь сообщений с клавиатуры. API для работы с файлом могут использоваться для чтения данных с драйверов. С этого момента начинается обработка данных стеком ввода Windows, об этом в следующей статье.

Если у вас есть ПК с PS2 портом и вы умеете пользоваться WinDbg в режиме ядра, то можете легко найти обработчик прерываний клавиатуры напечатав команду !idt, которая выведет на экран всю таблицу векторов прерываний. Прерывание вклинивается в ход выполнения программы, слово вектор здесь подразумевает направление, направление исполнения программы. WinDbg был сделан специально для отладки Windows, самая последняя версия называется WinDbgX. Он имеет текстовый интерфейс, который отпугивает людей привыкших к Visual Studio, однако предоставляет гораздо больше возможностей, в частности исполнение скриптов. Прерывание фиолетового порта PS2 выделено красным. Функция которая его обрабатывает называется I8042KeyboardInterruptService, которая находится в файле i8042prt.sys.

BOOLEAN
I8042KeyboardInterruptService(
  IN  PKINTERRUPT Interrupt,
  IN  PVOID Context
  );

Routine Description:

    This is the interrupt service routine for the keyboard device when
    scan code set 1 is in use.

Arguments:

    Interrupt - A pointer to the interrupt object for this interrupt.

    Context - A pointer to the device object.

Return Value:

    Returns TRUE if the interrupt was expected (and therefore processed);
    otherwise, FALSE is returned.

Сейчас возникает вопрос, откуда у обработчика прерываний аргумент? Кто его передаёт? Ведь CPU ничего не знает о нём. Если поставите в неё breakpoint, то удивитесь ещё больше увидев несколько функций выше по стеку:

0: kd> kC
# Call Site
00 i8042prt!I8042KeyboardInterruptService
01 nt!KiCallInterruptServiceRoutine
02 nt!KiInterruptSubDispatch
03 nt!KiInterruptDispatch
04 nt!KiIdleLoop

Объяснение здесь простое – это не та функция которая сохранена в регистре IDT процессора. То что вы видите на картинке выше на самом деле объекты типа _KINTERRUPT. В таблице прерываний сохранён специальный ассемблерный код (nt!KiIdleLoop), который знает как найти объект описывающий прерывание в памяти. Что же интересного есть в нём?

  1. Указатель на объект представляющий драйвер в памяти.
  2. Указатель на функцию i8042prt!I8042KeyboardInterruptService, которая и вызывает код считывающий данные из порта PS2 через ассемблерную команду IN AL, 0x60 – сохранить значение из порта номер 0x60 в регистре AL.
  3. Функция dispatcher – ей передаётся указатель функцию из пункта №2 и она вызывает её.
  4. Состояние регистров CPU. Перед вызовом прерывания состояние CPU будет сохранено сюда, и отсюда же будет восстановлено.
  5. Приоритет прерывания. Не тот который определяет контроллер прерываний, а тот который Windows считает нужным. Это IRQL (Interrupt Request Level) – абстракция над IRQ.

Как только обработчик прерываний клавиатуры будет вызван, он уведомит драйвер клавиатуры о полученных данных, после чего будет уведомлено ядро ОС, которое обработав данные отправит их дальше по стеку ввода, где они могут быть доставлены приложению, которое на них отреагирует, или перед этим в обработчик языков (азиатские иероглифы, автокоррекция, автозаполнение).
Ядро ОС напрямую не взаимодействует с драйвером клавиатуры, для этих целей используется Plug’n’Play Manager. Этот компонент предоставляет API IoRegisterPlugPlayNotification, который вызовет предоставленную callback-функцию когда устройство будет добавлено или удалено.

Пару слов о USB

Ознакомление с работой порта USB потребовало бы отдельной статьи описывающей его работу и плюс описание обработки данных HID на Windows. Это очень сильно усложнило бы материал, к тому же уже есть хорошие статьи по теме, поэтому PS2 идеальный пример из-за своей простоты.

USB создавался как универсальный порт для всех устройств, будь то клавиатура, фотоаппарат, сканнер, игровой руль с педалями, принтер и пр. Вдобавок он поддерживает вложенность портов – USB материнки => монитор с USB => клавиатура с USB к которой подключена мышка, флешка и USB-hub к которому подключен жёсткий диск. Взглянув на контакты USB 2.0 вы увидите что они не заточены под передачу каких-то определённых данных, как у PS2. Их всего четыре – витая пара для передачи битов данных, плюс и минус питания.

Провода кабеля USB 2.0

USB 3.0 быстрее за счёт дополнительных пяти контактов. Как видите там нету линии CLOCK для синхронизации, поэтому логика передачи данных сложнее. Слева USB 2.0 и справа USB 3.0 для сравнения.

Все данные передаются через протокол HID (Human Interface Device), который описывает форматы, порядок взаимодействия и передачи данных и всё остальное. Стандарт USB 2.0 занимает 650 страниц, документ HID Class Specification, описывающий работу устройств (мыши, клавиатуры и пр) – 97 страниц, их рекомендуется изучить если вы работаете с USB.

Первым делом подключенное устройство должно рассказать о себе, для этого оно отправляет несколько структур данных, в которых указывается ID устройства и ID производителя по которым Plug’n’Play manager может найти в реестре информацию, загрузить и соединить драйвера. USB устройства пассивны, т.е. хост должен сам с определённым интервалом проверять наличие данных. Частота опроса и размер пакета данных задаются в одном из дескрипторов устройства USB. Максимальный размер пакета – 64 байта, что для информации о нажатых клавишах более чем достаточно.

В Windows есть встроенная поддержка HID, она не такая простая как связь драйвера порта PS2 с драйвером клавиатуры, потому что драйвер HID должен уметь обрабатывать все поддерживаемые протоколом сценарии. Вне зависимости от провайдера данных — порты PS2, USB или Remote Desktop или виртуальная машина – на самом верху driver node будет находится Kbdclass, от которого ядро ОС и будет получать информацию. Уведомление о подсоединении клавиатуры будет обрабатываться через Plug’n’Play Manager, так что для ядра Windows не имеет значение какой порт или источник данных от устройства используется.

ч.1 — Основы ОС и компьютера
ч.2 — Как работает материнская плата и клавиатура через порт PS2

О работе ПК ч.3: От включения до полной загрузки Windows 10

Мы продолжаем разбираться как работает ПК на примере клавиатуры и Windows 10. В этой статье поговорим о том как происходит единение софта и железа.

Старт системы

Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.

Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.

Плата ноутбука с кнопкой включения и светодиодом состояния

Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (Nvidia 2070 S) на офисный ПК, то просто вставить её недостаточно, потому как она требует питание в 600W, в то время как такой ПК имеет блок на

500W. Первое что придёт в голову – купить новый блок питания на 650W с отдельной линией для видеокарты. Но и здесь будут разочарования, потому как разъёмы материнки будут не совпадать с разъёмами БП, а если его отдельно воткнуть в розетку и подключить к видюхе тоже ничего не будет – в блоке питания вентилятор не крутится и изображения нет. Так происходит, потому что БП должен получить сигнал от материнки на полное включение. Очевидное решение – новая материнка с совместимыми разъёмами, однако она стоит

$300. Есть решение проще, хоть оно и вызывает опасения пожаробезопасности. Берём скрепку, разгибаем и вставляем в зелёный (PS_ON) и один из чёрных пинов (COM). Теперь всё должно работать.

Поиск загрузчика ОС

Есть два вида прошивки материнки – BIOS (Basic Input Output System) на старых машинах и UEFI (Unified Extensible Firmware Interface) на новых. Windows 10 поддерживает обе и абстрагирует различия между ними. UEFI правильней называть ОС чем прошивкой, потому как он предлагает больше возможностей, к примеру богатый графический интерфейс вместо текстового, наличие мышки, больший объём доступной памяти, улучшенная модель безопасности и валидации файлов ОС, взаимодействие с железом через API, вместо прерываний как в BIOS.

Пример экрана монитора BIOS.

Программа BIOS хранится на отдельном чипе, подключенном к Южному мосту. Этот чип можно достать и перепрошить новой программой, по факту это просто носитель памяти, а не самостоятельный микрокомпьютер.

Настройки BIOS (системное время, например), хранятся на другом чипе который как правило находится возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК. Называется он CMOS, что означает Complementary Metal Oxide Semiconductor, а по-русски просто — КМОП, что есть комплементарная структура металл-оксид-полупроводник.

Если всё прошло успешно, BIOS начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых сектор, обычно он 512 байт, однако современный стандарт – 4096 байт. Установщик Windows в самый первый сектор на диске записывает специальный программный код и данные о разделах. Этот сектор называется Master Boot Record. Диск разбивается на разделы (partitions), отформатированный своей файловой системой. Максимум 4 раздела, каждый из который может быть расширенным (extended partition), такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено. Как только BIOS находит Master Boot Record он считывает оттуда код и передаёт ему управление. Этот код поочередно просматривает данные о разделах и находит тот который помечен как активный, в нём находится код загрузчика Windows (Это не раздел с C:\Windows\System32!), этот раздел называется system partition. Как правило он занимает 100Мб и скрыт от пользователя. В первом секторе этого раздела хранится загрузочный код, которому передаётся управление. Это volume boot sector, код в нём ищет файл Bootmgr, с которого и начинается процесс загрузки Windows. Файл Bootmgr создан через соединение в один файлов Startup.com и Bootmgr.exe.

Запуск на UEFI

Пример экрана загрузки UEFI

BIOS существует больше 30 лет и в попытках исправить его недостатки компания Intel в 1998 году создала стандарт Intel Boot Initiative, позже переименованный в EFI и в 2005 году пожертвованный организации EFI Forum. Недостатки BIOS:
• Работает только в 16-битном режиме
• Может адресовать только 1Mb оперативной памяти
• Часто имеет проблемы совместимости
• MBR ограничен только четырьмя главными разделами диска
• Диск с ОС не может быть больше чем 2.2Tb.
• Имеет очень ограниченные возможности для валидации загрузчика ОС.
На смену BIOS пришёл UEFI, по сути это миниатюрная ОС которая может работать и в 32-bit и в 64-bit. Для совместимости есть опция Compatibility Support Module, которая включается в настройках и эмулирует работу BIOS.

Инициализация ядра

Запуск подсистем – SMSS, CSRSS, WinInit

SMSS.exe отличается от пользовательских процессов, это нативный процесс и это даёт ему дополнительные полномочия. SMSS.exe работает с ядром в обход Windows API, он использует то что называется Native API. Windows API – обёртка вокруг Native API. SMSS.exe первым делом запускает подсистему Windows (CSRSS.exe – Client Server Runtime Sub System) и заканчивает инициализацию реестра.

Процесс и потоки SMSS.exe помечены как критические, это значит что если они неожиданно завершаться, к примеру из-за ошибки, это приведёт к падению системы. Для общения с подсистемами, к примеру вызову API создающему новую сессию, SMSS создаёт ALPC-порт с именем SmApiPort. Загружаются из реестра переменные среды окружения, запускаются программы такие как Check Disk (autochk.exe, эти программы записаны в реестре HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute). SMSS.exe запускается для каждой пользовательской сессии. Глобальные переменные (очередь сообщений например) у каждой сессии своя за счёт механизма виртуальной памяти. В Windows есть контексты потока, процесса и сессии. Каждый SMSS.exe запускает свой экземпляр подсистемы, на данный момент это только CSRSS.exe (Windows), в прошлом поддерживались операционные системы OS/2 (os2ss.exe) и POSIX (psxss.exe), но эта идея была неудачной. Самый первый SMSS.exe засыпает в ожидании процесса WinInit.exe. Остальные экземпляры вместо этого создают процесс WinLogon который показывает UI для входа.

Дерево процессов выглядит следующим образом, на нём можно увидеть кто и кого создал (показаны не все процессы, может немного отличаться от последний версий Windows).

Где здесь клавиатура?

Во время запуска ядро Windows считывает из реестра информацию о контроллере системной шины, как правило это шина PCI (реже MSI), к ней подключены контроллеры портов ввода-вывода, в том числе и USB, PS/2. Информация о нём записывается во время установки Windows. Система загружает для него драйвер и рекурсивно обходит все порты так же загружая для каждого из них свой драйвер. Драйвера могут комбинироваться в узлы (driver node), к примеру драйвер клавиатуры, будет соединён с драйвером порта PS2. А вот порт USB сложнее — сначала драйвер порта, потом драйвер для работы с протоколом HID и только потом клавиатура.

Каждый порт контроллируется своим чипом, который мониторит подключение, принимает/отправляет сигналы между CPU и устройством. Если чип-сет Южный мост не встроен в CPU, как это часто делают в ноутбуках, а существует отдельным чипом на материнке, то правильней говорить: сигнал между Южным мостом и контроллером порта. Чип контроллирующий порт имеет выделенную линию с контроллером прерываний (PIC или APIC), по которой он может попросить обратить на себя внимание CPU, к примеру считать данные от клавиатуры (порт PS/2, с USB другая история). Поскольку ОС загрузила для порта драйвер, она может отдавать ему команды, читать и отправлять данные. В нашем примере был загружен драйвер из C:\Windows\System32\i8042prt.sys. Давайте вспомним предыдущую статью. В старых компьютерах с PIC на чипе Intel 8259 было 15 линий прерываний, где клавиатура была подключена к ножке IRQ1, таймер IRQ0, а мышка к IRQ12, который на самом деле был пятой ножкой второго чипа 8259, который мультиплексировал свои прерывания через ножку IRQ2 первого контроллера. В современных PIC могут быть 255 контактов для сигналов прерываний. Во время загрузки ОС программирует APIC/PIC возвращать определённое число когда скажем пришло прерывание от порта клавиатуры или USB и по этому номеру CPU находит в таблице векторов прерываний функцию которую надо выполнить. Номер прерываний определяют HAL и Plug’n’Play Manager. Контроллер прерываний ищет сигнал на своих ножках в определённом порядке, к примеру в бесконечном цикле проверяет напряжение на ножках от 1 до MAX_PIN. Этот порядок определяет приоритет, к примеру клавиатура будет замечена раньше мышки, а таймер раньше клавиатуры. Чтобы не зависеть от особенностей работы контроллеров прерываний Windows абстрагирует концепцию IRQ (Interrupt Request) в IRQL (Interrupt Request Level). Будь у контроллера прерываний хоть 15 хоть 255 линий они все будут отображены на 32 IRQL для x86 и 15 IRQL для x64 и IA64.

Механизм IRQL реализовывается на уровне софта в Hardware Abstraction Layer (HAL.dll), а не железа. В Windows системах есть драйвер шины (bus driver), который определяет наличие устройств подключенных к шинам – PCI, USB и др. и номера прерываний которые могут быть назначены каждому устройству. Драйвер шины сообщает эту информацию Plug and play manager, который уже решает какие номера прерываний назначить каждому устройству. Далее арбитр прерываний внутри PnP Mgr (PnP interrupt arbiter) устанавливает связи между IRQ и IRQL.

Так вот, драйвер клавиатуры (kbdclass.sys) получает данные от порта (USB, PS2) через прерывание и записывает их через WriteFile, компонент внутри ядра Windows просыпается, считывает их используя API ReadFile и добавляет в очередь сообщений с клавиатуры. API для работы с файлом могут использоваться для чтения данных с драйверов. С этого момента начинается обработка данных стеком ввода Windows, об этом в следующей статье.

Если у вас есть ПК с PS2 портом и вы умеете пользоваться WinDbg в режиме ядра, то можете легко найти обработчик прерываний клавиатуры напечатав команду !idt, которая выведет на экран всю таблицу векторов прерываний. Прерывание вклинивается в ход выполнения программы, слово вектор здесь подразумевает направление, направление исполнения программы. WinDbg был сделан специально для отладки Windows, самая последняя версия называется WinDbgX. Он имеет текстовый интерфейс, который отпугивает людей привыкших к Visual Studio, однако предоставляет гораздо больше возможностей, в частности исполнение скриптов. Прерывание фиолетового порта PS2 выделено красным. Функция которая его обрабатывает называется I8042KeyboardInterruptService, которая находится в файле i8042prt.sys.

Сейчас возникает вопрос, откуда у обработчика прерываний аргумент? Кто его передаёт? Ведь CPU ничего не знает о нём. Если поставите в неё breakpoint, то удивитесь ещё больше увидев несколько функций выше по стеку:

0: kd> kC
# Call Site
00 i8042prt!I8042KeyboardInterruptService
01 nt!KiCallInterruptServiceRoutine
02 nt!KiInterruptSubDispatch
03 nt!KiInterruptDispatch
04 nt!KiIdleLoop

Пару слов о USB

Ознакомление с работой порта USB потребовало бы отдельной статьи описывающей его работу и плюс описание обработки данных HID на Windows. Это очень сильно усложнило бы материал, к тому же уже есть хорошие статьи по теме, поэтому PS2 идеальный пример из-за своей простоты.

USB создавался как универсальный порт для всех устройств, будь то клавиатура, фотоаппарат, сканнер, игровой руль с педалями, принтер и пр. Вдобавок он поддерживает вложенность портов – USB материнки => монитор с USB => клавиатура с USB к которой подключена мышка, флешка и USB-hub к которому подключен жёсткий диск. Взглянув на контакты USB 2.0 вы увидите что они не заточены под передачу каких-то определённых данных, как у PS2. Их всего четыре – витая пара для передачи битов данных, плюс и минус питания.

Провода кабеля USB 2.0

USB 3.0 быстрее за счёт дополнительных пяти контактов. Как видите там нету линии CLOCK для синхронизации, поэтому логика передачи данных сложнее. Слева USB 2.0 и справа USB 3.0 для сравнения.

Все данные передаются через протокол HID (Human Interface Device), который описывает форматы, порядок взаимодействия и передачи данных и всё остальное. Стандарт USB 2.0 занимает 650 страниц, документ HID Class Specification, описывающий работу устройств (мыши, клавиатуры и пр) – 97 страниц, их рекомендуется изучить если вы работаете с USB.

Первым делом подключенное устройство должно рассказать о себе, для этого оно отправляет несколько структур данных, в которых указывается ID устройства и ID производителя по которым Plug’n’Play manager может найти в реестре информацию, загрузить и соединить драйвера. USB устройства пассивны, т.е. хост должен сам с определённым интервалом проверять наличие данных. Частота опроса и размер пакета данных задаются в одном из дескрипторов устройства USB. Максимальный размер пакета – 64 байта, что для информации о нажатых клавишах более чем достаточно.

В Windows есть встроенная поддержка HID, она не такая простая как связь драйвера порта PS2 с драйвером клавиатуры, потому что драйвер HID должен уметь обрабатывать все поддерживаемые протоколом сценарии. Вне зависимости от провайдера данных — порты PS2, USB или Remote Desktop или виртуальная машина – на самом верху driver node будет находится Kbdclass, от которого ядро ОС и будет получать информацию. Уведомление о подсоединении клавиатуры будет обрабатываться через Plug’n’Play Manager, так что для ядра Windows не имеет значение какой порт или источник данных от устройства используется.

Как создать загрузочную флешку с Windows 10: 7 действенных способов

Несмотря на принятые разработчиками меры защиты, Windows 10 по-прежнему остается уязвимой. Существует множество сценариев, когда может пригодиться переустановка или восстановление операционной системы. Чтобы быстрее восстановить работоспособность компьютера или ноутбука, нужно знать, как создать загрузочную флешку Windows 10, и держать ее «под рукой».

Сбои в работе ОС встречаются часто, и каждый пользователь ПК с опытом хотя бы раз с ними сталкивался. Вирусы, неисправность «железа» или действия самого пользователя могут нарушить стабильность системы. Разработчики же регулярно выпускают обновления, которые тоже не лишены ошибок, и иногда дело доходит до «экранов смерти». К тому же, еще не все пользователи перешли со старой доброй «семерки» на новенькую «десятку».

Во всех этих ситуациях может помочь загрузочная флешка с Windows 10. Лучше создать ее заблаговременно, ведь проблемы с ОС сильно осложнят процедуру переустановки или сделают ее невозможной. Иначе придется использовать для записи другой ПК или ноутбук.

Чтобы создать загрузочную флешку с Windws 10, можно выбрать один из предложенных далее методов. Но! Для начала нужно выполнить подготовку флешки, чтобы сэкономить время в будущем и избежать появления ошибок.

Подготовка флешки

Для создания загрузочной флешки потребуется сама флешка. Microsoft указывает на вместимость накопителя от 8 ГБ. На практике лучше использовать 16 ГБ и более.

Чтобы подготовить флешку к работе, ее нужно отформатировать в FAT32. Обратите внимание, что все хранимые на ней данные будут стерты.

Процедура форматирования выглядит следующим образом.

1. Вставить флешку в подходящий USB-порт.

2. Зайти в «Мой компьютер».

3. Кликнуть на значке флешки правой клавишей мыши (ПКМ) и в выпадающем меню выбрать пункт «Форматировать. ».

4. В окне форматирования в пункте «Файловая система:» выбрать FAT32. В разделе «Способы форматирования» рекомендуется снять галочку напротив пункта «Быстрое (очистка оглавления)», чтобы выполнить глубокое форматирование (займет больше времени).

5. Нажать кнопку «Начать» и подтвердить выполнение действия.

6. Дождаться завершения процедуры

Дальнейший план действий зависит от выбора метода.

Media Creation Tool — рекомендуемый метод создания загрузочной флешки с Windows 10

Для записи Windows 10 в автоматическом режиме Microsoft предлагает собственную утилиту под названием Media Creation Tool (MCT). Этот метод рекомендуется попробовать первым. Помимо флешки потребуется стабильное Интернет-подключение: в противном случае образ с ошибками приведет к проблемам при записи или установке системы.

Инструкция по созданию загрузочной флешки через утилиту MCT.

1. Перейти на официальный сайт Microsoft по ссылке.
2. Кликнуть по кнопке «Скачать средство сейчас».

3. Дождаться завершения загрузки, вставить флешку, если этого не было сделано раньше, и запустить MCT.

4. Ждем, пока выполняется подготовка, затем нажимаем кнопку «Принять» лицензионное соглашение.

5. Выбираем создание установочного носителя.

6. В открывшемся окне установлены рекомендуемые параметры. Если загрузочная флешка создается для этого ПК или ноутбука, то лучше оставить все как есть и нажать «Далее». Если же Widows 10 нужно поставить на другое устройство, то нужно снять галочку, и выбрать соответствующую архитектуру: 32-разрядная, 64-разрядная или обе сразу.

7. Для дальнейшего создания загрузочной флешки через утилиту MCT в новом окне нужно выбрать «USB-устройство флэш-памяти», и нажать «Далее».

8. Выбираем в меню наш носитель. Если в списке его нет, то нажать «Обновить список дисков».

9. Ждем завершения выполнения процедуры. На этом этапе происходит загрузка, проверка и создание Windows 10 на флешке.

После завершения программа удалит ненужные данные с компьютера.

Что делать в случае возникновения ошибки

Разумеется, это не единственная ошибка, которая теоретически может появиться в работе инструмента MCT.

Список действий, которые могут помочь в решении этой и других проблем.

Остановимся на последнем пункте, ведь поиск причин и устранение проблем, как правило, занимают больше времени.

Как создать загрузочную флешку с Windows 10 без Microsoft Media Creation Tool

Если официальная утилита по какой-то причине не подходит, то можно воспользоваться другими способами создания. Некоторые из методов успешно применялись при создании загрузочной флешки других версий Windows, и не утратили актуальность после выхода Windows 10.

Практически каждый из них предполагает наличие образа Windows 10. Можно использовать как официальный образ ОС от Microsoft, так и сборку от народных умельцев, хотя этот вариант уже не пользуется популярностью и его нельзя назвать рекомендуемым.

Как скачать официальный ISO-образ Windows 10

Для этого существует 2 основных способа. Варианты со скачиванием образа через сторонние сайты и приложения в этом пункте рассматриваться не будут.

Первый способ. Пользуясь инструкцией по созданию загрузочной флешки через утилиту MCT, выполнить первые 6 пунктов. На 7-м пункте вместо «USB-устройство флэш-памяти» выбрать пункт «ISO-файл».

После этого указываем директорию для скачивания образа и ждем завершения процедуры.

Второй способ. Этот метод подойдет продвинутым пользователям, а его преимущество заключается в возможности скачивания образа без MCT. Для этого нужно подменить данные user-agent в браузере через режим эмуляции мобильных устройств или установку соответствующих расширений: User Agent Switcher, User-Agent Switcher или User-Agent Switcher for Chrome. Таким образом имитируется посещение сайта с устройства не на Windows. После этого нужно перейти по ссылке, откуда раньше качали MCT, и где Microsoft любезно предложит перейти на темную сторону скачать образ Windows 10, как это выглядит на скрине ниже.

После подтверждения действий сайт предлагает выбрать язык.

На заключительном этапе выбираем интересующую разрядность.

После клика начнется загрузка. Ссылка действительна в течение суток.

MBR или GPT?

Разметка GPT (GUID Partition Table) рекомендуется для материнских плат с UEFI, но эта оболочка поддерживает работу и с дисками MBR (Master Boot Record) при включенном режиме Legacy и других изменениях в настрйоке. BIOS же поддерживает работу только с таблицей разделов MBR, но эта разметка работает исключительно с 32-разрядными системами.

Инструкция проверки схемы в Windows.

1. Нажать на клавиатуре комбинацию Win + R.

2. Ввести команду: diskmgmt.msc и нажать «Enter».

3. В нижней части окна представлен список физических дисков. На диске, куда будет устанавливаться Windows, кликнуть ПКМ и выбрать пункт «Свойства».

4. В появившемся окне перейти на вкладку «Тома» и посмотреть «Стиль раздела».

Схема GPT рекомендуется для новых систем с поддержкой UEFI, а MBR — для компьютеров и ноутбуков с традиционным BIOS.

Создание загрузочной флешки Windows 10 без скачивания программ

Если материнская плата компьютера или ноутбука поддерживает EFI-загрузку, а диск для установки соответствует таблице разделов GPT, то можно перенести содержимое образа на флешку путем простого перетаскивания. Для этого нужно смонтировать образ в виртуальный привод, что можно сделать в Windows 10, кликнув ПКМ по значку образа и выбрав пункт «Подключить». Еще один вариант — открыть образ в архиваторе WinRAR. Как выглядит смонтированный ISO-образ и архив показано на скрине ниже.

Присутствующие файлы нужно просто перетащить на флешку, оформленную в FAT32. Содержащиеся файлы и папки можно оставить на накопителе.

Для систем с BIOS

Вариант подойдет тем, кто хочет произвести впечатление и заслужить репутацию хакера у наблюдающих за процедурой.

Инструкция по созданию загрузочной флешки через командную строку.

Как это выглядит в командной строке можно посмотреть ниже.

Иногда в процессе форматирования и работы с накопителем возникают ошибки. Например, у старых флешек часто включается защита, которая не позволяет корректно выполнить процедуру. Конкретно в таком случае может помочь редактирование атрибутов, а точнее, их сброс. Для этого после 4 пункта в описанной инструкции нужно выполнить команду: attributes disk clear readonly. После этого продолжить создание с 5-го пункта.

Существует множество вариаций ошибок накопителя, и если предложенное решение не помогло, то лучше найти другую флешку. Иначе придется потратить много времени на поиск и устранение причины сбоя.

После подготовки можно перенести файлы на флешку путем копирования, как это было показано для систем с UEFI, или же продолжить создание в командной строке (предпочтительнее).

UltraISO

Эта многофункциональная утилита применялась для создания загрузочной флешки уже давно, и хорошо себя зарекомендовала благодаря простоте процедуры.

Готово. В окне создания носителя доступна функция форматирования, которой тоже можно пользоваться при необходимости очистки накопителя. Форматирование выполняется до запуска записи образа.

Rufus

Rufus — это многофункциональная утилита для создания загрузочной флешки, которая позволяет настроить все необходимые параметры.

Rufus умеет работать с образами других ОС, а еще программа выполняет нужные действия быстрее других.

Windows 7 USB/DVD Download Tool

Не стоит обращать внимание на название — утилиту может работать и с Windows 10. В эпоху Windows 7 этот инструмент был одним из самых популярных для создания загрузочных флешек, поэтому с ним уже знакомы многие пользователи. Это еще одно приложение от Microsoft. Сейчас на сайте компании программа называется немного иначе — Windows USB / DVD Download Tool, но в названии установщика, как и раньше, фигурирует Windows 7.

Инструкция по созданию загрузочной флешки с Windows 10 в утилите Windows 7 USB/DVD Download Tool.

1. Скачать приложение с официального сайта. Перейти по ссылке, выбрать язык, и установить приложение. Русской локализации у софта нет.

2. Запустить утилиту. Здесь нам предложат пройти 4 этапа.

3. Первый — «Choose ISO file». Указать путь к скачанному образу.

4. Второй — «Choose media type». Выбрать тип носителя, а именно — USB device.

5. Третий — «Insert USB device». Выбрать в списке флешку и нажать кнопку «Begin copying»

6. Четвертый — «Creating bootable USB device». Дождаться завершения процедуры.

По сравнению с другими методами, процесс займет больше времени.

WinSetupFromUSB

Одна из лучших программ для загрузочной флешки, среди преимуществ которой создание мультизагрузочных носителей. Не будем заострять внимание на мультизагрузке, и разберем процесс подготовки флешки с одним образом Windows 10.

В нижней части окна отображаются действия и ход выполнения операций. Когда на экране появится небольшое окошко с сообщением «Job Done» — процедура создания завершена успешно.

  • Какие типы окон существуют в windows
  • Какие файлы можно удалять с диска с windows 10
  • Какие файлы можно удалять из папки windows
  • Какие телефоны на windows phone
  • Какие файлы можно удалить с диска с на windows 10 чтобы освободить место