Что делать, если не загружается Windows 7 из-за поврежденного или неправильно отредактированного меню загрузчика? Восстановление загрузки Windows 7 – несложный процесс, если вы понимаете принцип работы системы.
Если по каким-либо причинам Windows 7 не загружается, набор системных утилит (bootrec, bootsect, bcdedit) помогут устранить проблему.
Начиная с Windows 7 Microsoft отказалась от использования стандартного загрузчика XP ntldr и сохранения конфигурации в файле boot.ini. Теперь, чтобы отредактировать меню загрузки Windows Vista/7 применяется специальная программа-редактор bcdedit.exe работающая с новым хранилищем загрузки.
TechNet Microsoft: “Файлы данных конфигурации загрузки (BCD) обеспечивают хранилище, которое будет использоваться для описания приложений загрузки и параметров приложений загрузки. Объекты и элементы хранилища по сути заменяют Boot.ini
BCDEdit – это средство командной строки, предназначенное для управления данными конфигурации загрузки.”
Важно понимать, что файл BCD не играет роли загрузчика Windows. BCD содержит информацию про диспетчер и приложения загрузки которые нужно использовать при запуске. В каком-то смысле, он является заменой файла конфигурации boot.ini На компьютерах с операционной системой на основе BIOS файл BCD расположен в папке \Boot\ активного раздела. На компьютерах с операционной системой на основе EFI файл BCD расположен в системном разделе EFI (ESP).
Вопреки расхожему мнению загрузочное меню Windows 7 не хранится в реестре. Конфигурация загрузчика просто проецируется на ветку реестра (HKEY_LOCAL_MACHINE\BCD00000000). Менеджер загрузки и конфигурации находятся в скрытом разделе размером 100Мб в папке Boot. Там же находится утилита тестирования оперативной памяти (аналог Memtest).
На рис. выше этот раздел имеет название “System reserved”.
Справка: Системный том содержит файлы Диспетчера загрузки Windows и другие файлы, необходимые для начальной загрузки систем.
Загрузочный же том содержит файлы операционной системы, расположенные в папках %SystemRoot% и %SystemRoot%\System32.
При установке Windows XP второй системой, её загрузочные файлы (ntldr, ntdetect, IO, autoexec, boot ) будут размещены в скрытом разделе System Reserved, т.е. там же где расположены файлы конфигурации 7ки (bcd). Почему? А потому, что именно этот раздел имеет метку “Активен”. ОС семейства Windows загружаются только с активного раздела.
Восстановление загрузчика Windows 7 при помощи встроенных утилит
Если Windows 7 не загружается, не обязательно прибегать к помощи программ восстановления сторонних разработчиков. Восстановление загрузки Windows 7 можно произвести при помощи встроенных утилит.
Для восстановления загрузки Windows 7 после потери информации из-за появления бед-блоков или вследствие деструктивных действий вирусов поможет bootrec.exe
bootrec – работает с MBR жесткого диска (аналогичны Fixmbr и Fixboot в XP) восстанавливает загрузчики в первом секторе жесткого диска и активном (помечен как “Система” в диспетчере дисков) разделе.
Bootrec.exe /FixMbr – записывает совместимую с Vista/7 главную загрузочную запись (Master Boot Record, MBR)
Bootrec.exe /FixBoot – записывает в системный раздел новый загрузочный сектор
Bootrec.exe /RebuildBCD – Этот параметр выполняет поиск установленных операционных систем, совместимых с Windows Vista или Windows 7, на всех дисках. Он также позволяет выбрать установленные системы, которые необходимо добавить в хранилище данных конфигурации загрузки. Этот параметр следует использовать в том случае, если необходимо полностью перестроить хранилище данных конфигурации загрузки.
Используйте средство Bootrec.exe для устранения ошибки с сообщением “Bootmgr отсутствует”. Если перестройка хранилища данных конфигурации загрузки не приводит к устранению проблемы, можно экспортировать и удалить данные конфигурации загрузки, а затем выполнить этот параметр повторно. Это обеспечит полную перестройку хранилища данных конфигурации загрузки.
Для этого в командной строке среды восстановления Windows введите следующие команды:
- bcdedit /export C:\BCD_Backup
- c:
- cd boot
- attrib bcd -s -h -r
- ren c:\boot\bcd bcd.old
- bootrec /RebuildBcd
Если XP отказывается устанавливаться вместо Windows 7, команда bootsect сможет помочь
Программа bootsect.exe обновляет основной загрузочный код разделов диска, чтобы обеспечить переключение между BOOTMGR и NTLDR. Это средство можно использовать для восстановления загрузочного сектора компьютера: bootsect.exe {/help | /nt52 | /nt60} {SYS | ALL | <буква_диска:>} [/force]
Код 52 – для XP
60 – для Vista/7
ALL – применить ко всем дискам.
Например команда bootsect /nt60 SYS /mbr позволит восстановить загрузку Windows 7, изменив загрузочный сектор и передав управление диспетчеру загрузки.
bootsect /nt52 SYS /mbr передаст управление стандартному загрузчику Windows XP.
bootcfg – работает с файлом boot.ini (если в системе есть XP)
bcdedit – конфигурирует загрузочное меню. Подробнее о bcdedit читайте далее.
Редактирование меню загрузки Windows 7 при помощи bcdedit
Редактирование меню загрузки может понадобится после установки XP в качестве второй ОС.
Чтобы вызвать bcdedit запустите командную строку от имени администратора: runas /user:administrator cmd.exe
bcdedit – покажет текущее меню загрузки
bcdedit /? – выведет справку по командам
--- Загрузка 7 --- Диспетчер загрузки Windows <---расположение самого менеджера загрузки (bcd и memtest.exe) -------------------- Идентификатор {bootmgr} <---идентификатор конкретной записи, он же = resumeobject {} device partition=\Device\HarddiskVolume2 <---папка с файлами для инициализации загрузки description Windows Boot Manager locale ru-RU inherit {globalsettings} default {current} resumeobject {d288dcb3-fe6f-11e2-a829-e9160df1400d} <--- displayorder {current} toolsdisplayorder {memdiag} timeout 30 Загрузка Windows <---расположение самой операционной системы (с загрузчиком winload.exe) ------------------- Идентификатор {current} device partition=C: <---divice = osdevice - буква диска, где где расположена ОС path \Windows\system32\winload.exe <---точный путь к программе загрузчика winload.exe description Windows 7 locale ru-RU inherit {bootloadersettings} recoverysequence {d288dcb5-fe6f-11e2-a829-e9160df1400d} recoveryenabled Yes osdevice partition=C: systemroot \Windows resumeobject {d288dcb3-fe6f-11e2-a829-e9160df1400d} nx OptIn
Поле идентификатор может иметь буквенно-цифровой формат {d288dcb3-fe6f-11e2-a829-e9160df1400d} вот такой например.
bcdedit [действие] [идентификатор элемента меню] [параметры]
Действия:
- delete – удаляет элемент загрузочного меню
- copy – копирование существующего элемента меню
- timeout установка тайм-аута
- set – переименование элементов загрузочного меню
- default – изменение операционной системы, запускаемой по умолчанию
- displayorder – порядок отображения на экране
- create создание нового меню загрузчика
- export выгрузка параметров загрузки в файл
- import загрузка параметров из файла
К примеру, чтобы удалить текущий (в данном случае единственный) элемент Microsoft Windows 7 из загрузочного меню, нужно воспользоваться командой bcdedit /delete {current}
или
bcdedit /default {current} установит Windows7 для загрузки по умолчанию
Здесь current – идентификатор элемента меню с которым мы работаем (редактируем).
Windows 7 не загружается после установки XP
Если же Windows 7 не загружается после установки XP или по причине некорректного редактирования меню загрузки, неудачной установки OS-Loader_ов, меню загрузки придется восстанавливать.
При помощи установочного диска Windows 7 можно восстановить возможность загрузки в “Семерку” (Загрузиться с установочного диска 7ки, выбрать “Восстановление системы” —> “Восстановление запуска”), а уже потом, посредством утилиты bcdedit (или программы Multiboot) настроить корректную загрузку двух операционных систем.
Попав в Windows 7, мы можем подправить меню загрузки дополнив его записью указывающей на загрузчик XP.
Запустив командную строку от имени администратора выполните:
Bcdedit /create {ntldr} /d "Windows XP"
Эта команда создает в хранилище загрузки Windows 7 запись для Windows XP. Если таковая (запись) уже существует, просто переименуйте:
Bcdedit /set {ntldr} description "Windows XP"
Следующая команда укажет загрузчику Windows 7 устройство расположения файлов загрузки XP (стандартные для XP файлы Ntloader, Ntdetect…):
Bcdedit /set {ntldr} device partition=[буква диска или если он спрятан путь в формате \Device\HarddiskVolume[Number]]:
Указываем путь к загрузчику Windows XP:
Bcdedit /set {ntldr} path \ntldr
Следующая команда добавит строчку о выборе Windows XP в меню загрузки и расположит ее под остальными:
Bcdedit /displayorder {ntldr} /addlast
Восстановление и редактирование загрузки при помощи программы Multiboot
Если вы не желаете прописывать в ручную команды редактирования меню загрузки, воспользуйтесь утилитой Multiboot с удобным графическим интерфейсом.
Multiboot – это восстановление загрузки Windows 7, Vista, XP, настройка их совместной работы без набора сложных команд.
Загрузка Windows в среде EFI
EFI – современная замена морально устаревшему 16-битному BIOS. EFI является интерфейсом между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования. В среде EFI загрузка Windows выполняется специальным менеджером и используется для выбора и загрузки операционной системы, исключая потребность в специализированном механизме загрузки (загрузчик ОС является приложением EFI).
В скрытом шифрованном разделе жесткого диска ESP, отформатированном в системе FAT32, находится файл BCD содержащий информацию об установленных ОС. Еще раз хочу обратить внимание, что файл BCD – не загрузчик как многие полагают, а всего лишь хранилище конфигурации для считывания загрузчиком. BCD является заменой boot.ini
Загрузчик зашитый в микросхему содержащую микропрограмму EFI BIOS находит раздел ESP по специальной метке-сигнатуре и передает управление содержащемуся там файлу по адресу \Device\HardDiskVolume#N\EFI\Microsoft\Boot\bootmgfw.efi
Bootmgfw.efi – это EFI загрузчик Windows. После передачи управления загрузчику ОС из системного раздела ESP, дальнейший процесс продолжается как обычно при помощи Winload находящегося в системном каталоге Windows.
Результат команды bcdedit запущенной без аргументов из командной строки отображает конфигурацию загрузки компьютера в EFI режиме загрузки.
Ошибки загрузки и восстановление Windows в режиме EFI
Если при загрузке компьютера с BIOS EFI появляется ошибка:
Error code: 0xc000000f File:\EFI\Microsoft\Boot\BCD. Error code: 0xc000000f
это говорит о нарушении целостности папки \Boot или некорректности файла BCD (содержащего данные о загрузке) скрытого раздела диска ESP. Повреждения могут быть вызваны бед-блоками на поверхности жесткого диска либо нарушением целостности файловой системы. Поэтому, прежде чем приступать к восстановлению загрузки Windows следует проверить поверхность диска на наличие битых секторов и целостность файловой системы запустив программу chkdsk из-под загрузочного диска Windows или Live-CD реаниматора.
Для восстановления директории\EFI\Microsoft\Boot\ с ее содержимым необходимо загрузиться с установочного диска Windows и при появлении начального окна установщика нажать комбинацию клавиш Shift-F10.
В открывшемся окне cmd набрать следующие команды:
diskpart – утилита работы с дисками
list disk – вывод всех накопителей в системе (диски, флеш-накопители и т.п.)
sel disk 0 – выбор интересующего нас диска из списка (подразумевается что он пронумерован как disk 0)
list vol – отображение томов выбранного диска
Перезагружаем компьютер.