Установка 7 и XP на разные винты
Добрый день!
У меня следующая задача:
У друга на компе стояла Windows XP. Я ему поставил новый винт и установил туда семерку. Так вот теперь всегда грузится семерка без менюшки выбора операционной системы. Вопрос: как сделать меню выбора ОС, когда они находятся на разных винтах?
vitkazu, в семёрке в командной строке от имени администратора с помощью bcdedit.exe добавить запись identifier=ntldr , указывающий на XP на первом харде. См. bcdedit.exe -?, потом в панели управления/система/дополнительные настройки/дополнительно/загрузка и восстановление-опции/ выставить показ меню выбора систем и тайм-аут для его отображения.
Причина редактирования: поправочка: (datatype -> identifier)
arseny1992, спасибо большое. Попробую. Но насколько я знаю, семерка меняет названия букв дисков. Как точно знать букву диска, на котором стоит ХР? Потому что в ХР она стоит на С, в семерке она тоже стоит на С.
vitkazu, так, а на каком же тогда разделе стоит семёрка?
В контекстном меню Компьютера зайдите в управление (Manage...), управление дисками (Disk Management) и посмотрите что где стоит.
arseny1992, с помощью командной строки у меня не получилось, для меня оказалось сложновато. Я использовал прогу EasyBCD 1.7.2. Добавил ntdlr на диске D:\. Менюшка есть, но когда выбираешь ХР, система не грузится и вылетает на перезагрузку. Семерка грузится нормально
vitkazu, а вы уверены что XP именно на D:\ если смотреть из семёрки?
arseny1992 писал:vitkazu, так, а на каком же тогда разделе стоит семёрка?
Короче, что где стоит? и где стоит если смотреть откуда.
Вы лучше напишите вашу таблицу разделов, а ещё лучше, скриншот Управления компьютером в разделе Управления дисками (см. моё предыдущее сообщение).
Также вывод bcdedit.exe -enum
vitkazu, у вас в третьей позиции, aka Real-mode Boot Sector , в ней не указано identifier {ntldr} . С помощью
bcdedit.exe -set {fda7a599-98ba-1200-ab03-c66b0d60e3b8} identifier {ntldr}
почините запись на тип NTLDR
И в {bootmgr} , починить displayorder :
bcdedit.exe -displayorder {fda7a599-98ba-1200-ab03-c66b0d60e3b8} -remove
bcdedit.exe -displayorder {ntldr} -addlast
Тайм-аут в секундах:
bcdedit.exe -timeout 30
vitkazu писал:но когда выбираешь ХР, система не грузится и вылетает на перезагрузку.
Уточните пожалуйста, он вылетает на перезагрузку уже после старта NTLDR , или ещё как-бы во время работы BOOTMGR?
arseny1992, первая строчка не проходит. Пишет:
Microsoft Windows [Version 6.1.7100]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Ашура>bcdedit.exe -set {fda7a599-98ba-1200-ab03-c66b0d60e3b8} identifie
r {ntldr}
The element data type specified is not recognized, or does not apply to the
specified entry.
Run "bcdedit /?" for command line assistance.
Element not found.
de]
Остальные строки прошли успешно. Теперь вообще не показывает меню выбора ОС.
vitkazu,
Первая строчка у вас прошла, и запись Windows Legacy OS Loader с identifier {ntldr} это доказывает.
Теперь:
bcdedit.exe -set {ntldr} device partition=D:
bcdedit.exe -set {ntldr} path \NTLDR
bcdedit.exe -timeout 30
... или своё значение в секундах
После чего проверить снова
bcdedit.exe -enum
и если с ntldr всё ок, то идём и пытается грузиться в XP. Если не пойдёт, то будем думать дальше.
vitkazu, а если проверить какие там буквы дисков даются с точки зрения загрузчика? В меню выбора осей выберите recovery options , загрузитесь в Windows Recovery Environment . Откройте командную строку , из неё compmgmt.msc и затем в управление дисками. Если раздел с XP отличается буквой, то соответственно в командной строке повторить bcdedit.exe -set {ntldr} device partition=X: , где X: - нужная буква.
vitkazu,
1.обратите внимания на размер hartdiska где стоит XP[ следовательно будете знать букву]C:илиD (в моем случае это С: D)
1.1Запустите командную строку (cmd) от имени администратора.
2.Выполните последовательно следующие команды
bcdedit /create {ntldr} /d "Microsoft Windows XP"
(команда добавляет в загрузчик windows7 запись для загрузки Windows XP)
bcdedit /set {ntldr} device partition=C:
(команда определяет местоположение загрузчика Windows XP) [файл ntldr на диске C]
bcdedit /set {ntldr} path \ntldr
(команда указывает имя загрузчика Windoiws XP)
bcdedit /displayorder {ntldr} -addlast
(команда определяет положение записи загрузки Windows XP в окне выбора ОС для загрузки)
bcdedit /timeout 10
(команда определяет таймаут выбора ОС для загрузки в секундах)
работает 100% проверено.
stimul, всё это уже сделали ранее, читайте тему, теперь просто нужно узнать букву диска с XP , с точки видимости таблицы разделов загрузчиком. Если {ntldr} есть в bcdedit -enum , значит создавать запись снова не нужно.
vitkazu, см. мой предыдущий пост.
Можно ещё сделать вот это: узнать точки монтирования букв разделов:
mountvol D: /L
bcdedit -set {ntldr} device partition=\\?\Volume{********-****-****-****-************}
Первое - чтобы узнать GUID точки монтирования буквы диска, второе - ставит этот GUID в строку загрузки
Последнее не увере что заработает.
Товаресч!!!!
Ну так что?Работает данная схема или нет??