- Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС
- Принципы загрузки операционных систем
- Типы MBR
- Разнообразие PBR
- Восстановление запуска Windows 7: поднимаем загрузчик
- Способ 1: С помощью стандартного меню
- Способ 2: Через загрузочную флешку или диск
- Способ 3: Командная строка (fixmbr и fixboot)
- Способ 4: Активация раздела MBR
- Способ 5: Командная строка (Bootrec.exe)
- Способ 6: Системный
- Способ 7: Есть две операционные системы
- Способ 8: Ошибка «NTLDR is missing»
- Способ 9: Ошибка «BOOTMGR is missing»
Все, что вы хотели знать про загрузку 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 7: поднимаем загрузчик
ВНИМАНИЕ! Все способы представленные в статье проверены специалистом.
Всем привет! Сегодня мы поговорим про восстановление загрузчика в Windows 7. В итоге вы можете наблюдать только один симптом – система отказывается загружаться. Это может произойти из-за поломки системных файлов, которые отвечают за загрузку основных модулей системы. Сам часто сталкивался с данной проблемой, поэтому я решил написать подробную инструкцию.
Вытащите из компьютера или ноутбука все флешки и диски. Если после этого система загрузится, то проверьте загрузочный BOOT MENU в BIOS – вам нужно выставить приоритет загрузки жесткого диска (HDD или SSD). Далее я приведу несколько способов, чтобы произвести восстановление загрузки в «семерке». Если у вас будут какие-то вопросы, то пишите в комментариях.
Способ 1: С помощью стандартного меню
Если вы не знаете как восстановить загрузчик, то можно попробовать зайти в безопасный режим. Возможно восстановление загрузчика вообще не потребуется, а система не загружается из-за других причин, поэтому это нужно проверить.
ПРИМЕЧАНИЕ! Если окно безопасного режима не появилось, или что-то пошло не так – перейдите к следующему способу.
При загрузке зажмите кнопку «F8» на клавиатуре. После этого вы должны увидеть вот такое меню. Для начала нажимаем на первый пункт, который постарается восстановить загрузку ОС. Если ничего не получилось, то нажимаем «Безопасный режим».
Если вам удалось запустить «Безопасный режим», делаем следующее:
- Нажмите «Пуск» и перейдите в «Панель управления».
- Найдите раздел «Восстановление».
- Нажимаем по кнопке «Запуск восстановления системы».
- Запустится служба, на одном из шагов нужно будет выбрать точку восстановления – смотрите по дате. Вы также можете установить галочку, чтобы увидеть другие точки. Лучше всего выбирать точку с самой ранней датой.
В самом конце система один раз перезагрузится и постарается восстановить системные файлы на тот период. Восстановление будет идти только на системном диске. Если данный способ не дал результата, то скорее всего есть поломка в загрузочном файле MBR. Не переживайте – сейчас мы его восстановим.
Способ 2: Через загрузочную флешку или диск
Восстановить загрузку Windows можно с помощью установочного диска или флешки. Инструкцию по созданию флешки или диска можете посмотреть тут. Чтобы восстановить загрузку – вам понадобится загрузочный носитель с любой версией Windows 7, но лучше, конечно, устанавливать именно ту версию, которая стоит у вас.
После создания флешки вставьте её в компьютер или ноутбук и перезагрузитесь (или включите аппарат). Как только начнет отображаться меню BIOS, вам нужно выбрать BOOT MENU (Меню загрузки) – для этого чаще всего используются клавиши F11, F12, F8 и т.д. После этого выбираем в качестве загрузки – вашу флешку или CD/DVD диск.
СОВЕТ! Смотрите подсказку на основном экране, для «заморозки» начального экрана нажмите на кнопку «Pause».
Как только вы попадете в меню установщика – вам нужно выбрать ссылку «Восстановление системы».
Сначала загрузочный носитель сам постарается найти и решить проблему с загрузкой. По идее он должен её обнаружить самостоятельно.
Если такое произойдет, то вылезет окошко с предупреждением, что вашей системе «плохо» и её нужно вылечить. Нажимаем на кнопку для исправления и перезапуска. Если ничего не помогает, или вообще такое окошко не вылезет, идем дальше.
Чтобы выполнить восстановление запуска – нужно выбрать именно первую галочку. Также убедитесь, что система выбрала именно вашу ОС на жестком диске. Нажмите «Далее»
Теперь перед нами появится вот такое меню. В первую очередь пробуем сделать автоматическое «Восстановление запуска» – просто выбираем этот пункт. Далее ждем пока процедура закончится, а ПК перезагрузится.
Способ 3: Командная строка (fixmbr и fixboot)
Если прошлый способ не дал результата, то попробуем выполнить восстановление из командной строки. Проделываем все те же действия, чтобы появилось меню восстановления. Далее выбираем раздел «Командная строка».
Откроется черная консоль, где нужно будет поочередно прописать всего две команды:
bootrec /fixmbr
bootrec /fixboot
Эти команды берут системные файлы, которые отвечают за загрузку системы с загрузочной флешки или диска, и перезаписывает их на ваш жесткий диск. Поэтому даже если они побиты программами или вирусами – после данной процедуры система должна нормально загружаться.
Способ 4: Активация раздела MBR
Если это не поможет, то снова запустите командную строку и пропишите следующие команды:
Выводим список всех разделов:
Нас интересует два раздела. Первый – имеет размер в 100 мегабайт и содержит в себе все загрузочные модули Виндовс. Второй – это диск на котором расположена ваша ОС. Диск с вашей операционной системой вы должны обнаружить самостоятельно – смотрите по размеру. Также Имя (буква) диска может отличаться от фактического, поэтому на него даже не смотрим.
Теперь нам надо выбрать раздел с загрузочными модулями (используем цифру тома):
sel vol 1
activ
exit
Вписываем команду с буквой тома, где расположена у вас винда. В моем случае это диск «D», но у вас может быть совершенно другая буква:
Способ 5: Командная строка (Bootrec.exe)
Опять открываем волшебную консоль через загрузочный носитель и прописываем команды:
Bootrec.exe /FixMbr
Bootrec.exe /FixBoot
exit
В самом конце перезагружаемся.
Способ 6: Системный
В общем если у нас не получается восстановить файл вручную, то мы можем заставить это сделать загрузочный носитель. Для этого нам нужно сначала удалить файл с загрузочными модулями, который занимает 100 МБ. А потом зайти через стандартное восстановление, через загрузочный диск – далее система сама себя реанимирует.
Из-под командной строки прописываем:
diskpart
list vol
Выбираем раздел с загрузочными модулями:
sel vol 1
format fs=ntfs
activ
Два раза прописываем команду:
Далее система не сможет загрузиться, так как файл мы удалили, поэтому опять загружаемся с носителя. Программа предложит исправить загрузку – соглашаемся и перезагружаемся.
Если система загрузится – то хорошо, если он все также будет выдавать ошибку или зависать, то опять подгружаемся с носителя, и уже из списка способов выбираем «Восстановление запуска».
Способ 7: Есть две операционные системы
Данный способ помогает, когда у вас существует две операционные системы, но загружается совершенно другая. Также могут быть проблемы с загрузкой обоих, особенно после установки второй ОС. Мы сейчас попробуем сделать обе ОС активными, чтобы вы смогли выбирать их при загрузке. Опять через загрузочную флешку заходим в консоль и прописываем волшебные заклинания:
Bootrec /ScanOs
Bootrec.exe /RebuildBcd
После этого система предложит записать обе системы в меню загрузки. В обоих случаях нужно ввести в консоль обычную букву «Y» и нажать «Enter».
Прежде чем выходить командной «exit» – введите ещё одну команду:
Она поможет реанимировать некоторые BOOT модули.
Способ 8: Ошибка «NTLDR is missing»
Если при загрузке системы вы видите вот такое окошко: «NTLDR is missing Press ctrl+alt+del to restart», – то не спешите паниковать. Данная ошибка возникает достаточно редко на «семерке» и обычно файл NTLDR находится на других версиях «окон». Но не будем вдаваться в суть проблемы и начнем её решать. Как вы уже догадались, решается она также – через консоль. Запускать вы её уже научились, так что про это писать не буду.
После запуска вводим команды:
diskpart
list volume
Тут нам нужно опять найти букву, которой присвоен системный диск. В моем случае это опять буковка «D».
Exit
bcdboot.exe D:\Windows
Опять же нужно вписать букву именно системного диска – смотрите по вашему объему.
Итак, загрузочный модуль мы создали. Теперь нужно его активировать. Для этого вводим команды:
Команда выводит все подключённые физические носители. У меня он всего один, но у вас может быть два – вам нужно выбрать тот, на котором загружена система.
sel disk *НОМЕР ЖЕСТКОГО ДИСКА*
list partition
Здесь выведутся именно разделы выбранного вами жёсткого диска. Выбираем раздел с объёмом 100 мегабайт и вписываем в следующую команду номер:
sel part 1
active
exit
Способ 9: Ошибка «BOOTMGR is missing»
При загрузке вы можете наблюдать вот такое сообщение: «BOOTMGR is missing. Press Ctrl+Alt+Del to restart». Как я уже и говорил, в системе есть так называемый загрузочный файл MGR, который как раз так и называется «BOOTMGR». Весит он, как вы поняли, всего 100 МБ. Иногда данный файл может ломаться или вообще удаляться вирусами. Тогда вы и видите ошибку, что файл «BOOTMGR» – не найден.
Тут есть два варианта. Первый – он настолько поломан, что не может запустить систему. Второй – он удален или перенесен в другой раздел. Как вариант – система могла выбрать в качестве загрузки другой раздел, диск или устройство. По решению именно этой проблемы смотрим инструкцию по этой ссылке.