Загрузка ОС, MBR
Нашел статью про MBR: Здесь Так вот, функция MBR — «переход» в тот раздел жёсткого диска, с которого следует исполнять «дальнейший код» (непосредственно загрузчик ОС - GRUB или windows-загрузчик ?): 1) Произошла загрузка MBR в память:
* BIOS проводит начальную инициализацию оборудования («железа»)
* BIOS определяет, с какого устройства производить дальнейшую загрузку: дискета, флеш-накопитель, жёсткий диск и т. д. (выбор устройства зависит от версии и от настроек BIOS)
* BIOS считывает один сектор (512 байт), который находится по адресу: «цилиндр 0, головка 0, сектор 1», и помещает его в область памяти по адресу 0000:7c00
* BIOS проверяет, что этот сектор оканчивается сигнатурой 55ААh
* BIOS передаёт управление по адресу 0000:7c00 (то есть сектору MBR)
Выбор загрузочного раздела и проверка целостности MBR:
* MBR копирует себя с адреса 0000:7c00 на адрес 0000:0600 (освобождая место для будущей загрузки уже собственно загрузчика ОС)
* MBR просматривает по очереди все записи о разделах и ищет первую запись об «активном» (== «загрузочном») разделе (то есть ищет раздел, отмеченный как 80h)
* В случае успеха (раздел, помеченный как 80h — найден) MBR запоминает номер этого раздела
[если просмотрены все 4 записи и не найден раздел, помеченный как 80h, то вызывается INT 18h. Это возвращает управление обратно в BIOS, что может приводить либо к загрузке BASIC, либо к повторной попытке загрузить систему с диска, либо к перезагрузке компьютера — в зависимости от версии и реализации BIOS]
* MBR просматривает все оставшиеся записи и проверяет, что это единственный активный раздел (что больше разделов, помеченных 80h, на данном физическом диске не существует)
[если находятся другие разделы, помеченные 80h, то MBR выводит сообщение об ошибке (обычно это что-то типа «Invalid partition table»), после чего система зависает в бесконечном цикле, из которого можно выйти только перезагрузкой компьютера]
* MBR проверяет, что в данном поле для всех 4-х разделов нет иных значений, кроме «00h» и «80h»
[если находятся разделы, помеченные значением, отличным от 00h или 80h, то MBR выводит сообщение об ошибке («Invalid partition table»), система зависает, требуется перезагрузка компьютера]
На этом заканчивается проверка MBR и начинается подготовка к загрузке ОС:
* MBR считывает первый сектор логического диска, помеченного как «загрузочный» и помещает этот сектор по адресу 0000:7c00
Собственно вопросы:
- Если у меня несколько ОС на разных разделах, следовательно несколько загрузочных разделов, помеченных как 80h? (или пометка 80h относится к загрузочному разделу с системой «загрузка по умолчанию»?).
- С момента «MBR считывает первый сектор логического диска, помеченного как «загрузочный» и помещает этот сектор по адресу 0000:7c00» и «MBR передает управление по адресу 0000:7c00 (то есть загрузочному сектору выбранного логического раздела диска)» в память грузится Grub или загрузчик windows ? Но вначале при включении компьютера первое, что в вижу на жкране монитора - Grub.
Так как все происходит ? Заранее благодарен за ответы!