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

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

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

27
задан 29 November 2017 в 22:43

3 ответа

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

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

Многие системы UEFI загружаются в "Legacy mode" - где UEFI загружает "Compatibility Service Module" - что-то, что делает его похожим на BIOS - и на самом деле работает как BIOS.

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

Читайте это, если вам нужны обильные, кровавые подробности.

42
ответ дан 29 November 2017 в 22:43

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

enter image description here
BIOS против UEFI

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


Преобразование Ubuntu в режим UEFI

  1. Запустите Boot-Repair и выберите Дополнительные опции -> Расположение GRUB.
  2. Если вы не видите опцию Раздельный раздел /boot/efi, это означает, что на вашем компьютере нет раздела UEFI.
  3. Если вы видите опцию Separate /boot/efi partition, поставьте галочку слева от нее.
  4. Нажмите кнопку Apply в правом нижнем углу.

Converting Ubuntu into UEFI mode

  1. Настройте BIOS так, чтобы он загружал жесткий диск в режиме UEFI. Способ настройки этой настройки зависит от конкретной модели компьютера, но обычно эта настройка находится в настройках приоритета загрузки на вкладке Boot утилиты настройки BIOS/UEFI.

Преобразование Ubuntu в BIOS mode

Примечание: Используйте эту процедуру только для преобразования установки Ubuntu в режиме UEFI для загрузки в BIOS/CSM/legacy mode. Такое преобразование может понадобиться, если некоторая аппаратура работает некорректно в режиме UEFI. (Распространенным источником проблем являются видеокарты.) Преобразование в загрузку в BIOS/CSM/legacy mode во время загрузки Windows в режиме UEFI может сделать процесс загрузки более неудобным -- для переключения между ОС нужно использовать встроенный в компьютер менеджер загрузки, а у некоторых компьютеров есть настолько плохие менеджеры загрузки, что это может оказаться невозможным.

  • Если Ubuntu установлена на GPT диск (проверить это можно с помощью команды sudo parted -l), используйте GParted редактор разделов для создания раздела BIOS-Boot (1 МБ, неформатированная файловая система, флаг bios_grub) в начале диска.
  • Запустите Boot-Repair и выберите Advanced options -> GRUB location tab.
  • Снимите флажок с опции Separate /boot/efi partition

Uncheck the Separate /boot/efi partition option

  • Нажмите кнопку Apply в правом нижнем углу.
  • Настройте BIOS так, чтобы он загружал жесткий диск в режиме Legacy mode (Наследие). Обычно эта настройка находится на вкладке BootBoot order раздела BIOS.

Преобразование Windows в GPT-режим

MBR2GPT.exe - это утилита командной строки, которая находится в папке System32 в Windows 10. С ее помощью можно эффективно и неразрушающе преобразовывать ОС Windows 10 из MBR (для Legacy BIOS) в стиль разделов GPT (для UEFI), не изменяя/удаляя никаких данных на диске и не производя чистую установку Windows 10.


Ссылки:

15
ответ дан 29 November 2017 в 22:43

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

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

7
ответ дан 29 November 2017 в 22:43

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

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