Начальная загрузка компьютера. Список загрузки операционных систем

В данной статье я поэтапно опишу процесс загрузки операционных систем Windows XP, Vista и Seven. Хотя этот вопрос рассматривается в сети достаточно часто, не затронуть его я не могу. Подобная информация бывает очень полезна при диагностировании неисправности и восстановления работоспособности “умершей” ОСи.

Сегодня мы рассмотрим:

  • Старт BIOS;
  • Загрузку Windows XP;
  • Загрузку Windows Vista/7.

Загрузка BIOS

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

При включении компьютера BIOS проверяет “железо” и если есть проблемы, то информирует нас звуковыми сигналами (набор длинных и коротких гудков). Вот таблица звуковых сигналов BIOS:

Сигналы AMI

Сигнал Возможная неисправность
Отсутствует Неисправен блок питания
Ошибка четности ОЗУ
Ошибка в первых 64 кБ ОЗУ
Неисправность системного таймера
Неисправен CPU
Неисправен контроллер клавиатуры
Неисправна системная плата
Неисправна память видеокарты
Ошибка контрольной суммы BIOS
10к Невозможна запись в CMOS
11к Неисправен кэш на системной плате
1д+2к Неисправна видеокарта
1д+3к Неисправна видеокарта
1д+8к Не подключен монитор

Сигналы AWARD

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

После проверки BIOS считывает настройки из CMOS и в соответствии с мини стартует загрузчик с указанного носителя (CD, HDD, Flash карта). Если загрузка производится с жёсткого диска, то система считывает первые 512 байт Master Boot Record (MBR) и передаёт ему управление.

Если MBR не найден, то загрузка останавливается. Восстановить MBR можно с помощью консоли восстановления Windows (Recovery Console) командой fixmbr.

Процесс загрузки Windows XP

Загрузкой Windows управляет NTLDR, который состоит из двух частей - первый StartUp переводит процессор в защищённый режим и стартует загрузчик ОС. Загрузчик содержит в себе основные функции для работы с дисками отформатированными в FAT*, NTFS и CDFS системы. Загрузчик считывает содержимое boot.ini и, в соответствии с его содержимым (количество ОС, диски на котором установленны и т.п.), продолжает загрузку. Если Windows была переведена в состояние гибернации, то NTLDR загружает в память компьютера файл hiberfil.sys и передаёт управление в ядро Windows. Если вы завершили работу компьютера простым выключением/перезагрузкой, то NTLDR загружает DOS’овский файл NTDETECT.COM, который строит список аппаратного обеспечения и загружает саму операционную систему Windows.

Если файл NTLDR удалён/перемещён/повреждён, то система не загрузится и выведет сообщение “NTLDR is missing. Press CTRL+ALT+DEL to restart“. Решить эту проблему можно в консоли восстановления Windows (Recovery Console) командой fixboot или скопировав NTLDR с рабочей системы в корень диска.

Перед загрузкой ядра, NTLDR выводит на экран опции запуска (Если была нажата клавиша F8, или работа системы была завершена аварийно). После выбора параметров запуска, стартует ядро системы - ntoskrnl.exe (мы видим анимацию из белых прямоугольников на чёрном экране). Далее загружается тип абстрактного уровня аппаратного обеспечения - HALL.DLL. Это нужно, чтобы ядро могло абстрагироваться от железа, оба файла находятся в директории System32. Далее загружается библиотека расширения ядра отладчика аппаратного обеспечения kdcom.dll и bootvid.dll, который загружает логотип Windows и индикатор статуса загрузки).

Одним из самых ответственных моментов является загрузка системного реестра config\system, очень часто система не может прочитать файл system и загрузка становится невозможна или начинается .

Процесс загрузки Windows Vista/7

Процесс загрузки Windows Vista и Windows 7 (Seven) начинает отличатся от процесса загрузки предыдущих версий ОС уже после чтения MBR. Установщик Windows создаёт небольшой загрузочный раздел, в котором и находяться всё, что нужно для запуска ОС. MBR передаёт загрузку PBR (Partition Boot Record), а затем стартует BOOTMGR (Windows Boot Manager). BOOTMGR пришёл на смену NTLDR и руководит загрузкой операционной системы. BOOTMGR читает параметры загрузки из Boot Configuration Database (BCD, Базы данных загрузочной конфигурации, пришла на смену boot.ini) и загружает Winload.exe (OS loader boot application, загрузчик ОС). Winload.exe загружает ядро операционной системы, далее процесс загрузки похож на старт Windows XP.

Для редактирования Boot Configuration Database (BCD) можно использовать утилиту Bcdedit.exe запустив её из Windows Recovery Environment (WinRE). Там же можно задействовать утилиту Bootrec.exe для исправления ошибок.

Операционная система обычно хранится во внешней памяти компьютера – на диске. При включении компьютера она считывается с дисковой памяти и размещается в оперативной памяти. Этот процесс называется загрузкой операционной системы.

Диск, на котором находятся файлы ОС и с которого производится ее загрузка, называется системным .
Программы могут выполняться, только если они находятся в оперативной памяти, поэтому файлы ОС необходимо загрузить в оперативную память.
После включения компьютера производится загрузка ОС с системного диска в оперативную память. Загрузка должна выполняться в соответствии с программой загрузки – загрузчика ОС.
Поэтапно загрузку ОС можно представить следующим образом:
В компьютере находится ПЗУ, содержащее программы тестирования компьютера и первого этапа загрузки ОС, которые называются BIOS (Basic Input/Output System – базовая система ввода-вывода). После включения компьютера эти программы начинают выполняться. Причем информация о ходе этого процесса высвечивается на экране дисплея. Сначала производится тестирование и настройка аппаратных средств, затем начинается загрузка ОС. На этом этапе процессор обращается к диску и ищет в 1 секторе диска наличие небольшой программы-загрузчика Master Boot .

Master Boot ищет на диске основной загрузчик Boot Sector , загружает его в память и передает ему управление. Boot sector (сектор начальной загрузки) – часть диска, зарезервированная для программы самозагрузки ОС. В этом секторе обычно содержится короткая программа на машинном языке, которая загружает ОС.
Далее основной загрузчик ищет остальные модули операционной системы и загружает их в оперативную память.
После окончания загрузки ОС управление передается командному процессору. В случае использования интерфейса командной строки на экране появляется приглашение системы, в противном случае загружается графический интерфейс.
В зависимости от вида ОС, процесс ее загрузки будет отличаться. В состав ОС обязательно входят файлы, отвечающие за процесс загрузки. Рассмотрим «работу» файлов в процессе загрузки Windows XP .

  1. Начальная фаза загрузки.
  2. Выбор системы.
  3. Определение «железа».
  4. Выбор конфигурации.

В начальной фазе NTLDR переключает процессор в защищенный режим. Затем загружает соответствующий драйвер файловой системы для работы с файлами любой файловой системы, поддерживаемой XP (FAT-16, FAT-32 и NTFS).

Если в корневой директории есть BOOT.INI, то его содержание загружается в память. Если в нем есть записи более чем об одной операционной системе, NTLDR останавливает работу — показывает меню с выбором и ожидает ввода от пользователя определенный период времени.

Если такого файла нет, то NTLDR продолжает загрузку с первого раздела, первого диска, обычно это C:\.
Если в процессе выбора пользователь выбрал Windows NT, 2000 или XP , то проверяется нажатие F8 и показ соответствующего меню с опциями загрузки.
После каждой удачной загрузки XP создает копию текущей комбинации драйверов и системных настроек известную как Last Known Good Configuration. Этот коллекцию можно использовать для загрузки в случае если некое новое устройство внесло разлад в работу операционной системы.

Если выбранная операционная система XP, то NTLDR находит и загружает DOS программу NTDETECT.COM для определения «железа», установленного в компьютере. NTDETECT.COM строит список компонентов, который потом используется в ключе HARDWARE ветки HKEY_LOCAL_MACHINE реестра.

Если компьютер имеет более одного профиля оборудования программа останавливается с меню выбора конфигурации. После выбора конфигурации NTLDR начинает загрузку ядра XP (NTOSKRNL.EXE). В процессе загрузки ядра (но перед инициализацией) NTLDR остается главным в управлении компьютером. Экран очищается и внизу показывается анимация из белых прямоугольников. Кроме ядра загружается и слой Hardware Abstraction Layer (HAL.DLL), для того чтобы ядро могло абстрагироваться от «железа». Оба файла находятся в директории System32.

NTLDR загружает драйвера устройств, помеченные как загрузочные. Загрузив их, NTLDR передает управление компьютером дальше. Каждый драйвер имеет ключ в HKEY_LOCAL_MACHINE\SYSTEM\Services. Если значение Start равно SERVICE_BOOT_START, то устройство считается загрузочным. Для каждого такого устройства на экране печатается точка.

NTOSKRNL в процессе загрузки проходит через две фазы — так называемую фазу 0 и фазу 1. Первая фаза инициализирует лишь ту часть микроядра и исполнительные подсистемы, которая требуется для работы основных служб и продолжения загрузки. Фаза 1 начинается когда HAL подготавливает систему для обработки прерываний устройств. Если на компьютере установлено более одного процессора, они инициализируются. Все исполнительные подсистемы реинициализируются в следующем порядке: Object Manager, Executive, Microkernel, Security Reference Monitor, Memory Manager, Cache Manager, LPCS, I/O Manager, Process Manager.

Инициализация Менеджера ввода/Вывода начинает процесс загрузки всех системных драйверов. С того момента где остановился NTLDR загружаются драйвера по приоритету. Сбой в загрузке драйвера может заставить XP перезагрузиться и попытаться восстановить Last Known Good Configuration. Последняя задача фазы 1 инициализации ядра — запуск Session Manager Subsystem (SMSS). Подсистема ответственна за создание пользовательского окружения, обеспечивающего интерфейс NT. SMSS работает в пользовательском режиме, но в отличии от других приложений SMSS считается доверенной частью операционной системы и «родным» приложением (использует только исполнительные функции), что позволяет ей запустить графическую подсистему и login. SMSS загружает win32k.sys — графическую подсистему. Драйвер переключает компьютер в графический режим, SMSS стартует все сервисы, которые должны автоматически запускаться при старте. Если все устройства и сервисы стартовали удачно, процесс загрузки считается удачным и создается Last Known Good Configuration.

Процесс загрузки не считается завершенным до тех пор, пока пользователь не залогинился в систему. Процесс инициализируется файлом WINLOGON.EXE, запускаемым как сервис и поддерживается Local Security Authority (LSASS.EXE), который и показывает диалог входа в систему. Это диалоговое окно показывается примерно тогда, когда Services Subsystem стартует сетевую службу.

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

Загрузка начинается с того, что BIOS делает попытку прочитать самый первый сектор дискеты, вставленной в дисковод А: (на загрузочной дискете этот сектор содержит загрузчик операционной системы). Если в дисковод вставлена системная дискета, с нее считывается загрузчик и ему передается управление.

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

Если же дискеты в дисководе А: вообще нет, то BIOS читает основную загрузочную запись диска С: (Master Boot Record). Обычно это самый первый сектор на диске. Управление передается загрузчику, который находится в этом секторе. Загрузчик анализирует содержимое таблицы разделов (она также находится в этом секторе), выбирает активный раздел и читает загрузочную запись этого раздела. Загрузочная запись активного раздела (Boot Record) аналогична загрузочной записи, находящейся в первом секторе системной дискеты.

Загрузочная запись активного раздела считывает с диска файлы IO.SYS и MSDOS.SYS (именно в этом порядке). Затем считываются и загружаются резидентные драйверы. Начинается формирование связанного списка драйверов устройств. Анализируется содержимое файла CONFIG.SYS, загружаются описанные в этом файле драйверы. Сначала загружаются драйверы, описанные параметром DEVICE, затем (только в MS-DOS версии 4.х и 5.0) резидентные программы, указанные операторами INSTALL. После этого считывается командный процессор и ему передается управление.

Командный процессор состоит из трех частей - резидентной, инициализирующей и транзитной. Первой загружается резидентная часть. Она обрабатывает прерывания INT 22H, INT 23H, INT 24H, управляет загрузкой транзитной части. Эта часть командного процессора обрабатывает ошибки MS-DOS и выдает запрос пользователю о действиях при обнаружении ошибок.

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

Транзитная часть командного процессора располагается в старших адресах памяти. В этой части находятся обработчики внутренних команд MS-DOS и интерпретатор командных файлов с расширением имени.BAT. Транзитная часть выдает системное приглашение (например, А:\>), ожидает ввода команды оператора с клавиатуры или из пакетного файла и организует их выполнение.

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

1.3. Общая схема работы dos

Для того чтобы правильно работать с системным программным и аппаратным обеспечением, нужно четко представлять себе механизм взаимодействия прикладной программы с компьютером. На рис. 1.1 показаны функциональные связи программы с программно-аппаратным обеспечением IBM PC.

Рис.1. Функциональные связи программы для MS-DOS с программно-аппаратным обеспечением ПЭВМ

Как правило, ядро DOS разделяют на несколько подсистем, каждая из которых отвечает за выполнение той или иной задачи. Как показано на рисунке, обычно выделяются следующие подсистемы:

    файловая система;

    система управления памятью;

    система управления программами;

    система связи с драйверами устройств;

    система обработки ошибок;

    службу времени;

    систему ввода/вывода консоли оператора.

Эти подсистемы общаются с аппаратурой через BIOS, драйверы или напрямую. Прикладное программное обеспечение может вызывать подсистемы DOS, работать с BIOS или непосредственно с аппаратурой. Обратите, однако, внимание на то, что прикладные программы могут обращаться к драйверам только через соответствующую подсистему DOS.

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

Рассмотрим подсистемы DOS отдельно.

А вы никогда не задумывались над тем, что же происходит с операционной системой в тот момент, когда она рисует свой логотип и говорит «Starting Windows»? И вообще, почему она долго загружается? Ведь при старте системы уж точно не решаются никакие задачи, сложные с вычислительной точки зрения!

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

Давайте интереса ради разберемся, какие модули, в каком количестве и в каком порядке загружаются при старте ОС. Чтобы выяснить это, можно, например, получить лог загрузки системы. Подопытная ОС в моем случае - Windows 7 Enterprise x64. Логировать процесс загрузки будем при помощи отладчика ядра. Существует несколько вариантов отладчиков ядра, лично я предпочитаю WinDbg. Также нам понадобятся некоторые вспомогательные средства для волшебного превращения лога в нечто более приятное глазу.

Mining and crafting

Настройка отладки хорошо гуглится, поэтому описывать подробно этот процесс я не буду. Поскольку нас интересует все происходящее с момента старта системы, нам нужно отметить пункт «Cycle Initial Break», с помощью чего отладчик остановится, как только в отлаживаемой системе будет загружена подсистема отладки ядра. Дублирование вывода в файл можно осуществить при помощи команд ".logopen" и ".logclose", это просто. Другая полезная команда - ".cls". Она очищает экран команд, и да, только экран команд.

Интересующая нас функция - «MiCreateImageFileMap». Это внутренняя функция менеджера памяти, проецирующая исполняемый файл в память. Проецирование в память происходит при создании секции, например, при запуске исполняемого файла. Однако учтите, что если исполняемый файл проецируется в память, это не гарантия того, что будет выполнен его код! Эта функция просто создает проекцию, чаще всего «про запас», чтобы, если кто-то надумает запустить модуль на исполнение, можно было сэкономить время его загрузки. На эту функцию поставим логирующую точку останова.

Если у вас достаточно маны, вводите следующую команду:
bu nt!MiCreateImageFileMap "dt nt!_EPROCESS -d ImageFileName @$proc; dt nt!_FILE_OBJECT -d FileName @rcx; g"
Магическая строчка буквально означает следующее:

  • bu (Set Unresolved Breakpoint) - установить неразрешенную точку останова. Не то чтобы кто-то или что-то не разрешал, просто для ее установки необходимо определиться, по какому адресу ее ставить. Дело в том, что заранее не известно, по какому адресу она должна располагаться. При загрузке любого модуля проверяется присутствие в нем необходимой функции, и если такая функция найдена, точка останова устанавливается автоматически. Такой способ установки незаменим при включенном ASLR - рандомизации адресного пространства, поскольку модули будут загружаться каждый раз по разным адресам, и точка останова, установленная по фиксированному адресу, с большой вероятностью окажется не у дел.
  • nt!MiCreateImageFileMap - символ, на котором нужно останавливаться. В WinDbg принята запись в форме "module_name!function_name". В данном случае nt является предопределенным псевдонимом для ntoskrnl.exe.
  • далее следует часть WinDbg-скрипта, которая будет выполняться каждый раз при остановке на этой функции. «dt nt!_EPROCESS -d ImageFileName @$proc» по-русски означает «отобразить поле ImageFileName структуры _EPROCESS из модуля nt при условии ее отображения по адресу, определенному в псевдорегистре «текущий процесс»». Следующая после разделителя ";" команда означает примерно то же самое, только адрес структуры берется из регистра rcx, в котором в Microsoft x64 ABI передается первый параметр функции. «g» означает «go», т.е. продолжить исполнение.

Небольшая рекомендация по использованию логирующих точек останова: старайтесь не использовать расширения отладчика (команды, начинающиеся с "!"), поскольку в таком случае логирование будет выполняться на порядок медленнее.

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

Карта звездного неба


Условно выделим несколько групп загрузки.

Начинается работа OC в модуле ntoskrnl.exe, являющимся ядром ОС. А если еще конкретнее - с функции KiSystemStartup(). Вместе с загружаемыми системными компонентами она формирует фундамент ОС: разделение режимов работы, базовые сервисы для пользовательских приложений и т.п. В эту же группу входят драйверы, отмеченные для загрузки во время старта системы. В двух словах, в этой ракушке зарождается ОС Windows.

Следующий узел - менеджер сессий (session manager). Его представляет первый после системного процесс, стартующий в Windows - smss.exe. Процесс примечателен тем, что является родным (native) процессом Windows, то есть он не использует подсистему Win32, которая в общем-то еще не загружена. Этот процесс использует только нативные сервисы операционной системы посредством ntdll.dll, представляющей собой интерфейс режима пользователя для сервисов ОС. Также этот процесс является доверенным компонентом операционной системы и обладает исключительными правами, например, он может создавать маркеры безопасности (security tokens). Но главное его предназначение - создание сеансов и инициализация подсистем, как графической, так и различных исполняемых (Windows, POSIX). Эта ракушка воздает каждому по потребностям.

Группа входа в систему (logon) состоит из нескольких процессов. В целом они отвечают за инициализацию сеансов. Это включает в себя отображение экрана приветствия, создание рабочих столов, запуск процессов автозагрузки и инициализацию подсистемы безопасности и т.п. Этот веник отметает всех посторонних.

Самой массивной оказалась группа сервисов. Во многом она обязана своим объемом службе SuperFetch. Эта та самая, про которую говорят, что она по выходным заранее прогружает офисный пакет, а в начале рабочей недели - Steam с игрушками. Superfetch прогружает огромное количество модулей при старте системы, чтобы потом «все быстрее работало». Да и кроме него в системе хватает сервисных приложений и автозапускающихся драйверов. Думаю, все видели оснастку «Службы и приложения». Эта звезда жизни заводит в системе все, что нужно и не очень.

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

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

Лично я держу получившуюся картинку под боком. По ней хорошо прослеживаются зависимости, например, драйверов. Также в паре с утилитой Sysinternals Autoruns можно увидеть, на каком этапе загрузки подтягиваются те или иные модули.

Граф загрузки был построен для ОС Windows 7 Enterprise x64, установленной на виртуальной машине VMware. Ниже приведены векторное изображение графа и непосредственно файл в формате gml, с которым можно поиграться в любом редакторе графов.

После включения вашего компьютерапроисходит тестирование апgаратного обеспечение. Рассмотрим порядок загрузки Windows. Операционная система проверяет какие именно компоненты подключены к компьютеру, и их испраdность. Если же система обнаруживает какую либо неполадку с одной из важных составляющих, тогда процесc загрузки будет остановлен и вы будите уведомлены о причине в сообщении выведенном на экране.Кроме этого имеется еще и специальная «азбука» звуковых сигналов. По количеству писков BIOS можно определить работоспособность вашего компьютера. К примеру, один короткий сигнал, значит, что тестирование уcпешно завершено. А допустим один длинный и два коротких, о том что BIOS не обнаружил видеокарту.

После этой процедуры происходит поиски загрузочного сектора, который заранее выбран в BIOS. Как правило это жесткий диск. Но и этот этап не относится к загрузке операционной системы.

Когда загрузочный сектор найден, то BIOS производит считывание содержимого с 1-го сектора диска. В нем и находится MBR (Master Boot Records), это основная загрузочная запись и конечно же таблица разделов диска.Именно с ее помощью BIOS может определить, какой раздел является активным. И с него начинается загрузка операционной системы.

В дальнейшеv по порядку загрузки Windows управление передается загрузочной записи,она находится в 1-ом секторе активного раздела. При ее помощи запускается менеджер загрузки Windows.

После этого из файла Boot Configuration Data который находится в папке (Boot) активного раздела, менеджер загрузки производит считывание конфигурации системы. Если Этот файл содержит несколько записей, то вы увидите меню в котором сможете выбрать операционную систему.

Далее происходит запуск Winload.exe, это модуль загрузки системы, компонентов ядра (Ntoskml.exe и Hal.dll), а так же системных служб и других составляющих компонентов. Ну а в это время вы увидите логотип Windows.

После происходит автоматический вход в систему. Если же у вас установлен вход в систему при помощи логина и пароля, тогда происходит загрузка процесса winlogon.exe, который выведет вам окно для ввода вашего логина и пароля.

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

1. В параметрах BIOS обязательно должен быть прописан диск, на котором хранится операционная система;

2. В первом секторе жесткого диска должны быть корректные MBR и таблица разделов, и один из разделов помечен как активный;

3. На активном разделе должна быть загрузочная запись а в его корневой папке должен содержаться файл bootmgr;

4. В папке Boot должен содержаться файл BCD с правильными записями о операционных системах которые установленны на жестком диске.

После включения вашего компьютера происходит тестирование апgаратного обеспечение. Рассмотрим порядок загрузки Windows .

Операционная система проверяет какие именно компоненты подключены к компьютеру, и их испраdность. Если же система обнаруживает какую либо неполадку с одной из важных составляющих, тогда процесc загрузки будет остановлен и вы будите уведомлены о причине в сообщении выведенном на экране.

Кроме этого имеется еще и специальная «азбука» звуковых сигналов. По количеству писков BIOS можно определить работоспособность вашего компьютера или ноутбука. К примеру, один короткий сигнал, значит, что тестирование уcпешно завершено. А допустим один длинный и два коротких, о том что BIOS не обнаружил видеокарту. Мы в сервис-центре можем подсказать и расшифровать сигналы даже удаленно, обращайтесь и ремонт ноутбуков на дому покажеться проще простого.

Поиски загрузочного сектора

После этой процедуры происходит поиски загрузочного сектора, который заранее выбран в BIOS. Как правило это жесткий диск. Но и этот этап не относится к загрузке операционной системы.Когда загрузочный сектор найден, то BIOS производит считывание содержимого с 1-го сектора диска. В нем и находится MBR (Master Boot Records), это основная загрузочная запись и конечно же таблица разделов диска. Именно с ее помощью BIOS может определить, какой раздел является активным. И с него начинается загрузка операционной системы. В дальнейшем по порядку загрузки Windows управление передается загрузочной записи, она находится в 1-ом секторе активного раздела. При ее помощи запускается менеджер загрузки Windows. После этого из файла Boot Configuration Data который находится в папке (Boot) активного раздела, менеджер загрузки производит считывание конфигурации системы. Если Этот файл содержит несколько записей, то вы увидите меню в котором сможете выбрать операционную систему. Далее происходит запуск Winload.exe, это модуль загрузки системы, компонентов ядра (Ntoskml.exe и Hal.dll), а так же системных служб и других составляющих компонентов. Ну а в это время вы увидите логотип Windows. После происходит автоматический вход в систему. Если же у вас установлен вход в систему при помощи логина и пароля, тогда происходит загрузка процесса winlogon.exe, который выведет вам окно для ввода вашего логина и пароля. Если произошел сбой, то компьютерная помощь на дому оперативно поможет. Итак. При соблюдении ряда условий, не будет нарушен порядок загрузки Windows, а следовательно вы сможете спокойно работать за своим компьютером. Таких условий четыре, а именно:

1. В параметрах BIOS обязательно должен быть прописан диск, на котором хранится операционная система;

2. В первом секторе жесткого диска должны быть корректные MBR и таблица разделов, и один из разделов помечен как активный;

3. На активном разделе должна быть загрузочная запись а в его корневой папке должен содержаться файл bootmgr;

4. В папке Boot должен содержаться файл BCD с правильными записями о операционных системах которые установленны на жестком диске.