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

Давным-давно, когда я был маленьким работал в институтской лаборатории на большом компьютере СМ-3 (что-то вроде знаменитой PDP-11), bootstrapping (загрузка) ЭВМ выглядела так. В фотосчитыватель заправлялась коротенькая бумажная перфолента с пробитой на ней программой начальной загрузки, запускался процесс считывания, а дальше … как повезет.

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

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

Основные определения и этапы загрузки операционной системы

Включение компьютера, POST, BootMonitor

Начальный этап загрузки операционной системы после включения компьютера начинается в BIOS (Basic Input/Output System — базовая система ввода-вывода). В настройках BIOS мы указываем загрузочное устройство, или ряд загрузочных устройств в порядке их приоритета. Возможны различные варианты загрузки и их комбинации: с жесткого диска, CD/DVD – диска, USB-flash и другие.

Сразу после прохождения POST (Power-On Self-Test — самотестирование после включения) BIOS компьютера начнет поочередно перебирать указанные загрузочные устройства до тех пор, пока на одном из них не найдет подходящую специальную запись, в которой содержится информация о дальнейших действиях.

Загрузчик 1-го уровня. Master Boot Record

Master Boot Record — главная загрузочная запись, расположена в первых физических секторах загрузочных устройств хранения. Она содержит таблицу разделов (Partition Table) и исполняемый код.

Главной задачей программы, записанной в MBR, является поиск активного системного раздела диска и передача управления его загрузочному сектору. Таким образом, эту стадию можно назвать подготовительной, в силу того, что непосредственно загрузки самой ОС еще не происходит.

Системным принято называть раздел диска (устройства хранения) на котором расположены файлы операционной системы, отвечающие за процесс загрузки ОС (сама операционная система может размещаться в другом разделе). В принципе, системных разделов может быть несколько, поэтому один из них отмечается как активный. Именно его ищет программа, загруженная с MBR.

Загрузчик 2-го уровня. Partition Boot Sector

Следующим этапом загрузки компьютера является передача управления исполняемому коду, записанному в PBS (Partition Boot Sector — загрузочный сектор активного раздела). PBS расположен в первом секторе (секторах) соответствующего раздела диска. В коде PBS прописано имя файла загрузчика операционной системы, которому и передается управление на этом этапе.

Начальный этап загрузки операционной системы. Менеджер загрузки ОС

Первоначально в Linux загрузчиком являлся LILO (Linux Loader). В силу имевшихся в нем недостатков, главным из которых была неспособность понимать используемые в Linux файловые системы, позднее начал использоваться загрузчик GRUB (GRand Unified Bootloader) в котором недостатки LILO были исправлены.

Если речь идет о версиях Windows до Vista, например, Windows XP, то будет загружен Ntldr. Он, в свою очередь, считывает информацию из текстового файла Boot.ini, в котором записана информация об установленных операционных системах.

Загрузка ядра операционной системы

Завершающим этапом загрузки операционной системы является загрузка ядра ОС и передача ему управления.

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

Меня попросили помочь одному человеку купить и привести в порядок компьютер для дома. Товарищ этот на тот момент времени только-только вышел на пенсию, а до этого работал в должности начальника и компьютер видел, по большей части, издалека, на столе у своей секретарши. После выхода на пенсию у него появилось время и желание компьютер освоить. Ну что, по-моему, замечательно. Компьютер мы ему подобрали недорогой, но добротный и с хорошим, по тем временам, монитором. Я поставил и настроил кое-какие программы, показал как ими пользоваться. Господин обзавелся книжкой из серии «Что-то там для чайников » и мы расстались абсолютно довольные друг другом.

Примерно через неделю мой подопечный позвонил мне по телефону и чуть не плача сообщил, что все пропало и компьютер больше не работает. Благо, запираться он не стал и честно рассказал, как было дело. А дело было так. Товарищ полез исследовать содержимое своего компьютера и нашел в корне диска С:\ несколько подозрительных и «ненужных», на его взгляд, файлов. Он решил освободить место и файлики эти попросту удалил. Думаю, что все уже догадались, что это были boot.ini, ntldr, ntdetect и др. Поправить ситуацию сложности не представляло, разве что пришлось ехать к нему еще раз.

К слову сказать, для того, чтобы получить проблемы с загрузкой Windows XP, можно было и ничего не стирать, а слегка «подправить», например, boot.ini.

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

Особенности загрузки операционных систем Windows Vista / 7 / 8

В Windows Vista или Windows 7 / 8 диспетчер загрузки называется Bootmgr. Он читает список установленных операционных систем не из простого текстового файла, коим является boot.ini, а из системного хранилища BCD (Boot Configuration Data), доступ к которому осуществляется посредством специальной утилиты bcdedit.exe .

Но это еще не все. Откроем “Управление компьютером” –> “Управление дисками” >

Процесс стандартной инсталляции операционной системы Windows Vista / 7 / 8 создает в начале диска дополнительный раздел «Зарезервировано системой». Ему не присваивается буква диска, благодаря чему, если не сделать дополнительных шагов, и сам раздел и его содержимое будут скрыты от пользователя. Этот основной раздел имеет статус «Системный» и «Активный» и, следовательно, удалить его тоже нельзя.

В Windows 7 размер такого раздела составляет 100 МБ, из которых занято около 30 МБ, в Windows 8 – уже 350 МБ, причем занято из них 105 МБ. Такая разница объясняется тем, что в Windows 8 на этот раздел перенесена папка “Recovery”.

Посмотрим содержимое раздела «Зарезервировано системой». Для этого назначим ему букву диска, например, «W» в “Управление дисками”. Дополнительно откроем «Панель управления» –> «Параметры папок» и на вкладке «Вид» снимем галку с «Скрывать защищенные системные файлы» и поставим отметку на «Показывать скрытые файлы, папки и диски».

Если в системе установлен файловый менеджер FAR Manager, то для просмотра можно воспользоваться им и не заниматься настройкой видимости скрытых файлов.

Так выглядит содержимое раздела «Зарезервировано системой» в Windows 8 >

Как и ожидалось, в корне раздела мы видим загрузчик Bootmgr.

А так выглядит часть содержимого папки «Boot» >

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

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

Ну что же, запомнить названия разделов диска очень легко по принципу «всё наоборот» — на системном нет системы (операционной), но расположен загрузчик третьего уровня, на загрузочном как раз отсутствует загрузчик, но находится сама система. Естественно, эта «запоминалка» работает только тогда, когда есть несколько разделов. Если раздел один, то он может быть сразу системным, активным и загрузочным.

Главной задачей загрузчика 3-го уровня, в роли которого выступает, в зависимости от типа ОС, Bootmgr, Ntldr или GRUB, является чтение с загрузочного диска и загрузка ядра операционной системы. Кроме того, в случае множественной загрузки, когда на компьютере установлено несколько операционных систем, загрузчик 3-го уровня позволяет выбирать нужную при каждом запуске компьютера.

Классической ошибкой, которой Microsoft посвятила , является установка Windows XP после Windows Vista / 7 /8. Установщик Windows XP помечает свой раздел как активный, после чего, во время загрузки, MBR передает управление PBS этого раздела а он, в свою очередь, — Ntldr. Загрузчик Windows XP ничего не знает о более поздних версиях операционных систем Windows и их загрузка становится невозможной. Лечится достаточно легко, но неискушенного пользователя такая ситуация может поставить в тупик.

Добавить к этому практически нечего и можно переходить непосредственно к редактированию загрузочного меню. Начнем с .

9 комментариев

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

  1. Подскажите пожалуйста как именно лечить?:
    «Загрузчик Windows XP ничего не знает о более поздних версиях операционных систем Windows и их загрузка становится невозможной. Лечится достаточно легко, но неискушенного пользователя такая ситуация может поставить в тупик.»

    Поставил ХР после Vista на ноутбук — в итоге запуск системи доходит до начала загрузки ХР и все по новой перезагружаєтса, а если отключить (на время загрузки ОС) адаптер питания то все загружается нормально. Если загружать в безопасном режиме, то адаптер отключать не надо. Что ето может бить и как с етим бороться?

    ПОЖАЛУЙСТА ОТПИШИТЕ. ЗАРАНИЕ СПАСИБО. ИЗВИНИТЕ ЗА «ЛОМАННИЙ» РУССКИЙ.

    • По поводу влияния адаптера питания на загрузку ХР ничего не скажу — конкретных идей нет. По поводу восстановления загрузки Vista, если это актуально, то в конце поста есть ссылка на статью суппорта Microsoft (919529), посвященную непосредственно этой теме. Для восстановления потребуется установочный диск Vista. В командной строке с правами администратора нужно выполнить:
      Х:\boot\bootsect.exe /nt60 all
      где X: — буква оптического привода.
      А вот загрузку XP нужно будет добавлять вручную с помощью редактора . Набор команд будет таким:
      Bcdedit /create {ntldr} /d "Microsoft Windows XP"
      если данная команда завершиться неудачей, то:
      Bcdedit /set {ntldr} description "Microsoft Windows XP"
      далее:
      bcdedit /set {ntldr} device partition=X:
      Х: - буква диска раздела, на котором находятся файлы загрузчика XP, и путь к нему:
      bcdedit /set {ntldr} path \ntldr
      bcdedit /displayorder {ntldr} /addlast

    У меня был ноутбук, при загрузке и перезагрузке сразу включался виндовс,а сейчас я приобрел стационарный компьютер и загрузка идет в три этапа. Как сделать так,чтобы избавиться от этих этапов. Извините за безграмотное обозначение технических терминов.

    • Юрий! Боюсь, что тех сведений, которые Вы сообщили, явно недостаточно для каких-либо рекомендация. Какая Windows и о каких этапах идет речь? Уточните.

    Доброго здоровья, Александр.
    Как понять, предотвратить, а если повторится — правильно выйти из вот такой ситуации.
    Ноутбук. Установлена Windows-7. После включения и ввода пароля выдал «missing operating system» — то бишь «отсутствует операционная система». Выключения с повторным включением дали тот же результат. Запуститься удалось только вынув и спустя некоторое время вставив аккумулятор.
    Накануне, правда, имело место быть некорректное выключение: предварительно не были отключены флешка и модем. Раньше такая забывчивость тоже случалась, но подобного эффекта не было.
    Буду признателен за доступный старому «чайнику» ответ (мне лет на десять больше, чем господину в забавном случае, но познакомился с КОМПом примерно в том же возрасте).

    • Владимир, здравствуйте. С наступающими праздниками и всех благ.
      В данной ситуации Вы сделали все правильно — сбросили «залипший» глюк.
      Как поется в песенке: «Одна дождинка — еще не дождь. Одна снежинка — еще не снег». Возможно, что ничего подобного больше и не произойдет. Вот если с запуском начнутся регулярные проблемы, тогда надо будет разбираться. А вообще, Windows 7 и выше достаточно устойчивы к нештатным выключениям.
      Что делать? Вы сами ответили на свой вопрос — стараться штатно отключать устройства. И если есть возможность подключить по USB внешний диск, то я обязательно сделал бы (на самом деле делаю достаточно регулярно) бекап системы, например с помощью .

BIOS (Base Input/Output System) представляет собой специальное программное обеспечение , которое встроено в микроконтроллер на материнской плате, переводится с английского языка как основная система ввода-вывода. Данный программный код обеспечивает взаимодействие операционной системы с оборудованием, позволяет совместить аппаратные различия в компьютерном оборудовании.

Какова роль BIOS?

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

Без данного ПО невозможна работа компьютера. Также операционная система не запустится, если конфигурация БИОС настроена неправильно, или сбились настройки в результате системных неполадок. Системные настройки BIOS позволяют выполнить:

Как попасть в BIOS?

Информацию, как попасть в БИОС, можно считать в процессе загрузки компьютера. Чаще всего выдается системой запись вида: Press DEL to enter SETUP. В этом случает для входа в систему необходимо нажать клавишу DELETE в процессе загрузки компьютера. В некоторых случаях для того чтобы войти в меню BIOS, необходимо нажать определенные сочетания клавиш. Чаще всего используются F1, F2, F10, ESC или сочетания Ctrl+Alt+Ins, Ctrl+Alt+Esc.

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

Меню настроек BIOS

Наиболее распространены системы AMI BIOS и Award BIOS . Версия AMI BIOS имеет три раздела:

  • Main позволяет менять настройки системного времени. Даты, приоритет съемных носителей, содержит информацию о системе;
  • Advanced включает параметры работы центрального процессора и параметры конфигурации встроенной аппаратуры, настройки USB-портов и питания;
  • Boot содержит параметры загрузки, в том числе и настройки безопасности в процессе загрузки.

Меню Award BIOS имеет более сложную конфигурацию. Система содержит такие разделы:

  • Standart CMOS Features позволяет настраивать системную дату и время, тип используемого дисковода, а также характеристики имеющихся накопителей.
  • Advanced BIOS Features включает множество опций, в частности, порядок опроса накопителей при загрузке, включение/отключение многопоточности процессора, параметры взаимодействия ядер, информацию о состоянии жестких дисков . Данный раздел позволяет оптимизировать работу оперативной памяти .
  • Advanced Chipset Features содержит важные настройки работы встроенного оборудования: центрального процессора, оперативной памяти и системных шин передачи данных. Изменять данные настройки самостоятельно не рекомендуется.
  • Integrated Peripherals отвечает за настройку компонентов, встроенных в материнскую плату (USB-контроллер, видеокарта и звуковая карта, сетевой контроллер и различные порты).

В общем виде меню BIOS включает такие разделы (возможные названия блоков указаны в скобках):

  • общие параметры (STANDARD CMOS SETUP или MAIN);
  • свойства BIOS (ADVANCED или BIOS FEATURES SETUP);
  • свойства чипсетов (CHIPSET FEATURES SETUP или Chip Configuration);
  • свойства интегрированного оборудования (INTEGRATED PERIPHERALS или I/O Devices Configuration);
  • свойства слотов PCI (PNP/PCI CONFIGURATION или PCI CONFIGURATION);
  • управление питанием (POWER MANAGMENT SETUP или POWER);
  • пароли системы (SUPERVISOR PASSWORD или USER PASSWO RD);
  • сохранение и восстановление настроек (SAVE SETUP, LOAD SETUP DEFAULTS или LOAD BIOS DEFAULT);
  • выход из конфигурации (EXIT).

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

Многие начинающие пользователи спрашивают у поисковика – как настроить БИОС для того, что бы загрузиться с компакт диска. А так же, если необходимо загрузиться с флешки. В первую очередь загрузка из под BIOS требуется в тех случаях, когда вам нужно и сделать это можно только переустановкой операционной системы (Windows). А так же, если у вас есть загрузочный образ с утилитами, например для разделения жесткого диска на разделы и тут, естественно, тоже не обойтись без загрузки с диска или флешки через БИОС . В общем, поводов для загрузки с диска очень и очень много так, что начну уже рассказ о настройке BIOS.

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

Еще одной ключевой особенностью UEFI является возможность работы с жесткими дисками огромных объемов, размеченных по стандарту GPT (Guid Partition Table). Последний не поддерживается ни одной модификацией BIOS, так как имеет 64-битные адреса секторов.

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


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

Несмотря на всю прогрессивность UEFI, все же существует ряд ограничений, сдерживающих активное развитие и распространение этого загрузчика. Дело в том, что для реализации всех возможностей нового загрузочного интерфейса требуется полноценная его поддержка со стороны операционных систем. На сегодняшний день в полной мере использовать возможности UEFI позволяет только Windows 8. Ограниченную поддержку нового интерфейса имеют 64-разрядные версии Windows 7, Vista и Linux на ядре 3.2 и выше. Так же возможности UEFI используются в загрузочном менеджере BootCamp компанией Apple в собственных системах Mac OS X.

Ну а как же происходит загрузка компьютера с UEFI, если на нем используются неподдерживаемая операционная система (WindowsXP, 32-битная Windows 7) или файловая разметка (MBR)? Для таких случаев в новый загрузочный интерфейс встроен модуль поддержки совместимости (Compatibility Support Module), по сути, представляющий из себя традиционную BIOS. Именно поэтому, можно видеть, как многие современные компьютеры, оснащенные системными платами с UEFI, загружается традиционным способом в режиме эмуляции BIOS. Чаше всего это происходит потому, что их владельцы продолжают использовать разделы HDD с традиционной MBR и не хотят переходить к разметке GPT.

Заключение

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

Но при этом говорить о полном отказе в ближайшее время от базовой системы ввода/вывода пока преждевременно. В первую очередь нужно вспомнить, что до сих пор большинство компьютеров находятся под управлением WindowsXP и 32-битной Windows 7, которые не поддерживаются UEFI. Да и жесткие диски, размеченные по стандарту GPT в большинстве своем можно встретить разве что в новых моделях ноутбуков на базе Windows 8.

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

К сожалению, иногда можно встретить достаточно серьезные проблемы с включением компьютеров и стартом операционных систем, хотя до определенного момента беды ничто не предвещало. Бывает так, что но чаще всего компьютер включается, но не запускается операционная система. Именно о таких ситуациях далее и пойдет речь. Рассмотрим вопросы, связанные с тем, почему не загружается компьютер, и что делать в таких ситуациях. Тут есть несколько универсальных решений.

Компьютер включается, но не запускается операционная система: причины

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

Тут есть три варианта:

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

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

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

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

Компьютер включается, но не загружается: что делать в первую очередь?

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

Как правило, практически все сегодня используемые модификации Windows обычно при рестарте автоматически активируют запуск Если этого не произошло, перед стартом системы придется использовать клавишу F8 для вызова дополнительного загрузочного меню (в Windows 10 используется другой метод).

Компьютер включается, но не запускается операционная система? Расстраиваться не стоит. Здесь в самом простом варианте можно выбрать строку загрузки последней работоспособной конфигурации. Если с системными компонентами все в порядке, система загрузится без проблем. Если это не поможет, придется использовать раздел устранения неполадок, а иногда успехом может увенчаться даже попытка загрузки в безопасном режиме.

Возможное вирусное заражение

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

Среди всего многообразия антивирусного ПО отдельно стоит отметить дисковые утилиты, которые стартуют непосредственно с оптического носителя или USB-устройства, имеют собственные загрузочные записи и даже графический интерфейс наподобие Windows. Одним из самых мощных средств можно назвать Kaspersky Rescue Disk. Его использование может гарантировать почти стопроцентное обнаружение вирусов, даже скрывающихся в оперативной памяти.

Конфликты оперативной памяти

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

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

Если же систему удастся хоть как-нибудь загрузить, используя тот же безопасный режим, «оперативку» сразу же следует проверить утилитой Memtest86+, которая и поможет выявить истинную причину неполадок.

Система не видит жесткий диск

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

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

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

Иногда помогает и изменение настроек первичной системы ввода/вывода BIOS. Здесь нужно найти раздел, связанный с настройкой винчестера, и в параметрах конфигурации SATA деактивировать использование режима AHCI.

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

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

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

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

Проблемы с загрузчиком BOOTMGR

Считается, что наиболее распространенной проблемой, когда компьютер включается, но не запускается операционная система, является повреждение загрузчика Windows (Boot Manager). В этом случае система как раз и пишет, что отсутствует системный раздел (она попросту не видит винчестер).

Исправить эту проблему можно при условии старта с загрузочного диска и перехода к командной строке в консоли восстановления, для вызова которой следует нажать клавишу «R». Далее нужно сначала использовать команду проверки диска, а затем исправить (восстановить) загрузочные записи.

Вся последовательность выглядит следующим образом:

  • chkdsk c: /f /r;
  • Bootrec.exe /FixMbr;
  • Bootrec.exe /FixBoot.

После ввода команд знаки препинания не ставятся, а нажимается клавиша ввода. Если по каким-то причинам выполнение этих команд положительного эффекта не возымело, как вариант можно использовать полную перезапись загрузочного сектора, которая производится командой Bootrec.exe /RebuildBcd. Если жесткий диск не имеет физических повреждений, это должно сработать, как говорится, на все сто.

Можно применять и некоторые сторонние утилиты. Наиболее подходящей программой выглядит средство под названием MbrFix, которое входит в состав загрузочного комплекта Hiren’s Boot CD. После ее вызова, например, для Windows 7 при условии того, что именно эта система установлена, причем только на одном диске (разбиение на разделы отсутствует), следует прописать следующее:

  • MbrFix.exe /drive 0 fixmbr /win7.

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

Проблемы с доступом к файлу NTLDR

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

Однако если результат достигнут не будет, нужно будет скопировать оригинальный файл в корень системного раздела. Например, если это диск «C», а дисковод - «E», команда будет иметь следующий вид:

  • E:\i386> copy ntldr C:\ (после копирования система загрузится без проблем).

Поврежденный или отсутствующий файл HAL.dll

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

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

  • C:\windows\system32\restore\rstrui.exe (далее нажимается клавиша Enter и производится рестарт).

Вместо итога

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

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

Как это работает

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

Решением данного парадокса является использование нескольких микропрограмм размещаемых в одной или нескольких микросхемах, BIOS (Basic Input/Output System). Процесс загрузки начинается с автоматического выполнения процессором команд, расположенных в постоянной (или перезаписываемой) памяти (EEPROM или Flash ROM ), начиная с заданного адреса. Эти микропрограммы не обладает всей функциональностью операционной системы, но её (функциональности) достаточно для того, чтобычтобы выполнить последовательную загрузку других программ, которые выполняются друг за другом до тех пор, пока последняя из них не загрузит операционную систему.

Последовательность основных блоков функций BIOS в PC -совместимых компьютерах:

1. - POST - самотестирование при включении питания процессора, памяти, набора микросхем системной логики, видеоадаптера, контроллера дисков, клавиатуры, мыши и других контроллеров и устройств;

2. - Setup BIOS (программа установки параметров BIOS) - конфигурирование параметров системы. Она может быть запущена во время выполнения процедуры POST при нажатии определенной комбинации клавиш. Если она не была вызвана пользователем, загружаются параметры установленные и сохраненные в постоянной памяти во время последнего конфигурирования Setup BIOS .

3. - Загрузчик операционной системы - подпрограмма, выполняющая поиск действующего основного загрузочного сектора на дисковом устройстве.

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

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

Зачем это нужно?

Это нужно для:

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

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

К ним относятся:

  • устройства ввода (клавиатура, мышь),
  • базовое устройство вывода (дисплей),
  • устройство, с которого будет произведена загрузка ОС - дисковод, жесткий диск, CD-ROM, флэш-диск, SCSI-устройство, сетевая карта (при загрузке по сети)

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

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

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

Последовательность загрузки стандартного IBM-совместимого персонального компьютера

После включения персонального компьютера его процессор еще не начинает работу.

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

После этого чипсет формирует сигнал сброса центрального процессора, по которому очищаются регистры процессора, и он запускается.

Первая выполняемая команда расположена по адресу FFFF0h и принадлежит пространству адресов BIOS. Данная команда просто передает управление программе инициализации BIOS и выполняет следующую команду (микропрограмму BIOS ).

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

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

Системная память сконфигурирована так, что первая команда, которую считает процессор после сброса, будет находиться в микросхеме BIOS.

Последовательно выбирая команды из BIOS, процессор начнет выполнять процедуру самотестирования, или POST.

Процедура POST

Процедура самотестирования POST состоит из нескольких этапов.

  • Первоначальная инициализация основных системных компонентов;
  • Детектирование оперативной памяти, копирование кода BIOS в оперативную память и проверка контрольных сумм BIOS;
  • Первоначальная настройка чипсета;
  • Поиск и инициализация видеоадаптера. Современные видеоадаптеры имеют собственную BIOS, которую системная BIOS пытается обнаружить в специально отведенном сегменте адресов. В ходе инициализации видеоадаптера на экране появляется первое изображение, сформированное с помощью BIOS видео адаптера ;
  • Проверка контрольной суммы CMOS и состояния батарейки. Если контрольная сумма CMOS ошибочна, будут загружены значения по умолчанию ;
  • Тестирование процессора и оперативной памяти. Результаты тестирования обычно выводятся на экран ;
  • Подключение клавиатуры, тестирование портов ввода/вывода и других устройств.
  • Инициализация дисковых накопителей. Сведения об обнаруженных устройствах обычно выводятся на экран ;
  • Распределение ресурсов между устройствами и вывод таблицы с обнаруженными устройствами и назначенными для них ресурсами;
  • Поиск и инициализация устройств, имеющих собственную BIOS;
  • Вызов программного прерывания BIOS INT 19h, который ищет загрузочный сектор на устройствах, указанных в списке загрузки.

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

Что такое POST-коды?

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

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

Основная задача BIOS на данном этапе - проверка исправности и инициализация основных аппаратных компонентов компьютера. Вначале конфигурируются внутренние регистры чипсета и процессора, проверяется целостность кода BIOS. Затем происходит определение типа и размера оперативной памяти, поиск и инициализация видеокарты (интегрированной в чипсет или внешней). Следом конфигурируются порты ввода-вывода, контроллер дисковода, IDE/SATA-контроллер и подключенные к нему накопители. И, наконец, осуществляется поиск и инициализация интегрированных на материнскую плату дополнительных контроллеров и установленных карт расширения. Всего получается около ста промежуточных шагов, после чего управление передается загрузчику BOOTStrap, отвечающему за старт операционной системы.

Каждый из шагов POST-тестов имеет свой уникальный номер, называемый POST-кодом. Перед началом выполнения очередной процедуры ее POST-код записывается в специальный порт, именуемый Manufacturing Test Port. При успешной инициализации устройства в Manufacturing Test Port записывается POST-код следующей процедуры и так далее, до полного прохождения всех тестов. Если сконфигурировать устройство не удалось, дальнейшее выполнение POST-тестов прекращается, а в Manufacturing Test Port остается POST-код процедуры, вызывавшей сбой. Прочитав его можно однозначно идентифицировать проблемное устройство.

Имейте в виду, после перезагрузки компьютера средствами операционной системы («мягкая» или «горячая» перезагрузка) или при выходе из энергосберегающего режима обычно выполняются не все шаги по тестированию и конфигурированию аппаратных компонентов, а только необходимый минимум - так быстрее. При поиске неисправности необходимо всегда выполнять «жесткую» («холодную») перезагрузку - клавишей RESET или отключением питания компьютера. Только так гарантируется, что все этапы инициализации будут выполнены в полном объеме.

Award BIOS 6.0: вариант полной загрузки

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

POST-код Описание процедуры
CF Определяется тип процессора и тестируется чтение/запись CMOS
C0 Предварительно инициализируется чипсет и L1-, L2-кэш, программируется контроллер прерываний, DMA, таймер
C1 Детектируется тип и объем оперативной памяти
C3 Код BIOS распаковывается во временную область оперативной памяти
Проверяются контрольные суммы BIOS
C5 Код BIOS копируется в теневую память и управление передается модулю Boot Block
01 Модуль XGROUP распаковывается по физическому адресу 1000:0000h
02 Инициализация процессора. Устанавливаются регистры CR и MSR
03 Определяются ресурсы ввода/вывода (Super I/O)
05 Очищается экран и флаг состояния CMOS
06 Проверяется сопроцессор
07 Определяется и тестируется контроллер клавиатуры
08 Определяется интерфейс клавиатуры
09 Инициализация контроллера Serial ATA
0A Определяется клавиатура и мышь, которые подключены к портам PS/2
0B Устанавливаются ресурсы звукового контроллера AC97
OE Тестируется сегмент памяти F000h
10 Определяется тип flash-памяти
12 Тестируется CMOS
14 Устанавливаются значения для регистров чипсета
16 Первично инициализируется тактовый генератор
18 Определяется тип процессора, его параметры и объемы кэша L1 и L2
1B Инициализируется таблица векторов прерываний
Проверяются контрольные суммы CMOS и напряжение питания аккумулятора
1D Определяется система управления питанием Power Management
1F Загружается матрица клавиатуры (для ноутбуков)
21 Инициализируется система Hardware Power Management (для ноутбуков)
23 Тестируется математический сопроцессор, дисковод, инициализация чипсета
24 Обновляется микрокод процессора. Создается карта распределения ресурсов устройств Plug and Play
25 Начальная инициализация PCI: перечисляются устройства, поиск адаптера VGA, запись VGA BIOS по адресу C000:0
26 Устанавливается тактовая частота по CMOS Setup. Отключается синхронизация неиспользуемых слотов DIMM и PCI. Инициализируется система мониторинга (H/W Monitor)
27 Разрешается прерывание INT 09h. Снова инициализируется контроллер клавиатуры
29 Программируются регистры MTRR, инициализируется APIC. Программируется контроллер IDE. Измеряется частота процессора. Вызывается расширение BIOS видеосистемы
2B Поиск BIOS видеоадаптера
2D Отображается заставка Award, информация о типе процессора и его скорости
33 Сбрасывается клавиатура
35 Тестируется первый канал DMA
37 Тестируется второй канал DMA
39 Тестируются страничные регистры DMA
3C Настраивается контроллер 8254 (таймер)
3E Проверка контроллера прерываний 8259
43 Проверяется контроллер прерываний
47 Тестируются шины ISA/EISA
49 Вычисляется объем оперативной памяти. Настраиваются регистры для процессора AMD K5
4E Программируются регистры MTRR для процессоров Syrix. Инициализируются кэш L2 и APIC
50 Определяется шина USB
52 Тестируется ОЗУ с отображением результатов. Очищается расширенная память
53 Если выполнена очистка CMOS, то сбрасывается пароль на вход в систему
55 Отображается количество процессоров (для многопроцессорных платформ)
57 Отображается логотип EPA. Начальная инициализация устройств ISA PnP
59 Определяется система защиты от вирусов
5B Вывод подсказки для запуска обновления BIOS с дискеты
5D Запускается контроллер Super I/O и интегрированный аудиоконтроллер
60 Вход в CMOS Setup, если была нажата клавиша Delete
65 Инициализируется мышь PS/2
69 Включается кэш L2
6B Настраиваются регистры чипсета согласно BIOS Setup
6D Назначаются ресурсы для устройств ISA PnP и COM-порты для интегрированных устройств
6F Инициализируется и настраивается контроллер гибких дисков
75 Детектируются и устанавливаются IDE-устройства: жесткие диски, CD/DVD, LS-120, ZIP и др
76 Выводится информация об обнаруженных IDE-устройствах
77 Инициализируются последовательные и параллельные порты
7A Сбрасывается и готовится к работе математический сопроцессор
7C Определяется защита от несанкционированной записи на жесткие диски
7F При наличии ошибок выводится сообщение и ожидается нажатие клавиш Delete и F1
82 Выделяется память для управления питанием и заносятся изменения в таблицу ESCD. Убирается заставка с логотипом EPA. Запрашивается пароль, если нужен
83 Все данные сохраняются из временного стека в CMOS
84 Вывод на экран сообщения Initializing Plug and Play Cards
85 Завершается инициализация USB
87 Создаются таблицы SYSID в области DMI
89 Устанавливаются таблицы ACPI. Назначаются прерывания для PCI-устройств
8B Вызывается BIOS дополнительных ISA- или PCI-контроллеров, за исключением видеоадаптера
8D Устанавливаются параметры контроля четности ОЗУ по CMOS Setup. Инициализируется APM
8F IRQ 12 разрешается для «горячего» подключения мыши PS/2
94 Завершение инициализации чипсета. Отображение таблицы распределения ресурсов. Включение кэша L2. Установка режима перехода на летнее/зимнее время
95 Устанавливается частота автоповтора клавиатуры и состояния Num Lock
96 Для многопроцессорных систем настраиваются регистры (для процессоров Cyrix). Создается таблица ESCD. Устанавливается таймер DOS Time по показаниям часов RTC CMOS. Сохраняются разделы загрузочных устройств для использования встроенным антивирусом. Динамик оповещает об окончании POST. Создается таблица MSIRQ FF Выполняется прерывание BIOS INT 19h. Поиск загрузчика в первом секторе загрузочного устройства

Невыполнение или сбой выполнения любого шага в последовательности тестов приводит к остановке тестирования и выдаче POST - кода соответствующего данному шагу сбоя.

POST - коды других производителей можно найти на сайтах производителя Вашей системной платы или производителя DIOS или в Internet .

Чтение POST-кодов

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

Примером может быть Post карта PCI BM9222 .

Однако POST-карта это не широко распространенное средство. Скорее, это инструмент профессионального ремонтника компьютеров. Осознавая данный факт, производители материнских плат стали оснащать модели, рассчитанные на энтузиастов экспериментирующих с настройками и разгоном компьютера, встроенными индикаторами POST-кодов.

Примером может быть системная плата ECS H67H2-M , или модели X58 Extreme3, P55 Deluxe3 и 890GX Extreme3 .

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

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

Звуковые сигналы и сообщения об ошибках

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

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

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

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

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

Последовательность звуковых сигналов Описание ошибки
1 короткий Успешный POST
2 коротких Обнаружены незначительные ошибки. На экране монитора появляется предложение войти в программу CMOS Setup Utility и исправить ситуацию. Проверьте надежность крепления шлейфов в разъемах жесткого диска и материнской платы.
3 длинных Ошибка контроллера клавиатуры
1 короткий, 1 длинный Ошибка оперативной памяти (RAM)
1 длинный, 2 коротких Ошибка видеокарты
1 длинный, 3 коротких Ошибка при инициализации клавиатуры или Ошибка видеокарты
1 длинный, 9 коротких Ошибка при чтении из ПЗУ
Повторяющийся короткий Проблемы с блоком питания
Повторяющийся длинный Проблемы с ОЗУ
Повторяющаяся высокая-низкая частота Проблемы с CPU
Непрерывный Проблемы с блоком питания
Процедура Setup

Вход в BIOS Setup

Вход в BIOS Setup возможен только при включении компьютера и при успешном выполнении первоначального тестировании POST (слышен один короткий сигнал из системного динамика).

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

Обычно на экранной заставке при тестировании отображается надпись типа «Press DEL to enter Setup» - это означает, что для входа в BIOS Setup необходимо нажать клавишу DEL. Узнать, за которой клавишей закреплен вход в BIOS, можно из инструкции к материнской плате. Если инструкции нет, а экранная заставка не отображает подсказки, можно опробовать наиболее известные варианты комбинаций:

Delete
Esc
Ctrl + Shift + S или Ctrl + Alt + S
Ctrl + Alt + Esc
Ctrl + Alt + Delete

Безопасная работа с BIOS Setup

Работа с BIOS Setup связана с определенным риском, поскольку при неправильном или неосторожном изменении параметра система может функционировать нестабильно либо не функционировать вообще. Есть несколько простых советов, которые позволяют свести возможный риск к минимуму:

  • Экспериментировать с настройками BIOS Setup лучше всего на новом не заполненном информацией компьютере;
  • Старайтесь вообще не экспериментировать с BIOS на компьютерах, обрабатывающих или хранящих важную или объемную информацию. Перед настройкой системы с помощью BIOS позаботьтесь о резервном копировании важных данных. Главное в таких компьютерах - стабильность. Подвисший разогнанный компьютер через несколько часов обработки видео - это потеря времени, электроэнергии и результата работы. Неразогнанный справится с данной задачей гораздо эффективнее и сохранит ваши нервы;
  • Прежде, чем изменить важные параметры, всегда фиксируйте выставленное и измененное значение. Это позволит вам в случае нестабильной работы системы вернуть ее в рабочее состояние;
  • Не изменяйте значения параметров, которые вам неизвестны. Уточните их значение либо в инструкции к материнской плате, либо в сети Internet на ресурсе разработчика платы;
  • Не редактируйте за раз несколько важных не связанных между собой параметров. При нестабильной работе системы гораздо сложнее определить, какой параметр вызвал нестабильную работу;
  • Не разгоняйте компьютер без соответствующей изучения работы разгоняемой системы и подготовки;
  • Не используйте раздел Hard Disk Utility, который предназначен для низкоуровневого форматирования устаревших моделей жестких дисков и встречается в старых версиях BIOS, т.к. может вывести из строя современный жесткий диск;
  • Если после выставления параметров и выхода из BIOS компьютер перестает запускаться вообще, вернуть систему в рабочее состояние можно несколькими способами:
    • Если после перезагрузки компьютера возможно войти в BIOS Setup, нужно установить прежние значения отредактированных параметров. Некоторые версии BIOS сами осуществляют откат изменений за последнюю сессию.
    • Если сделанные изменения неизвестны, то лучше воспользоваться параметрами по умолчанию, использовав команду Load Fail-Safe Defaults. После этого придется настраивать систему на оптимальную работу.
    • Если компьютер вовсе не запускается из-за неправильных настроек BIOS, то в таком случае необходимо обнулить содержимое CMOS. При этом все значения включая дату/время будут изменены. Для этого сбросить неправильные установки, для этого просто переместить перемычку Flash Recovery (IBM )или джампер Clearing CMOS в положение "очистка CMOS ". В последнем случае нужно просто замкнуть перемычкой на несколько минут контакты соответствующего джампера.
    • В случае неудачных результатов настройки Setup BIOS , необходимо после сброса неудачной конфигурации с помощью джампера в процедуре Setup BIOS продублировать возвращение загрузку значений BIOS ru.Wikipedia.org << на главную>>

А вы никогда не задумывались над тем, что же происходит с операционной системой в тот момент, когда она рисует свой логотип и говорит «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, с которым можно поиграться в любом редакторе графов.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: