Я изучал, что во время процесса загрузки на первом этапе загрузчик в MBR загрузочного устройства просматривает таблицу разделов, чтобы найти загрузочный сектор активных разделов, и как только он находит активный раздел, он ищет загрузчик второй ступени (например, GRUB) и затем загружается в ОЗУ. И что загрузчик второго этапа находится в каталоге /boot.

Q1) Что делать, если в системе 2 разных операционных системы? Будет ли отображаться меню для выбора одной из этих операционных систем, когда загрузчик первой ступени ищет активные разделы?

Q2) Если две операционные системы в системе - это 2 разных дистрибутива Linux, то если оба дистрибутива будут иметь один и тот же загрузчик в своем каталоге /boot, на каком этапе появляется меню операционной системы для выбора пользователя на первом или втором этапе этап?

2 ответа2

2

Нет, активный раздел - это штука для DOS/Windows - это "загрузочный" флаг. Многие / большинство BIOS будут искать его, но на оборудовании, отличном от x86, он может не существовать или беспокоиться https://en.wikipedia.org/wiki/Boot_flag

После того, как загрузчик был найден BIOS (или его эквивалентом) - либо путем поиска флага, поиска в расположении по умолчанию и т.д. - тогда конфигурация загрузчика определит, какие операционные системы будут загружены, или отобразит меню и т.д. ,

То, как это происходит, зависит от загрузчика. Вернувшись в "старые времена" к двойной загрузке Windows NT 4 и Linux, мы записали lilo в раздел / , затем удалили первые 512 байт, используя dd в файл и поместили его туда, где находится Windows. загрузчик (ntldr) может увидеть его, а затем сделать запись в C:\boot.ini ссылаясь на него и изменив параметр загрузки по умолчанию на Linux. Конечно, каждое новое обновление ядра требовало перезаписи lilo и повторного извлечения этих 512 байт в файл ...

0

Большинство машин, купленных в прошлом году или два, по умолчанию будут использовать UEFI для загрузки системы, преимущество заключается в безопасной загрузке, улучшенных способах взаимодействия ОС с микропрограммой, удаленной аттестации, лучшей обработке шифрования HD и некоторых других вещах.

Прошивка UEFI может выбрать, что загружать несколькими способами.

В наиболее совместимом режиме микропрограмма будет искать на диске раздел GUID с типом раздела UUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B. (введите ef00 в fdisk). Этот раздел отформатирован как FAT32 (я не уверен, является ли это строгим требованием в стандарте, но я не знаю ни одной реальной прошивки, которая будет загружать что-либо еще, хотя coreboot может это сделать). В этом разделе прошивка будет запускаться /BOOT/EFI/BOOTX64.efi (для x64). Это загрузчик и может делать все, что захочет. Фактически ядро linux является исполняемым файлом EFI, и при запуске оно загружает linux!

Другой способ - чтение загрузочной записи из EFI NVRAM. Это как большинство загрузчиков (например, Windows Loader или Grub-EFI). Это добавит запись в меню загрузки, относящееся к микропрограммному обеспечению (обычно при загрузке к ней обращается что-то вроде F12), и эта запись будет указывать на конкретный исполняемый файл в системном разделе efi. Таким образом, даже если кто-то ударит BOOTx64.efi, вы все равно сможете легко загрузить свою систему. Этот метод может быть довольно ошибочным на некоторых машинах. Например, предполагается, что NVRAM запускает сборку мусора, чтобы освободить пространство после удаления переменной, но некоторые старые прошивки этого не делают и будут просто зависать, если вы напишите слишком много переменных. Моя прошивка Lenovo X220 вообще не загружается с записей NVRAM и может загружать только bootx64.efi. Любая машина, изготовленная за последние 4 года, должна быть в порядке.

Большинство дистрибутивов Linux устанавливают grub (или любой используемый ими загрузчик) в некоторый каталог, например /fedora /... на ESP (системный раздел efi), поэтому вы можете выбрать любую понравившуюся копию в меню загрузки EFI. Если у вас установлен os-prober для данного linux, то его версия grub, вероятно, сможет найти загрузчик Windows и запустить его для вас из меню grub.

Один из быстрых способов определить, загружаетесь ли вы с EFI, - это просто загрузить Windows 10 и посмотреть, является ли отображаемый логотип логотипом Windows или логотипом производителя вашей машины. Если это не логотип Windows, вы находитесь в режиме EFI.

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