В настоящее время в корпоративной среде по-прежнему широко распространена Windows 7(и эта ситуация будет сохранятся еще как минимум несколько лет). У одного из заказчиков, работающего на системах под управлением этой ОС, в результате сбоя отказался запускаться загрузчик.
Стандартные и всем известные команды
Bootrec.exe /FixMbr
и
Bootrec.exe /FixBoot
в данном случае не помогли(как и попытка автоматического восстановления загрузки с помощью установочного диска).
Что же делать? Придется создавать раздел с загрузчиком заново.
Система имеет раздел с меткой System Reserved, и именно его придется пересоздавать.
Грузимся с загрузочной флешки, запускаем командную строку и утилиту diskpart , после чего удаляем и создаем заново раздел:
diskpart // запуск утилиты diskpart
lis vol // отображаем список всех разделов
sel vol 0 // выбираем том, с которым будем работать; в нашем случае том 0
del vol // удаляем раздел
creat par prim // создаем создаём основной раздел
format fs=ntfs // форматируем,используя файловую систему NTFS
assign letter С // присваиваем созданному разделу букву С
activ // делаем раздел активным
exit
Итак, раздел создан, далее необходимо прописать туда программный код загрузочных секторов, обеспечивающих загрузку либо bootmgr (в более старых версиях Windows - ntldr)
Для этого используется утилита BOOTSECT.EXE(более полное ее описание приведу в конце заметки).
Записываем коды PBR (Bootmgr) и MBR:
bootsect /nt60 C: /mbr
Создаем загрузчик для ОС, расположенной на диске D(будьте внимательны, проверяйте имена дисков!):
bcdboot D:\windows /s C:
После чего перезагружаемся и проверяем работоспособность. В нашем случае, система загрузилась корректно.
Приведу более полное описание BOOTSECT.EXE:
Команда BOOTSECT позволяет записывать заданный программный код загрузочных секторов, обеспечивающих загрузку либо ntldr, либо bootmgr .
Формат командной строки:
bootsect {/help|/nt60|/nt52} {SYS|ALL|< DriveLetter >:} [/force] [/mbr]
Параметры командной строки Bootsect:
/help - отображение справочной информации;
/nt52 - запись программного кода загрузочного сектора, обеспечивающего использование загрузчика ntldr для операционных систем, предшествующих Windows Vista.
/nt60 - запись программного кода в загрузочные секторы для обеспечения загрузки файла bootmgr - диспетчера загрузки Windows Vista/Server 2008 и более поздних ОС семейства Windows.
SYS - запись будет выполнена в секторы системного раздела, который использовался для загрузки Windows, в среде которой выполняется данная команда.
ALL - запись программного кода будет выполнена для всех существующих разделов, которые могут быть использованы для загрузки Windows.
DriveLetter - буква диска, для которого будет выполнена перезапись программного кода загрузочных секторов.
/force - принудительное отключение используемых другими программами томов дисков для обеспечения монопольного доступа утилиты bootsect.exe
/mbr - изменение программного кода главной загрузочной записи (MBR - Master Boot Record) без изменения таблицы разделов диска. При использовании с параметром /nt52, MBR будет совместима с предшествующими Windows Vista версиями, При использовании с параметром /nt60 - MBR будет совместима с операционными системами Windows Vista и более поздними.
Примеры:
bootsect /nt52 E: - создать для диска E: загрузочные записи для операционных систем Windows XP/2000/NT, т.е для загрузки на базе ntldr;
bootsect /nt60 /mbr C: - изменить загрузочные сектора диска C: для обеспечения загрузки диспетчера bootmgr
bootsect /nt60 SYS - изменение загрузочных секторов для раздела, с которого выполнена загрузка текущей ОС Windows.