как происходит загрузка windows

Как происходит загрузка windows

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

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

Загрузка BIOS

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

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

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

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

После проверки 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 или что спрятано под стартовым логотипом

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

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

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

Mining and crafting

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

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

Если у вас достаточно маны, вводите следующую команду:

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

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

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

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

Начинается работа 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, с которым можно поиграться в любом редакторе графов.
Граф в формате GML
Векторное изображение графа

Внимание! Бонус!
Граф загрузки для чистой ОС Windows 8 Enterprise x64 на живой машине 😉
Граф в формате GML
Векторное изображение графа

Источник

Как загружается Windows 10?

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

Как загружается Windows 10

Процесс загрузки Windows 10 в системах BIOS состоит из четырех основных этапов. Он начинается с POST и заканчивается загрузкой ОС Windows или ядра. Вот список этапов, через которые он проходит:

Во время каждого процесса загружается программа. В зависимости от того, использует ли он Legacy BIOS или UEFI, пути к файлам и файлы меняются.

фаза Процесс загрузки BIOS UEFI
1 Preboot MBR/PBR (загрузочный код) Прошивка UEFI
2 Диспетчер загрузки Windows % SystemDrive% \ Bootmgr \ EFI \ Microsoft \ Boot \ Bootmgfw.efi
3 Загрузчик ОС Windows % SystemRoot% \ system32 \ winload.exe % SystemRoot% \ system32 \ Winload.efi
4 Ядро ОС Windows NT % SystemRoot% \ system32 \ ntoskrnl.exe

1] PreBoot: POST или Power-On Self-Test загружает настройки прошивки. Он проверяет наличие действительной дисковой системы и пригодна ли система для перехода к следующему этапу. Если на компьютере установлена ​​допустимая MBR, то есть основная загрузочная запись, процесс загрузки продвигается дальше и загружает диспетчер загрузки Windows.

3] Загрузчик ОС Windows: Как и его имя, WinLoad.exe загружает важные драйверы для запуска ядра Windows. Ядро использует драйверы для связи с оборудованием и выполнения остальных действий, необходимых для продолжения процесса загрузки.

Когда вы запускаете Windows 10 на компьютере, который поддерживает Unified Extensible Firmware Interface (UEFI), Trusted Boot защищает ваш компьютер с момента его включения. Когда компьютер запускается, он сначала находит загрузчик операционной системы. Компьютеры без защищенной загрузки просто запускают любой загрузчик на жестком диске ПК. Когда компьютер, оснащенный UEFI, запускается, он сначала проверяет, что прошивка имеет цифровую подпись. Если включена безопасная загрузка, микропрограмма проверяет цифровую подпись загрузчика, чтобы убедиться, что она не повреждена. Вы можете прочитать больше о том, как защитить процесс загрузки Windows 10.

Помните, что многое происходит даже после входа в систему, но это все сценарии процесса после загрузки. Обратите внимание, что процесс загрузки Windows 10 намного больше, чем мы объяснили здесь – мы только объяснили основы!

Источник

Ошибки при загрузке Windows: Разбираемся с самыми частыми

Ошибки при загрузке Windows

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

Давайте разберемся, что обозначают ошибки, и как от них избавляться.

Загрузка системы

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

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

Начальный набор инструкций, выполняемых процессором, называют процедурой POST (Power-On Self Test- самопроверка при подключении к питанию).

С ее помощью проводятся следующие действия:

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

Теперь в загрузку вступают программы, записанные на носителе.

Причины ошибок загрузки

Перечислим основные проблемы загрузки:

Нужно выяснить причину сбоя и устранить ее. А чтобы проблемы больше не возникали снова – не повторяйте эти ошибки.

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

Что мешает загрузке Windows?

Наиболее распространенные ошибки Windows

Дело в том, что ошибка при загрузке Виндовс изменяется в зависимости от версии ОС.

Так, у разных версий наиболее распространенными будут разные ошибки. Именно поэтому нужно искать решение проблемы для своей операционки.

Windows XP

В нынешнее время данная версия Виндовс практически перестала существовать.

Однако некоторые компьютеры (часто это именно старые модели) всё ещё работают на этой ОС.

И хотя люди, которые давно знают ХР привыкли к её ошибкам, однако стоит разобраться с самыми распространенными из них.

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

Это наиболее распространенная проблема при загрузке Виндовс ХР. Обычно она возникает при попытке переустановить ОС.

При появлении данной ошибки система выдает одну из двух надписей:

Устранение данных ошибок возможно посредством выполнения данных пунктов:

После этого система перезапустится, и ошибка будет устранена.

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

NTLDR is missing

Данная проблема также довольно распространена. При её появлении, зачастую, пользователи просто форматируют диск, что приводит не только к устранению ошибки, но и потере всей памяти.

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

Данная ошибка представляет собой черный экран с надписью NTLDR is missing.

Порой для устранения проблемы достаточно нажать популярное сочетание клавиш Ctrl+Alt+Delete (об этом написано в экране ошибки).

Данная комбинация должна перезапустить систему, но помогает это далеко не всегда.

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

Решение ошибки «NTLDR is missing»

HAL.dll

При данной проблеме, во время загрузки ОС, пользователь наблюдает надпись на подобие «Не удается запустить HAL.dll» или «Файл не найден или поврежден».

При её появлении первым пришедшим на ум решением становится переустановка Виндовс. Однако можно справится и без столь кардинальных мер.

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

Проблема возникает по той причине, что ХР, как наиболее старая версия, подвержена различным ошибкам наиболее часто.

Как таковых причин возникновения ошибки может быть множество. Однако её всё же можно устранить при помощи ряда действий в BIOS’е не переустанавливая при этом операционную систему.

Тем не менее стоит понимать, что порой справится поможет только радикальный способ.

Решение ошибки «HAL.dll»

Windows 7

Несмотря на новые версии Виндовса, семерка всё же остается наиболее популярной. Это скорее дело привычки.

Многие считают данную версию наиболее удобной и усредненной между ХР и той же восьмеркой (в принципе так оно и есть)

. Именно потому что версия наиболее популярная, то и ошибка загрузки Виндовс 7 является частой проблемой.

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

Загрузчик системы

Как и у Виндовс ХР, у семерки случаются проблемы с загрузчиком. Причина проблемы та же что и у предыдущей версии.

Однако восстановить загрузчик семерки можно как автоматически, так и вручную.

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

Загрузчик системы Windows 7

0x80300024

Данная ошибка возникает при установке ОС. Происходит это из-за неопытности многих пользователе, которые при переустановке забывают отформатировать один из разделов жесткого диска.

Обычно эта ошибка указывает на недостаток места для установки системы.

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

«ERROR»

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

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

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

В командной строке необходимо вписать «bootrec /fixboot». После этого проблема будет устранена.

Startup Repair Offline

Дословно это проблема означает «восстановление запуска не в сети», порой устраняется после перезагрузки.

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

Обычно это решается несколькими способами:

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

Решение проблемы Startup Repair Offline

0x0000007b

Наиболее пугающая для пользователей ошибка – «синий экран смерти». Зачастую это означает, что система «легла» и помогут ей только кардинальные меры.

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

Основных причин проблемы может быть несколько:

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

Windows 10

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

И, хотя разработчики старались максимально исключить изъяны, однако это компьютер, а значит предусмотреть и исключить в се проблемы просто невозможно.

Именно поэтому при появлении ошибок придется справятся своими силами (или если уж совсем всё плохо – при помощи специалистов).

Inaccessible Boot Device

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

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

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

Ошибка «Inaccessible Boot Device»

CRITICAL_PROCESS_DIED

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

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

Operating system wasn’t found

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

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

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

Ошибка «Operating system wasn’t found»

Выводы

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

Однако следует знать, что не все ошибки решаются легко (например, при помощи перезагрузки). Любая ошибка оповещает пользователя о том, что произошел какой-либо сбой.

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

Некоторые из ошибок сообщают о неполадках в системе ОС, другие сигнализируют о том, что проблемы кроются гораздо глубже – в железе.

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

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

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

Решение восстановление системы при запуске windows

Ошибки при загрузке Windows: Разбираемся с самыми частыми

Понравилась статья? Подпишитесь на канал, чтобы быть в курсе самых интересных материалов

Источник

Операционные системы и программное обеспечение