PDA

Показать полную графическую версию : Как заставить менеджер загрузки видеть свой родной BCD файл?


Sevilho
06-07-2013, 12:58
Комп с BIOS.

Есть исходная, первичная ОС.

Для целей ее профилактики и ремонта из нее была создана вторичная ОС на другом винте. Для создания (клонирования) был использован хакерский прием копирования раздела средствoм Acronis Disk Director Suite.

В результате образовался вот какой баг. Вторичная ОС игнорирует свой C:\boot\bcd файл, а использует bcd на винте первичной ОС. В результате загрузить вторичную ОС можно только через мультибут, сделанный на первичной (за что боролся?).

Хочу сделать загрузку вторичной ОС полностью независимой от первичной, для чего ее нужно заставить использовать свой
C:\boot\bcd файл.

Ну и в познавательных целях интересно где менеджеру загрузки прописывается использовать тот или иной BCD файл? (ясно что не в Реестре). Интересно также то, что это не обязательно "ближайший" BCD, т.е. на том же винте - может браться с другого винта. Видимо в силу нестандартности ситуации, не нашел решения на просторах Инета.

okshef
06-07-2013, 13:05
Sevilho, сделайте 2 файла, получение которых описано после слов Внимание - обязательно к исполнению! в шапке темы Восстановление загрузки Windows 7 после установки XP и создание двойной загрузки (http://forum.oszone.net/thread-196715.html).

Sevilho
06-07-2013, 14:18
Пожалуйста. До кучи - скриншоты, выданные bcdedit.exe на обоих системах.

Sevilho
06-07-2013, 14:57
Дополнительно. Загружался с Repaire disk и чинил проблемную ОС командой

bootrec /fixmbr

Не помогло. Видимо тот факт, что обе ОС используют один и тот же BCD считаю ненормальным только я, но не утилиты :)

kazimir
06-07-2013, 15:18
Вторичная ОС игнорирует свой C:\boot\bcd файл, а использует bcd на винте первичной ОС. »
bcd на винте первичной ОС - это где ? по моему это и есть C:\boot\bcd .

тот факт, что обе ОС используют один и тот же BCD считаю ненормальным только я »
это и неправильно . установите хоть 5 7рок и все они будут грузится с одного BCD и это нормально и правильно .

yurfed
06-07-2013, 15:44
Sevilho, попробуйте в BIOSе переключить приоритет винчестеров и изменить один на другой.
Комп с BIOS. »Это существенно и меняет всю ситуацию:)

Sevilho
06-07-2013, 20:31
>эти разделы одинаковые на обоих осях - вот и причина!»
И что? Поясни, плз, смысл этой ветки реестра.

>Выложи скрин управл. дисками из секонд ос.
Выложил.

>Поправить можно, если уверен, что справишся
вторая система экспериментальная, так что курочить ее могу неограниченно.

>Надо тогда не клонировать, а установить ос и обязательно отключить на время установки диск с мэйн ос
Установить или переустановить? Установить я мог и раньше, весь смысл - резко снизить трудоемкость, т.к. клонируя, получаешь и все настройки и нужный софт.

>Для целей ее профилактики и ремонта »
>- надеюсь не дефрагментируешь раздел мэйн ос из секонд ос?
Для проверки здоровья винтов рекомендуется такой самый точный способ - снятие графика скорости винта (SMART отдыхает). Снять точно график с системного винта не получится - система лочит файлы и мешает этому. Поэтому нужно грузиться с другого места (винта или съемного носителя).

Sevilho
06-07-2013, 20:43
надеюсь не дефрагментируешь раздел мэйн ос из секонд ос? »
Еще раз было: навязчивый Mail.ru навязал таки мне какой-то "улучшающий" софт и выковорить файл после деинсталяции не удавалось - он был залочен автостартующим процессом (который тоже хрен выключишь). Вот тут тоже помогла запасная ось.

попробуйте в BIOSе переключить приоритет винчестеров и изменить один на другой. »
Статическим порядком девайсов загрузки не пользуюсь. Во всех современных мамках есть конткей вызова динамического назначения. В Асусовских платах - это F8, в офисных компах от HP - F9. Это удобно, т.к. вторая система используется редко.

Конечно могу если настоите, но явной ошибки вроде не делал - перехватывал и загружался с винта, где вторая ось.

bcd на винте первичной ОС - это где ? по моему это и есть C:\boot\bcd.
»
Верно. Но на вторичной (там системный том тоже C: ) его родной файл C:\boot\bcd игнорируется и берется
Y:\boot\bcd, где Y: - буква первичной системы, так как ее видит вторичная.

Цитата Sevilho:
тот факт, что обе ОС используют один и тот же BCD считаю ненормальным только я »
это и неправильно . установите хоть 5 7рок и все они будут грузится с одного BCD и это нормально и правильно . »
Это неправильно с точки зрения надежности. Удалите раздел с мультибутом и все остальные системы накроются медным тазом - не смогут загрузиться. Мне нужно, чтобы вторичная система была полностью автономна независимо от того существует первичная или ее моль поела :).

kazimir
06-07-2013, 20:57
Sevilho,
загрузка происходит с основного АКТИВНОГО раздела . у вас , наверно этот раздел на первом винте . надо раздел с новой ОСью сделать активным и на нём должны быть файл bootmgr и папка boot с файлом BCD .
Mail.ru остался , удалять надо ? http://forum.oszone.net/post-2107713-3.html

Sevilho
06-07-2013, 21:41
надо раздел с новой ОСью сделать активным и на нём должны быть файл bootmgr и папка boot с файлом BCD .
Mail.ru остался , удалять надо ? »
А вот это мой грубый прокол !!! Спасибо, как говорится, со стороны виднее.
Сделал активным (скрин прилагаю).
После этого стал слушаться локальный BCD, т.е. появляется прописанное в нем меню.

Но дальше загрузка не идет: говорит, что файл C:\Windows\system32\winload.exe "missing or corrupt". Файл на месте, точностью совпадает со своим двойником на основной оси. Но чувствую, что осталось немного, чего-то подправить :)

okshef
06-07-2013, 23:53
Sevilho, условий успешной загрузки всего несколько:

Наличие активного раздела
Наличие файлов загрузки на активном разделе
"Правильный" BCD, в котором прописаны условия загрузки нужной системы
Соответствие MBR и MBC файлу загрузки системы

По второму условию: файлы bootmgr у вас находятся на разделах С (с которого сейчас и происходит загрузка) и Y. Но первое условие для раздела Y не выполняется - он не является активным. Сделайте.
Для приведения в соответствие 4-го условия нужно пользоваться либо утилитой bootrec, либо bootsect

Думаю, для продвижения вам поможет статья Как перенести файлы загрузки Windows 7 на другой жесткий диск (http://www.oszone.net/10752/move_Windows7_boot_files)

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices - эти разделы одинаковые на обоих осях - вот и причина! »
И как она себя проявляет? Что, реестр одной системы взаимосвязан с реестром другой?

Sevilho
07-07-2013, 12:29
Проблему решил.
1. Вторичный винт не был активным. Сделал его активным. Загрузка хоть стала пытаться начаться.

Однако продвинулась загрузка ненамного. Мол у тебя winload.exe отсутствует или молью изъеден. Полная чушь. Все на месте (система была проклонирована). Поэтому прозвучавшие здесь советы перенести загрузочные файлы бесполезны.

Просторы Инета рассказали, что такое случается после развертывание образов на бОльшие разделы. Т.е. диагностику от MS не нужно принимать буквально,.

Самое печальное, что обе оси продолжали использовать один и тот же BCD. И это никаким редактированием, созданием BCD заново и др. не лечилось

2. Использовал идею от "severagent007" по отключению винтов. Идея в том, что мы отсекаем систему от соблазна использовать перекрестный BCD, т.е. на другом винте и вынуждаем использовать свой родной. После того, как отключил винт где был использованный BCD получил ровно такую диагностику о корупированности winload.exe. Загрузился с Repaire DVD, тот тут же нашел проблему с загрузкой и предложил выличить. После этого - все OK.

Далее на каждой системе убрал мультибут, чтобы не мешался. Когда нужно - через BIOS.

Ну и самое интересное, Итоги

1. тут вообщем правильно говорилось о том, что необходимо соответствие между HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices и идентификаторами винтов в загрузочном меню
Но в данном случае этого не было, т.к. Repaire DVD находит это несоответствие и на раз убирает.

2. плодотворной оказалась идея о поочередном отключении винтов. Тогда починочные тулзы начинают работать над нужными объектами. Другими средствами отбить охоту использовать BCD на другом винте сделать не удавалось.

2а) после отключения винта, в котором находятся папка SkyDrive последний слетел и заново начал закачку папок. Это, накладные расходы.

3. Задним умом понимаешь, что корректнее всего было клонировать родными средствами от MS
1) сделать бэкап основной системы
2) пройтись по ней sysprep'ом
3) закатать образ в WIM
4) подготовить раздел на новом винте
5) раскатать туда WIM
6) загрузиться и вернуть кое-какие настройки (буквы томов, и др.)
7) вернуть основную систему из образа.

Наличие активного разделаНаличие файлов загрузки на активном разделе"Правильный" BCD, в котором прописаны условия загрузки нужной системыСоответствие MBR и MBC файлу загрузки системы »
Все правильно, но в данной задаче выставляется условие чтобы ось не использовала BCD на другом винте. Т.е. речь идет не об успешности загрузки, а о полной автономности системы на партиции от систем на других партициях.

okshef
07-07-2013, 19:36
Чтобы ОС не использовала старый BCD вам нужно было удалить из него запись об этой ОС. Я думал, что для вас это очевидно, поэтому и не стал писать об этом. В статье о переносе файлов загрузки описан механизм пересоздания BCD на новом диске. Я тоже думал, что вы догадаетесь. Извините.

Sevilho
07-07-2013, 20:49
Чтобы ОС не использовала старый BCD вам нужно было удалить из него запись об этой ОС. Я думал, что для вас это очевидно, поэтому и не стал писать об этом. В статье о переносе файлов загрузки описан механизм пересоздания BCD на новом диске. Я тоже думал, что вы догадаетесь. Извините. »

Я и все удалял из BCD, и пересоздавал заново (bootrec /Rebuild) - ничего не помогало. Только отключение винтов.

severagent007
09-07-2013, 01:39
Цитата severagent007:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices - эти разделы одинаковые на обоих осях - вот и причина! »
И как она себя проявляет? Что, реестр одной системы взаимосвязан с реестром другой? »Реестр не взаимосвязан, а одинаков. Да, подобное точно делал на хр, после копирования нужно было чистить в клоне этот раздел. Но вспомнил - 7 же полюбому сама обновляет этот раздел реестра и ставит себе С всегда




© OSzone.net 2001-2012