У меня двойная загрузка Windows и Ubuntu. Когда я включаю машину, BIOS выполняет POST, и после этого запускается загрузчик.
Я хочу понять, как BIOS выбирает, какой загрузчик запустить. Я хочу знать, как происходит процесс между BIOS и загрузчиком на компьютере с двойной загрузкой.
В прошивке BIOS на самом деле не выбран загрузчик. Он загружает код из сектора 0 диска и выполняет его. Что бы там ни было, оно выполнит. Надеюсь, что это загрузчик (или что-то, что загружает загрузчик), но это не обязательно. Раньше у вас были игры на дискетах, которые просто загружались и запускались без ОС - теперь они называются "загрузчиками".
UEFI прошивка на самом деле понимает разделы и файловые системы, и сканирует диски на наличие системного раздела UEFI. Так как это файловая система, здесь можно разместить несколько системных загрузчиков. Микропрограмма UEFI должна предоставлять меню или другой способ выбора системного загрузчика.
Многие системы UEFI загружаются в "Legacy mode" - где UEFI загружает "Compatibility Service Module" - что-то, что делает его похожим на BIOS - и на самом деле работает как BIOS.
GRUB - это обычный системный загрузчик с открытым исходным кодом, который может загружать либо Linux, либо "chainload" (дать управление) системному загрузчику Windows (обычно winload.exe в папке Boot раздела Windows). GRUB - это то, что дает вам возможность принимать решения. GRUB может читать конфигурационные файлы и принимать из них свой выбор по умолчанию.
Читайте это, если вам нужны обильные, кровавые подробности.
Эта диаграмма показывает, как управление передаётся от прошивки (BIOS или UEFI) к системному загрузчику и от системного загрузчика к операционной системе в Ubuntu.
Если операционные системы были установлены в разных режимах (BIOS и UEFI), то двойная загрузка Windows и Ubuntu с grub не может работать. На некоторых компьютерах с предустановленной ОС Windows есть возможность загрузить Windows с помощью утилиты настройки UEFI.
Примечание: Используйте эту процедуру только для преобразования установки Ubuntu в режиме UEFI для загрузки в BIOS/CSM/legacy mode. Такое преобразование может понадобиться, если некоторая аппаратура работает некорректно в режиме UEFI. (Распространенным источником проблем являются видеокарты.) Преобразование в загрузку в BIOS/CSM/legacy mode во время загрузки Windows в режиме UEFI может сделать процесс загрузки более неудобным -- для переключения между ОС нужно использовать встроенный в компьютер менеджер загрузки, а у некоторых компьютеров есть настолько плохие менеджеры загрузки, что это может оказаться невозможным.
sudo parted -l
), используйте GParted редактор разделов для создания раздела BIOS-Boot (1 МБ, неформатированная файловая система, флаг bios_grub) в начале диска. MBR2GPT.exe - это утилита командной строки, которая находится в папке System32 в Windows 10. С ее помощью можно эффективно и неразрушающе преобразовывать ОС Windows 10 из MBR (для Legacy BIOS) в стиль разделов GPT (для UEFI), не изменяя/удаляя никаких данных на диске и не производя чистую установку Windows 10.
Ссылки:
В старом режиме (загрузка BIOS, а не UEFI) BIOS управляет порядком дисков. Когда-то это управлялось кабелями; но изменение настроек BIOS происходит быстрее, чем открытие коробки и замена кабелей.
BIOS загружает (в память) первый сектор (512 байт диска, называемый MBR или главная загрузочная запись) первого диска (или порядок дисков, управляемый BIOS), а затем передает управление (CPU) этому 'загрузчику'. Таким образом, BIOS завершил свою работу и запустил код в первом секторе.