С какого файла запускается windows
В данной статье я поэтапно опишу процесс загрузки операционных систем Windows XP, Vista и Seven. Хотя этот вопрос рассматривается в сети достаточно часто, не затронуть его я не могу. Подобная информация бывает очень полезна при диагностировании неисправности и восстановления работоспособности “умершей” ОСи.
Сегодня мы рассмотрим:
- Старт BIOS;
- Загрузку Windows XP;
- Загрузку Windows Vista/7.
Загрузка BIOS
BIOS – это набор микропрограмм, записанных в ПЗУ компьютера и служащих для инициализации устройств на материнской плате, их проверки и настройки, загрузки операционной системы.
При включении компьютера BIOS проверяет “железо” и если есть проблемы, то информирует нас звуковыми сигналами (набор длинных и коротких гудков). Вот таблица звуковых сигналов BIOS:
Сигнал | Возможная неисправность |
---|---|
Отсутствует | Неисправен блок питания |
2к | Ошибка четности ОЗУ |
3к | Ошибка в первых 64 кБ ОЗУ |
4к | Неисправность системного таймера |
5к | Неисправен CPU |
6к | Неисправен контроллер клавиатуры |
7к | Неисправна системная плата |
8к | Неисправна память видеокарты |
9к | Ошибка контрольной суммы BIOS |
10к | Невозможна запись в CMOS |
11к | Неисправен кэш на системной плате |
1д+2к | Неисправна видеокарта |
1д+3к | Неисправна видеокарта |
1д+8к | Не подключен монитор |
Сигнал | Возможная неисправность |
---|---|
2к | Обычно – проблемы в CMOS Setup или с системной платой (мелкие ошибки) |
3д | Ошибка контроллера клавиатуры |
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, загрузчики и восстановление загрузки ОС
В этой статье я не планирую подробно рассказывать обо всех типах загрузчиков, но хочу свести воедино всю необходимую информацию, которую нужно знать для создания загрузочных дисков, флэшек, а также для восстановления загрузчиков.
Принципы загрузки операционных систем
При включении компьютера управление процессором получает BIOS, и если он настроен на загрузку (boot) с винчестера, то он подгружает в оперативную память компьютера первый сектор диска (MBR) и передает управление ему. Если у вас несколько жестких дисков, то каждый из них содержит свою MBR. В этом случае можно или менять порядок загрузки дисков в BIOS, или же прописать все операционные системы с разных дисков в один PBR загрузчик, об этом ниже.
Сразу оговоримся, что если у BIOS у вас включен режим загрузки UEFI, то структура разделов диска у вас должна быть не MBR, а GPT. GPT имеет не только другую структуру разделов, но и другую структуру загрузочной области. Там в первый сектор записывается «заглушка» для BIOS (Protective MBR), которая служит для того, чтобы старый Legacy BIOS мог загрузиться с GPT диска в режиме совместимости, если ОС была установлена на GPT (часто в BIOS его называют CSM – Compatibility Support Module). Однако, вы никогда не сможете загрузить ОС с MBR диска, если в BIOS выставлена загрузка в режиме UEFI.
При загрузке операционной системы, сначала считывается первый сектор с устройства загрузки, представляющий собой главную загрузочную запись (Master Boot Record — MBR). Стандартно, в качестве MBR выступает первый сектор загрузочного диска. MBR содержит список разделов, признак активного раздела (раздела, с которого будет выполняться загрузка ОС), некоторые служебные данные, а также программный код для считывания в память загрузочного сектора активного раздела (Partition Boot Record — PBR) и передачи ему управления.
Размер сектора на жестком диске — 512 байт. В секторе MBR хранятся данные, которые должны заканчиваться специальной сигнатурой. Этим словом называется специальная, строго установленная, последовательность из 2 байт с шестнадцатеричными значениями 55h AAh, которая записывается в последние 2 байта сектора и соответственно имеет смещение от начала сектора 1FEh. Если хотя бы один из двух последних байтов отличается по значению, считается, что первый сектор не является MBR и не содержит осмысленной информации. Если компьютер при старте, прочитав первый сектор, не обнаружит правильной сигнатуры, он не будет передавать управление располагающемуся там коду, даже если он правильный, а выдаст сообщение о том, что главная загрузочная запись не найдена.
Общая структура MBR может быть представлена следующей таблицей:
Смещение Длина Описание
000h 446 Код загрузчика
1BEh 64 Таблица разделов
1CEh 16 Раздел 2
1DEh 16 Раздел 3
1EEh 16 Раздел 4
1FEh 2 Сигнатура (55h AAh)
Длина указана в байтах.
Как видно, MBR может содержать информацию максимум о 4 разделах. Каждый 16-байтовый блок, содержащий информацию о разделах, в своем начале содержит признак активности раздела — т.е. признак того, что операционную систему следует загружать именно из этого раздела — может иметь значения 80h (раздел активен) и 00h (раздел не активен). Количество активных разделов должно быть не более одного.
Шестнадцатеричный однобайтовый код далее указывает на тип (ID) раздела. Например, 07h – раздел типа NTFS, 0Bh – FAT32, 17h – скрытый NTFS раздел, 27h – системный скрытый NTFS раздел для восстановления системы.
Типы MBR
Выше мы увидели, что в сектор MBR записывается код загрузчика. Что же это? Дело в том, что в MBR может быть записан как «стандартный» загрузчик, так и альтернативные загрузчики.
Существуют следующие распространенные типы MBR:
- Windows NT версий 5.х и 6.x, занимает 1 сектор. Может загружать ОС только с первичного активного раздела.
- GRUB4DOS версий 5.х и 6.x – занимает 16 секторов. Представляет собой файл gbldr.mbr. также его можно установить в качестве PBR прямо в раздел.
- GRUB 2.0 – универсальный загрузочный менеджер, занимает 63 сектора. Состоит из файлов boot.img и core.img. Может работать с любыми файловыми системами и загружать ОС как с первичных, так и логических разделов.
- PLoP – занимает 62 сектора и имеет продвинутый интерфейс. Позволяет организовать загрузку с CD/Floppy/USB без поддержки и обращения к BIOS.
- UltraISO USB-HDD – занимает 1 сектор и позволяет выполнять загрузку с внешних USB HDD дисков.
Конечно, с учетом многообразия ОС, существует масса других MBR, но они не так популярны.
Операционные системы дружат только с определёнными типа загрузчиков, однако это не значит, что их нельзя модифицировать для поддержки других ОС. Так, в Windows MBR можно добавить информацию о Linux разделе, но этого недостаточно, чтобы Linux стал грузиться. Для этого также потребуется редактировать и PBR. Однако линуксовый LDLINUX.SYS требует наличия своего микрокода в MBR, чтобы обращаться к нему в процессе загрузки, то есть если у вас загрузочная запись Windows NT MBR, а загрузчик GRUB, то такая схема работать не будет. Виндовсовые загрузчики могут обойтись без наличия соответствующего микрокода в MBR, поэтому они могут грузиться и через GRUB MBR.
Главное, что вам нужно понять, что MBR содержит микрокод, инструкции для процессора, а не файлы. PBR же указывает на загрузчик, который является файлом.
Разнообразие PBR
Мы с вами выяснили, что MBR передает управление на активный раздел с PBR. PBR (Partition Boot Record), так же называют volume boot record (VBR) – это микрокод в начальном секторе раздела диска (часто это сектор 63), который содержит информацию, какой же загрузчик искать.
Существуют следующие загрузчики:
Тип MBR — NT 5.x/6.x, 1 сектор
- io.sys для MS-DOS, Windows 95/98/МЕ
- ntldr для Windows 2000/XP/2003
- bootmgr для Windows Vista/7/8/8.1/10
Тип MBR — Grub4DOS, 18 секторов
Тип MBR — LILO/GRUB и др. линуксовые (к-во секторов зависит от версии и количества файлов)
- ldlinux.sys – основной базовый модуль
- syslinux.sys — для загрузки с FAT, FAT32, NTFS
- isolinux.bin — для загрузки с iso9660
- pxelinux — для загрузки по PXE
- extlinux для загрузки с ext2/ext3/ext4 или btrfs
Как я сказал выше, загрузчик является не загрузочной областью, а бинарным файлом.
- Файлы Windows NTLDR или BOOTMGR должны лежать в корне активного системного раздела и работают они по-разному. Об этом ниже.
- Файл GRLDR используется Grub4DOS также должен лежать в корне партиции, с котрой выполняется загрузка
- Syslinux – универсальный загрузчик, содержащий много модулей и поддерживающий загрузку с файловых систем ext2/¾, FAT, NTFS, CD/DVD дисков, по сети через PXE. Позволяет организовать текстовое или графическое загрузочное меню.
Чаще всего этот загрузчик используют для запуска Linux с файловых систем FAT/NTFS или же создания мультизагрузочных USB флэшек, позволяющих загружать как Linux-совместимые приложения под DOS, так и Windows PE.
Например, типичные пример создания мультизагрузочной флэшки – Multiboot USB 2k10, создаваемые уважаемыми conty9 & korsak7. Мультизагрузочный диск системного администратора с возможностью загрузки c CD/DVD, флешки, USB-HDD и обычного HDD и состоящий из нескольких Windows PE-сборок, а также DOS версий продуктов компании Acronis – например Acronis True Image (выполнены на Linux-ядре). Именно из-за этого смешанного зоопарка систем и приходится использовать загрузчик Syslinux (хотя можно и Grub4DOS).
В своем арсенале вам необходимо обязательно иметь утилиту BootICE. Уникальная в своём роде утилита для изменения или бэкапа/восстановления MBR (Master Boot Record) или PBR (Partition Boot Record). С BOOTICE, вы можете легко изменять тип MBR/PBR. Поддерживается загрузочные записи: Grub4DOS, SysLinux, PLoP, MS NT52/60… Например, с помощью этой утилиты, вы можете установить Grub4DOS вашим MBR или PBR, установить NTLDR или BOOTMGR к вашему PBR, установить SYSLINUX на PBR, и так далее.
Восстанавливаем загрузку Windows
Если Windows отказывается запускаться, а в «Центре управления Microsoft» решение проблемы слишком затянулось, CHIP готов прийти на помощь и рассказать, как простыми методами быстро восстановить загрузку операционной системы.
Если Windows отказывается запускаться, а в «Центре управления Microsoft» решение проблемы слишком затянулось, CHIP готов прийти на помощь и рассказать, как простыми методами быстро восстановить загрузку операционной системы. «Редмонд, у нас проблема! Не можем стартовать из-за отказа ОС!» — примерно так звучал бы запрос о помощи в псевдодокументальном фильме «Аполлон 18», если бы компьютер у астронавтов работал на базе Windows. К сожалению, проблемы с запуском ОС от Microsoft остаются довольно распространенными, несмотря на то что Windows 7 разработчики постарались сделать более надежной. Конечно, большую роль в этом играет и разнообразное оборудование для домашних систем, которое, к сожалению, имеет низкий коэффициент отказоустойчивости. Однако проблемы имеются и в самой архитектуре ОС.
Если астронавтам в фильме Хьюстон обещал помочь (правда, потом бросил), то мы предлагаем нашим читателям не отчаиваться и воспользоваться советами CHIP по решению проблем с загрузкой Windows и восстановлению ее работоспособности.
Без паники — пробуем «завести» систему
Если запустить операционную систему Windows вдруг оказывается невозможно, в первую очередь стоит пару раз перезагрузить компьютер, ведь проблема может носить разовый характер. Если это не помогло, то попробуйте на десять секунд отключить ПК от электросети. При этом нужно обесточить блок бесперебойного питания, если таковой подключен, а в случае с ноутбуком — извлечь батарею. Не помешает также временно отсоединить внешнее оборудование: мышь, клавиатуру, принтер, съемные диски, модули беспроводной связи и т. д. Если причина сбоя работы кроется именно во внешних устройствах, поочередное подключение каждого из них поможет вычислить виновника. К сожалению, далеко не всегда проблему можно решить простейшими манипуляциями, а значит, придется приступать к анализу текста сообщения об ошибке, появившегося во время запуска ПК.
Сообщение с текстом «BOOTMGR is missing» говорит о том, что загрузчик операционной системы Windows 7 поврежден или отсутствует. Для решения этой проблемы вам понадобится установочный диск Windows 7. В разделе «Boot device priority» настроек BIOS назначьте первым загрузочным устройством CD/DVD-привод. Затем загрузитесь с установочного диска Windows и выберите пункт меню «Восстановление системы». Из списка инсталлированных операционных систем (если у вас их несколько) следует выбрать нужную и нажать кнопку «Далее». В появившемся окне «Параметры восстановления системы» нас интересуют два пункта — «Восстановление запуска системы» и «Командная строка». Первый вариант позволит автоматически устранить проблему со стартом операционной системы, а в случае его неудачи придется обратиться ко второму. В командной строке наберите «bootrec /rebuildbcd», нажмите «Enter » и согласитесь на внесение изменений в конфигурационные данные загрузки, поочередно нажав на клавиши «Y» и «Enter». После этого остается лишь создать новый загрузочный сектор при помощи консольной команды «Bootrec /FixBoot» и перезагрузить компьютер.
Использовали сжатые разделы?
В результате ошибочного сжатия раздела с загрузочными файлами Windows 7 может появиться сообщение «BOOTMGR is compressed». Дело в том, что драйвер файловой системы ntfs.sys, который отвечает за работу со сжатыми разделами диска, начинает действовать намного позже загрузчика Bootmgr.exe. В данном случае вам снова придется обращаться к помощи установочного диска Windows 7, в командной строке которого нужно последовательно выполнить ряд команд: expand bootmgr temp — attrib bootmgr -s -r –h- del bootmgr — ren temp bootmgr — attrib bootmgr -a +s +r +h — bootrec /fixboot.
Удален системный файл?
Ошибка «NTLDR is missing» говорит о повреждении или отсутствии файла NTLDR, который является загрузчиком Windows XP. В отличие от BOOTMGR в Windows 7, хранящегося в отдельном скрытом разделе, файл NTLDR находится на одном диске с операционной системой. Бывает, что неопытные пользователи ошибочно принимают системные файлы с неизвестными им названиями за вредоносные программы и без сомнений удаляют их. Такая участь зачастую постигает ни в чем не повинный NTLDR, а также еще один критически важный для успешной загрузки ОС файл — ntdetect.com. Для решения проблемы потребуется инсталляционный диск Windows XP. В самом начале процесса его загрузки необходимо нажать клавишу «F10», чтобы попасть в консоль восстановления. С ее помощью нужно зайти на установочный диск Windows, воспользовавшись командой «Х:», где Х — буква соответствующего оптического привода. Затем остается лишь скопировать в раздел винчестера с ОС два недостающих файла, выполнив команды: copy i386ntldr C: и
copy i386ntdetect.com C:.
Данный способ также эффективен в случае потери любых других системных файлов, копии которых можно найти на установочном дисках Windows 7 и XP соответственно.
Ошибка «NTLDR is compressed» появляется крайне редко, поскольку ей подвержены лишь компьютеры под управлением Windows XP без установленного пакета обновлений SP2. Она может возникнуть в тех случаях, когда в корне диска C: хранится слишком много файлов. Подобная проблема со сжатием загрузчика NTLDR решается точно так же, как в случае его повреждения или удаления — путем копирования оригинального файла с установочного диска Windows XP.
Не обнаружен загрузочный диск?
Появившееся сообщение об ошибке «No bootable device» и его многочисленные вариации («Boot device not found», «Invalid boot device», «Non system disk or disk error» и т. д.) свидетельствуют о том, что компьютер даже не приступил к запуску операционной системы, так как не видит загрузочный сектор или даже жесткий диск. Чтобы понять, где кроется проблема — на программном или аппаратном уровне, достаточно зайти в уже знакомый нам раздел «Boot device priority» настроек BIOS. Если винчестера (HDD) среди предложенных вариантов не окажется, значит, проблема связана с оборудованием. Возможно, отошел кабель передачи данных или питания жесткого диска, либо накопитель отжил свое.
Если же компьютер нормально распознает жесткий диск, причина носит программный характер и кроется в главной загрузочной записи (MBR) — она повреждена либо отсутствует. В отличие от рассмотренных выше данная ситуация актуальна одновременно для Windows 7 и XP, но решается предельно просто. Загрузившись с установочного диска, достаточно выполнить в консоли восстановления всего лишь одну команду: «bootrec /fixmbr» (для Windows 7) или «fixmbr» (для XP).
Ошибка работы драйвера
Сообщения о критических ошибках Windows, которые из-за цвета фона называют «синими экранами смерти» (Blue Screen of Death), — довольно распространенные проблемы в Windows
XP, а вот в «семерке» производитель постарался сделать систему более надежной в этом отношении. Их причиной может быть неправильно работающее оборудование — например, оперативная память.
Чаще всего BSOD-сообщения на ранней стадии загрузки появляются после обновления драйверов устройств и содержат текст «DRIVER_IRQL_NOT_LESS_OR_EQUAL» вместе с именем файла с расширением SYS. Чтобы удалить проблемный драйвер через «Диспетчер устройств», можно попробовать запустить Windows в безопасном режиме ,ведь в нем используется лишь минимальный набор драйверов. Для этого необходимо во время загрузки ОС нажать клавишу «F8» и выбрать пункт «Безопасный режим».
Если при загрузке в безопасном режиме «синий экран смерти» все равно появляется, необходимо вернуться к прошлой версии драйвера, с которой не возникало проблем. Сделать это можно при помощи точки восстановления, если она создавалась ранее. В Windows 7 для этого необходимо во время загрузки ОС нажать клавишу «F8» и в появившемся меню выбрать
пункт «Устранение неполадок компьютера». После этого вы попадете в точно такое же меню «Параметров восстановления», как и при использовании установочного диска Windows. На этот раз вас должен интересовать пункт «Восстановление системы», в котором можно выбрать одну из имеющихся точек для отката.
Если поврежден файл загрузчика
Ошибка вида «Windows could not start because the following file is missing or corrupt: WindowsSystem32имя файла.dll» свойственна лишь операционной системе Windows XP. Она бывает вызвана повреждением или отсутствием конфигурационного файла загрузки Boot.ini, который не применяется в новой версии ОС. Решить проблему можно при помощи команды «bootcfg/rebuild» в консоли восстановления Windows XP, которая откорректирует существующий или сгенерирует новый файл Boot.ini.
Отсутствие в системе других файлов, в первую очередь драйверов с расширением SYS, случается и в «семерке», и в XP. Самый эффективный способ решить проблему — вернуть пропажу на место, разыскав ее копию на установочном диске Windows, позаимствовав ее на другом компьютере с такой же версией ОС или на бескрайних просторах Интернета. Если под рукой нет второго ПК, то для поиска, загрузки и копирования файлов понадобится LiveCD с ОС, не требующей установки. Одним из наиболее удобных вариантов является операционная система Puppy Linux, которая будет готова к работе менее чем за минуту. В данную ОС включены драйверы для самых распространенных моделей сетевых карт, а значит, выйти в Интернет не составит труда.
Исключением являются файлы системного реестра System, Software, SAM, Security и Default, которые хранятся в папке С:windowssystem32config. Заменить их копиями с другого компьютера, конечно же, не получится, поэтому единственным вариантом остается откат к точке восстановления. В Windows XP для этого нужно сначала загрузить операционную систему хотя бы со стандартными ветками реестра, а уже после этого запустить процесс регенерации ОС. Для этого зайдите в консоль восстановления Windows XP, как описано выше, и выполните ряд команд (возьмем в качестве примера файл реестра System): md tmp-copy c:windowssystem32configsystem c:-windowstmpsystem.bak-delete c:windowssystem32configsystem-
copy c:windowsrepairsystem c:windows-system32configsystem.
Утилиты для ремонта
Причиной практически всех рассмотренных в статье проблем с загрузкой Windows могут быть поврежденные сектора жесткого диска (бэдблоки). Проверить винчестер позволяет бесплатное приложение MHDD, которое запускается прямо с загрузочного компакт-диска. В меню программы необходимо выбрать из списка номер жесткого диска и запустить сканирование секторов на ошибки и их исправление — «Remap | ON».
Бэдблоки, как правило, концентрируются в начале жесткого диска, поэтому стоит переместить раздел с ОС подальше от проблемной зоны. Для этого подойдет загрузочный диск с бесплатным редактором разделов MiniTool Partition Wizard HE. В меню программы нужно прибегнуть к операции «Partition | Move/Resize».
BSOD может быть связан и с оперативной памятью. Провести тест модулей ОЗУ позволяет бесплатное приложение Memtest86.
К возможным неприятностям с компьютером лучше подготовиться заранее. В Windows 7 можно создать точку восстановления, которая позволит в случае проблем вернуться к рабочему состоянию. Для этого зайдите в меню «Пуск | Панель управления | Система | Защита системы» и в самом низу нажмите на кнопку «Создать». В Windows XP аналогичный инструмент можно найти в меню «Пуск | Программы | Стандартные | Служебные | Восстановление системы | Создать точку восстановления». Если беда уже случилась, но ранее вы не создавали вручную точек отката, не стоит отчаиваться. При установке некоторых программ — например, антивирусов и редакторов разделов жесткого диска — точка восстановления генерируется автоматически.