В режиме загрузки BIOS 32-битная --битная система x86 сначала начинает работать в 16-битном --битном режиме эмуляции, и ядру необходимо «переключиться» на 32-битный --битный режим. Система x86 с поддержкой 64 -бит также запускается в режиме эмуляции 16 -бит, но может выбрать переход либо в 32 -бит, либо в полный 64 -бит.
С другой стороны, UEFI на x86 может быть либо 64 -бит (x64 ), либо 32 -бит (ia32 ). Некоторые старые компьютеры Mac с архитектурой x86 и довольно много мини-ноутбуков реализуют 32-разрядный -бит UEFI в системе, которая в остальном поддерживает 64-разрядный -бит. Для поддержки этих систем существует возможность либо загрузить 32-битное -ядро, чтобы оставаться в 32-битном -режиме, либо загрузить 64-битное ядро -и «перейти» на 64-битное -битное ядро. битовый режим.
Но я не слышал о какой-либо поддержке запуска в родном 64 -битном режиме UEFI и "сдвига вниз" до 32 -битного режима оттуда для ядра. Так что я бы подумал, что это невозможно. Тем не менее, я был бы рад оказаться здесь неправым.
Помните, что 64 -битное ядро x86 обычно полностью способно запускать 32 -битные двоичные файлы x86, если установлены 32 -битные версии всех необходимых библиотек. Таким образом, в зависимости от того, для чего вам нужна поддержка 32 -бит, вам может не обязательно потребоваться полная установка 32 -бит ОС.
Возможно, вам просто нужно запустить dpkg --add-architecture i386
на вашей 64-битной -установке Ubuntu, а затем добавить 32-битные -версии любых библиотек, необходимых для 32-битного -программного обеспечения, которое вам нужно запустить, например. apt install
. Это известно как базовая установка Multiarch в Debian, Ubuntu и связанных с ними дистрибутивах.
Если вам нужна возможность сборки 32-битного -программного обеспечения из исходного кода, вы можете ознакомиться с Multiarch Cross -спецификацией построения .