Аппаратное обеспечение (даже виртуальное оборудование) часто инициализируется микропрограммным обеспечением (BIOS, код инициализации аппаратного обеспечения до EFI в микропрограмме или встроенное ПО, встроенное в само устройство). Это особенно верно в отношении видеооборудования и некоторых других устройств, встроенных в материнские платы. Кроме того, EFI предоставляет драйвер кадрового буфера для доступа к видеоустройствам, чего нет в BIOS. Это может повлиять на то, как Linux обращается к видеооборудованию.
В случае VirtualBox весь стек микропрограмм отличается для режимов BIOS и EFI. Это влияет на то, как драйверы Linux взаимодействуют с (виртуальным) видеооборудованием, потому что оно будет инициализироваться различными способами. FWIW, я запускаю Xorg -configure
чтобы создать новый файл /root/xorg.conf-sample
(или как он там называется), скопировать его в /etc/X11/xorg.conf
и настроить его для использования драйвера fbdev
. Гостевые драйверы VirtualBox также иногда теперь работают в VirtualBox, но это относительно недавно и работает не для всех гостевых ОС.
Нечто подобное может произойти и на реальном оборудовании, хотя на реальном оборудовании загрузка BIOS/CSM/ устаревшего режима обычно выполняется поверх EFI, поэтому между режимами загрузки может быть больше сходства, чем в VirtualBox. Тем не менее, могут быть различия между загрузками BIOS/CSM/ устаревшего режима и загрузками EFI/ UEFI. Поскольку первые исторически были более распространенными, последние создают в среднем больше проблем. Это особенно верно при использовании проприетарных видео драйверов; по какой-то причине ATI и Nvidia не спешат предоставлять поддержку EFI для своих проприетарных драйверов Linux. ИМХО, это просто еще одна причина, чтобы избегать этих водителей. (Я никогда не был их большим поклонником, поскольку они всегда создавали больше проблем, чем решали для моего использования.)
Есть и другие отличия BIOS-против-EFI после загрузки. В частности, EFI остается более доступным, чем BIOS, с так называемыми «сервисами времени выполнения». ОС может связываться с EFI для установки переменных NVRAM, использования драйвера кадрового буфера EFI и так далее. В настоящее время вы вряд ли будете использовать большинство этих функций (за исключением, возможно, драйвера кадрового буфера EFI), но они могут стать более важными в будущем. Одной из важных функций EFI является возможность устанавливать параметры загрузки с помощью утилиты Linux efibootmgr
. В большинстве дистрибутивов Linux этот инструмент прозрачно используется как часть установки GRUB, но вы можете использовать его вручную для изменения загрузчиков, для единовременной перезагрузки непосредственно в другую ОС или чего-то еще.