У меня есть машина с Windows XP, Server 2003 R2 и Server 2008 R2.

Прямо сейчас bootmgr имеет одну запись для Server 2008 R2 и одну запись для ntldr, что затем приводит к меню ntldr boot.ini.

Можно ли добавить две разные записи nt52 на два раздела, чтобы я мог получить доступ ко всем трем ОС из меню bootmgr?

В настоящий момент Server 2008 и XP находятся на логических дисках в расширенном разделе, но (я полагаю) я могу создать образ для них при необходимости.

2 ответа2

1

Обычно в BCD (загрузчик Vista/Windows7/Longhorn) вам нужна всего одна запись для всех ОС на основе ntldr, которые вы хотите загрузить. Когда BCD передает управление в NTLDR, NTLDR использует boot.ini для предоставления списка, этот список может и должен содержать все ОС на базе NT, которые вы хотите загрузить.

Например

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP"
multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows Server 2003"

Вкратце: у вас есть меню загрузки BCD/Vista/Windows 7, в котором есть пункт, позволяющий переключиться в меню загрузки NTLDR/XP/Server 2003. Записи, основанные на Vista/2008, отображаются в меню загрузки BCD, записи на основе NT/XP отображаются в меню NTLDR. И у вас есть возможность загрузить меню NTLDR в список BCD.

Еще короче: вам нужна только одна запись nt52 для NTLDR в bootmgr. Поместите все другие oses на основе nt52 в BOOT.ini этой записи. Boot.ini может обрабатывать загрузку различных ОС на базе nt52 на разных дисках / томах с использованием формата multi-disk-rdisk-partition.

0

РЕДАКТИРОВАТЬ: это не работает


Я использовал EasyBCD, чтобы добавить запись NTLDR для второго раздела.
Когда я перезагрузился, выбор этой записи дал ошибку NTLDR not found.
Я скопировал NTLDR и boot.ini в этот раздел, и запись сработала, но все же прочитал boot.ini из системного раздела.

Предупреждение: чрезвычайно опасно!

Если бы я действительно хотел, я мог бы открыть вторую копию NTLDR (во втором разделе) в шестнадцатеричном редакторе и изменить ссылки на boot.ini, например, на boXP.ini. Затем я могу создать boXP.ini в системном разделе и указать только запись для XP.

Конечно, если ntldr выполняет проверку целостности, это вообще не будет работать.
РЕДАКТИРОВАТЬ: я попробовал это на виртуальной машине, и, когда я перезагрузился в раздел с измененной копией NTLDR, он сказал, что NTLDR is corrupt. The system cannot boot.

Это не было бы так опасно, как кажется, потому что реальный системный раздел сохранил бы свой первоначальный NTLDR и имел бы boot.ini, который по умолчанию установлен на Server 2003 с очень небольшим таймаутом.

Несмотря на это, я бы предпочел сделать что-то более вменяемое.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .