В системе с двойной загрузкой, как BIOS выбирает, какой загрузчик запускать?

У меня есть двойная загрузка Windows и Ubuntu. Когда я включаю машину, BIOS выполняет POST, и после этого запускается загрузчик.

Я хочу понять, как BIOS выбирает, какой загрузчик запускать. Я хочу знать, как происходит процесс между BIOS и загрузчиком на компьютере с двойной загрузкой.

21
задан 29 November 2017 в 23:43

6 ответов

На этой диаграмме показано, как управление переходит от прошивки (BIOS или UEFI) к загрузчику и от загрузчика к операционной системе в Ubuntu.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BIOS и UEFI

Если ОС были установлены в разных режимах (BIOS и UEFI), двойная загрузка Windows и Ubuntu не может работать.

Просмотрите https://help.ubuntu.com/community/UEFI в разделе «Преобразование Ubuntu в режим UEFI». Загрузочный загрузчик grub также может быть преобразован в противоположном направлении от UEFI к BIOS. Linux может загрузиться с диска GPT в режиме BIOS. См. Этот ответ: Конвертировать из EFI в BIOS boot
10
ответ дан 18 July 2018 в 02:22

Прошивка BIOS на самом деле не выбирает загрузчик. Он загружает код из сектора 0 накопителя и выполняет его. Что бы там ни было, это будет выполнено. Надеюсь, это загрузчик (или что-то, что загружает загрузчик), но это не обязательно.

Прошивка UEFI действительно понимает разделы и файловые системы и сканирует диски для UEFI Тип системного раздела. Поскольку это файловая система, здесь можно разместить несколько загрузчиков. Прошивка UEFI должна предоставить меню или другой способ для выбора того, какой загрузчик используется.

Многие системы UEFI загружаются в «режиме Legacy» - где UEFI загружает «Сервисный модуль совместимости» - что-то что делает его похожим на BIOS - и на самом деле работает как BIOS.

GRUB - это общий загрузчик с открытым исходным кодом, который может либо загружать Linux, либо «chainload» (дать управление) загрузчику Windows (обычно winload .exe в папке Boot в разделе Windows). GRUB - это то, что дает вам возможность принять решение. GRUB может читать файлы конфигурации и выбирать из них по умолчанию.

Прочтите это, если вы хотите обильные детали gory.

36
ответ дан 18 July 2018 в 02:22

В устаревшем режиме (загрузка BIOS, а не UEFI) BIOS управляет порядком привода. Когда-то это управлялось кабелями; но изменение настройки BIOS приводит к открытию окна & amp; изменение кабелей.

BIOS загружает (в память) первый сектор (512 байт диска с именем MBR или главную загрузочную запись) первого диска (или порядок диска, управляемый BIOS), а затем передает (CPU) загрузчик. Таким образом, BIOS завершил свою работу, а код в первом секторе работает.

7
ответ дан 18 July 2018 в 02:22

На этой диаграмме показано, как управление переходит от прошивки (BIOS или UEFI) к загрузчику и от загрузчика к операционной системе в Ubuntu.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BIOS и UEFI

Если ОС были установлены в разных режимах (BIOS и UEFI), двойная загрузка Windows и Ubuntu не может работать.

Просмотрите https://help.ubuntu.com/community/UEFI в разделе «Преобразование Ubuntu в режим UEFI». Загрузочный загрузчик grub также может быть преобразован в противоположном направлении от UEFI к BIOS. Linux может загрузиться с диска GPT в режиме BIOS. См. Этот ответ: Конвертировать из EFI в BIOS boot
10
ответ дан 24 July 2018 в 17:32

Прошивка BIOS на самом деле не выбирает загрузчик. Он загружает код из сектора 0 накопителя и выполняет его. Что бы там ни было, это будет выполнено. Надеюсь, это загрузчик (или что-то, что загружает загрузчик), но это не обязательно.

Прошивка UEFI действительно понимает разделы и файловые системы и сканирует диски для UEFI Тип системного раздела. Поскольку это файловая система, здесь можно разместить несколько загрузчиков. Прошивка UEFI должна предоставить меню или другой способ для выбора того, какой загрузчик используется.

Многие системы UEFI загружаются в «режиме Legacy» - где UEFI загружает «Сервисный модуль совместимости» - что-то что делает его похожим на BIOS - и на самом деле работает как BIOS.

GRUB - это общий загрузчик с открытым исходным кодом, который может либо загружать Linux, либо «chainload» (дать управление) загрузчику Windows (обычно winload .exe в папке Boot в разделе Windows). GRUB - это то, что дает вам возможность принять решение. GRUB может читать файлы конфигурации и выбирать из них по умолчанию.

Прочтите это, если вы хотите обильные детали gory.

36
ответ дан 24 July 2018 в 17:32
  • 1
    Это одна из причин, по которой на Ubuntu вам нужно sudo или root, чтобы записать что-либо на диск с несмонтированным диском; если программа или вредоносный пользователь записывают вредоносное ПО в загрузочный раздел ... – wizzwizz4 30 November 2017 в 11:18
  • 2
    Благодаря LawrenceC ваше объяснение делает мое понимание более ясным. – Prashant Singh 1 December 2017 в 10:51

В устаревшем режиме (загрузка BIOS, а не UEFI) BIOS управляет порядком привода. Когда-то это управлялось кабелями; но изменение настройки BIOS приводит к открытию окна & amp; изменение кабелей.

BIOS загружает (в память) первый сектор (512 байт диска с именем MBR или главную загрузочную запись) первого диска (или порядок диска, управляемый BIOS), а затем передает (CPU) загрузчик. Таким образом, BIOS завершил свою работу, а код в первом секторе работает.

7
ответ дан 24 July 2018 в 17:32
  • 1
    SORRY sir, но я немного запутан, так как bios дает контроль над загрузчиком, а у окна и linux есть другой загрузчик, с помощью которого загрузчик получает контроль. Просматривает процесс BIOS, чтобы выбрать загрузчик – Prashant Singh 29 November 2017 в 14:47
  • 2
    В вашей системе может быть только один загрузчик на диск (и только один из них активен). Как правило, если у вас есть две операционные системы в вашей системе, второй установленный владелец загрузочного загрузчика, поскольку он написал свой собственный код в MBR. Вот почему GNU / Linux (Ubuntu) использует GRUB; его многоступенчатая система (шаг 1 - MBR, шаги 1.5 и 2 находятся в / boot), в котором отображается меню, в котором запрашивается операционная система, которую вы хотите загрузить / запустить (те, кого Grub знает в любом случае, плюс любой ISO, к нему добавили). Если у вас два дисковода; вы можете иметь загрузчик на каждом диске, но BIOS определит, что будет работать. – guiverc 29 November 2017 в 15:13
  • 3
    Так что, если у меня есть 2 операционной системы на моем компьютере, тогда необходимо, чтобы GRUB выложил меню, в котором спрашивали, какие ОС я хочу загрузить, почему загрузчик Windows не установил это меню, поскольку у меня есть оба ОС на моем компьютере. – Prashant Singh 29 November 2017 в 15:28
  • 4
    windows имеет загрузчик тоже (до vista в любом случае); но это не так умно, как гриб. версия windoze не ищет не-msft-продукты (и не может читать ext / reiserfs / xfs / zfs / btrfs / ...), поэтому вам нужно добавить * nix самостоятельно; и следующее обновление ..... версия windoze не стоит использовать, поскольку grub намного лучше. Если windoze был на одном диске, Ubuntu - с другой, вы могли бы изменить загрузку BIOS; но grub быстрее / проще. (если доволен моим ответом, примите его, чтобы закрыть вопрос) – guiverc 29 November 2017 в 15:33
  • 5
    @Prashant Singh: Самая фундаментальная причина, почему загрузчик Windows этого не делает (или не вернулся, когда я немного знал о Windows), заключается в том, что MicroSoft не зарабатывает деньги, позволяя запускать другие операционные системы. – jamesqf 30 November 2017 в 07:44

Другие вопросы по тегам:

Похожие вопросы: