На днях решил поисследовать возможности uefi. Надо же осваивать новые технологии.
Поставил себе задачу загрузить на 64-битной UEFI 32-битный линукс. В результате исследований выяснил, что anaconda, инсталлятор RHEL и клонов виснет на финальных операциях в эмуляторах VirtualBOX и Qemu KVM в режиме uefi. Сразу после установки всех пакетов. Это касается RHEL7, CentOS7, Springdale Linux (PUIAS) 7. На физике оно конечно устанавливается и работает, но опять же на ноутбук оно влезло, а на некоторые сервера hp и aic оно "не шмогла".
Далее, отложил в сторонку Centos иже с ним, взялся за Slackware. В нём инсталлер совершенно дубовый, как раз то что надо. В результате установки на свет появился монстр: 64-битное ядро и 32-битное окружение. То есть условно говоря, с натяжкой, цель выполнена.
Какие выводы можно из этого сделать?
Первое: На дворе конец 2017-го года, производители железа уже с энтузиазмом смотрят в торону отказа от Legacy mode в своих прошивках, а в загрузчиках до сих пор есть довольно критические баги, относительно режима uefi. Баги есть и в инсталляторах.
Второе: Нет возможности сменить разрядность, то есть запустить 32-битное ядро после загрузки 64-битной uefi и наоборот. То есть технически такое возможно, но реализации этой функциональности как минимум на текущий момент не прослеживается.
Третье: Реализация EFI в эмуляторах "под себя". Работает, но отнюдь не всегда хорошо.
Четвёртое: В случае с BIOS мы получаем систему, в которой все устройства в любом случае надо пере-инициализировать, а в случае efi мы получаем систему, в которой запущена лишь часть устройств, но предполагается, что уже инициализированные устройства пере-инициализировать не нужно. Есть мнение, что в конце-концов мы придём к тому, что будем пере-инициализировать почти всё в любом случае. Однако, предположительно есть некоторые (сложные/скрытые) устройства, работают по-разному в разных режимах, например iME.