Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Процесс загрузки операционной системы и мультизагрузка (http://forum.oszone.net/showthread.php?t=283792)

masyaka 18-06-2014 11:14 2365594

Процесс загрузки операционной системы и мультизагрузка
 
Приветствую!
Дано VMware® Workstation 10.0.2 build-1744117.
Создал виртуальную машину, в устройства этой виртуальной машины добавил три HDD (IDE). PM-HDD1 (5Гб), PS-HDD2 (20ГБ) SS-HDD3 (25ГБ). На каждом из HDD только один раздел. Secondary Master это CD-ROM.
1.Начал установку ОС Win XP SP2 первой и установил Win XP на PM-HDD1.
2.Далее установил Win 7 Макс на PS-HDD2.
3.Далее установил Win 7 Макс на SS-HDD3.
В итоге получил меню загрузки
Код:

Предшествующая ОС PM-HDD1
Win 7 SS-HDD3 (грузится по умолчанию, была установлена последней)
Win 7 PS-HDD2

Я думал, что если я возьму и поменяю HDD, таким образом, SS-HDD2, а PS-HDD3
то в меню загрузки получу вот такое соответствие
Код:

Предшествующая ОС PM-HDD1
Win 7 SS-HDD2
Win 7 PS-HDD3

и при выборе ОС Win7 (в меню вторая сверху) будет грузиться Win7 которая установлена на HDD2, а грузится Win7 которая установлена на HDD3. Как я понимаю, получается так что, грубо говоря, я взял и физически переподключил HDD в другие контроллеры, а с точки зрения конечного пользователя ничего не изменилось, я, как загружал Win7 (в меню вторая сверху) c HDD3 так и загружаю эту же ОС после переподключения HDD.
Если я правильно понимаю процесс загрузки происходит следующим образом, если я где-то не прав поправте пожалуйста.

Получается так, PM-HDD1 в БИОСе указан как загрузочное устройство, после прохождения POST подпрограмма БИОСа загружает в оперативную память первый сектор PM-HDD1, передав управление загрузкой программе, находящейся в этом секторе. Далее эта программа, прочитав первый сектор активного раздела передает управление загрузкой этой программе. Эта программа передает управление программе BOOTMGR. А как далее BOOTMGR узнает, с какого HDD и какую ОС грузить, если я правильно понимаю на этом этапе BOOTMGR не знает ничего о логических дисках, а как раз в хранилище конфигурации загрузки (BCD) я вижу инфу связанную с логическими дисками. Как BOOTMGR находит именно тот HDD который нужно.


P.S. Просто я пытаюсь изучить задачу загрузки нескольких ОС на одном компьютере и пока для себя в голове не могу четко все разложить по полочкам. Инфы конечно много по этому вопросу, но, на мой взгляд, она в разных источниках очень похожа, а ньюансов и деталей как раз маловато. После того как разберусь с этим вопросом хочу заняться EFI, ну только в общих чертах. Может кто подскажет литературу по этим вопросам.

okshef 18-06-2014 20:51 2365867

Редактирование меню загрузки операционных систем, или куда пропал boot.ini

Если не разберетесь, сделайте 2 файла, получение которых описано после слов Внимание - обязательно к исполнению! в шапке темы Вопросы загрузки Windows 7 (восстановление, создание двойной загрузки и т.д.).

masyaka 19-06-2014 08:57 2366031

Ответа на свой вопрос так я и не нашел. Вот например кусочек из BCD в ОС Win7_default
Код:

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description            Windows 7
locale                  ru-RU
inherit                {bootloadersettings}
recoverysequence        {71c424c9-f622-11e3-999c-9de20b270f8f}
recoveryenabled        Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {71c424c7-f622-11e3-999c-9de20b270f8f}
nx                      OptIn

я в нем вижу osdevice partition=C:, но как BOOTMGR определяет что раздел С находится именно на HDD3, если я загружу другую ОС Win7 то в BCD
будет также написано osdevice partition=C: но это будет раздел уже на диске HDD2.

Еще вопрос
Цитата:

device – показывает раздел, на котором расположены файлы загрузки (это может быть операционная система или папка BOOT);
osdevice – показывает раздел, на котором расположены системные файлы операционной системы. Обычно, значения параметров device и osdevice равны;
что-то я не совсем понимаю что значит файлы загрузки это файл bootmgr и папка boot с ее содержимым, если так то эти файлы расположены же на другом разделе на разделе D, почему в данном случае device и osdevice совпадают?

Прикладываю файлы. Скрин сделан в ОС Win7, которая грузится по умолчанию.

Раздел С - установлена Win7 (была установлена последней, грузится по умолчанию, вторая в меню загрузки сверху).
Раздел D - установлена WinXP (была установлена самой первой, данный раздел как раз является активным)
Раздел E - установлена Win7 (была установлена второй, третья в меню загрузки сверху).

okshef 19-06-2014 20:50 2366283

Цитата:

Цитата okshef
сделайте 2 файла »

где bcdcfg.txt? По кускам не разобраться.

masyaka 20-06-2014 06:02 2366385

Вложений: 3
Я думал что я его прикрепил к сообщению. Извиняюсь.

okshef 20-06-2014 08:09 2366405

masyaka, загрузитесь в Windows 7, в командной строке с правами администратора выполните:
Код:

bcdedit /set {default} description "Win 7 SS-HDD2"
C остальными записями, думаю, разберетесь. Multiboot вам в помощь: Редактирование записи любой операционной системы в диспетчере загрузки
Будут еще вопросы по теме - спрашивайте

masyaka 20-06-2014 10:06 2366440

Ой голова моя...okshef прочитал ваше последнее сообщение и понял что я не совсем правильно изложил свой вопрос.

1. Начнем с меню загрузки
На самом деле оно вот такое
Код:

Предшествующая версия Windows
Windows 7
Windows 7

в меню нет надписей SS-HDD3 PS-HDD2. Это я просто подписал чтобы обозначить какой пункт меню загрузки какой ОС Win7 и какому HDD соответствует.
2. Далее я попробовал смоделировать такую ситуацию. Два HDD на которых установлены одинаковые ОС Win7 я меняю местами (то есть если делать такое на реальном оборудовании то я переключаю HDD2 в тот контроллер куда был подключен HDD3, а HDD3 в тот контроллер куда был подключен HDD2). Таким образом я проверял предположение что после переключения HDD по второму пункту меню загрузки сверху я загружу ОС установленную на HDD2, а не ОС установленную на HDD3, как это было до переключения. Я предположил что после того как я выбираю второй пункт меню загрузки, BOOTMGR определяет что нужно загрузить ОС с HDD3 который подключен ко второму контроллеру, и если я подключу другой HDD к этому контроллеру с такой же ОС, то по второму сверху пункту меню загрузки загрузится ОС уже с этого подключенного HDD. Предположение оказалось неверным потому что после переключения по второму пункту меню загрузки сверху все равно грузится ОС с HDD3. И задача моя заключается не в том чтобы сделать так что после переключения по умолчанию будет грузится ОС Win 7 установленная на HDD2, а не Win 7 установленная на HDD3. Я хотел понять (может быть в общих чертах) как BOOTMGR определяет с какого HDD загрузить ОС для соответствующего пункта меню загрузки, как BOOTMGR определяет что для второго сверху пункта меню загрузки нужно загрузить ОС Win7 которая находится на HDD3 и не важно куда подключен это HDD3 ко второму контроллеру или к первому, на основе какой информации BOOTMGR это определяет.

okshef а можете еще прокомментировать вот этот вопрос
Цитата:

Еще вопрос
Цитата:
device – показывает раздел, на котором расположены файлы загрузки (это может быть операционная система или папка BOOT);
osdevice – показывает раздел, на котором расположены системные файлы операционной системы. Обычно, значения параметров device и osdevice равны;
что-то я не совсем понимаю что значит файлы загрузки это файл bootmgr и папка boot с ее содержимым, если так то эти файлы расположены же на другом разделе на разделе D, почему в данном случае device и osdevice совпадают?

okshef 22-06-2014 19:15 2367237

masyaka, извините за задержку с ответом, думал, кто-то подхватит за это время... На самом деле информации о назначении этих двух параметров крайне мало, а точнее - вообще, практически, нет. Могу только предположить, что параметр device указывает на физическое устройство, на котором системе загрузки следует искать средства загрузки.
Например, в BCD в разделе BOOTMGR присутствует только параметр device, указывающий на расположение файла bootmgr и папки BOOT c файлом bcd, фактически являющимся разделом реестра, который подключается раньше всех.
Также параметра osdevice нет в разделе NTLDR, который отвечает за загрузку Win XP или в разделах, отвечающих за загрузку среды восстановления.
В каждом разделе, кроме bootmgr, есть параметр path, указывающий на конкретную папку с файлами загрузки.
И только тогда, когда нужно загрузить ОС типа Vista - Win 8 разделах загрузки операционных систем появляется параметр osdevice. Видимо, его назначение - дать указание средствам загрузки на то, что на разделе или устройстве (типа VHD, например), указанном в параметре device, находится операционная система. Отсюда равенство этих параметров.

Вот так я это себе представляю.

По поводу смены жестких дисков. Неудивительно, что порядок загрузки не изменился. Удивительно, что вообще что-то загрузилось.


Время: 18:42.

Время: 18:42.
© OSzone.net 2001-