Установка 32-битной версии ROSA в UEFI

Материал из Rosalab Wiki
Перейти к: навигация, поиск
UEFI logo.svg

Официально 32-битная версия ROSA не поддерживает установку в UEFI-режиме, и тому есть серьёзные причины. Но, как известно, если очень хочется, то можно. В данной статье мы расскажем, как это сделать и каких проблем ожидать.

Основные препятствия

С чем же связано отсутствие UEFI-поддержки? Главных причин три:

  • В отличие от 64-битных операционных систем, 64-битные UEFI не поддерживают запуск 32-битных EFI-приложений.
  • Практически все UEFI-платформы, присутствующие на рынке, — 64-битные. 32-битных очень мало (в основном, старые Apple Mac и некоторые Atom-ные системы).
  • Если битность загруженного ядра не совпадает с битностью UEFI, невозможно обращаться к функциям прошивки (в частности, добавлять свой загрузчик).

Тем не менее, 64-битный EFI-загрузчик может загружать и 32-битное ядро, поэтому такая установка в принципе возможна.

Процедура установки

Здесь мы предполагаем, что у вас обычная 64-битная UEFI-система. Для 32-битного UEFI процедура сильно отличается. Статья об установке на такие системы будет написана, если появятся соответствующие запросы от пользователей.

Установка в качестве дополнительной системы

Проще всего, если вы хотите поставить 32-битную ROSA в паре с 64-битной: в этом случае UEFI-загрузчик будет управляться 64-битной версией дистрибутива.

Процедура установки:

  • Сначала устанавливаем 64-битную версию; перезагружаемся.
  • Загружаем и записываем на флэшку или DVD-диск один из последних автотестированных образов 32-битного дистрибутива (в официальном релизе R5 имеются определённые недоработки, которые для данного сценария будут критичными).
  • Загружаемся в Legacy-режиме и начинаем установку. Важные особенности:
    • Не забываем подключить EFI-раздел в /boot/efi. Поскольку мы в Legacy-режиме, контроля этого шага со стороны инсталлятора не будет.
    • Если у вас отдельный /boot-раздел, не устанавливайте в него одновременно 32-битную и 64-битную версии ROSA: файлы ядер и initrd имеют в этих двух системах одинаковые имена, в результате они будут перезаписаны, и загружаться сможет только один из дистрибутивов.
    • Если у вас таблица разделов GPT (что настоятельно рекомендуется делать для UEFI), инсталлятор предупредит, что на этот диск невозможно будет установить Legacy-загрузчик. Это нормально, просто жмём «Далее» («Next»).
    • На этапе установки загрузчика нажимайте кнопку «Пропустить» («Skip»).
  • После завершения установки перезагружаемся, включаем UEFI-режим и загружаемся в 64-битную ROSA.
  • Открываем консоль, переходим командой su в режим суперпользователя и запускаем:
update-grub2
  • Теперь у нас в загрузочное меню Grub2 добавилась и 32-битная версия, можем перезагружаться в неё.

Меры предосторожности:

  • Находясь в 32-битной версии, никогда не выполняйте установку загрузчика. Если вы это сделаете, то 32-битный Grub2 может перезатереть собой имеющийся 64-битный загрузчик, и вы больше не загрузитесь. Придётся запускать Live-систему и проводить восстановление загрузчика.
  • После обновления ядра в 32-битной версии вам потребуется загрузиться в 64-битную и снова выполнить оттуда команду update-grub2. Собственно говоря, это требуется делать при любой мультисистемной установке и не является особенностью именно 32-битной версии, но напомнить нелишне.

Установка в качестве единственной системы

В этом случае установка и дальнейшее обслуживание несколько усложняются, но в целом отличаются не сильно. Основная сложность заключается в установке загрузчика, что невозможно сделать из 32-битного кода. Поэтому если у вас UEFI не поддерживает ручное создание пунктов загрузки, вам потребуется ещё и 64-битный дистрибутив. Если у вас имеется второй компьютер, можно будет перезаписать флэшку на нём. Если нет — запаситесь второй флэшкой и запишите 64-битную версию на неё заранее, поскольку этот дистрибутив понадобится в тот момент, когда свежеустановленная система ещё не загружается (то есть скачать и записать образ из неё не получится).

Процедура установки:

  • Как и в предыдущем сценарии, загружаем один из последних образов в Legacy-режиме.
  • Выполняем установку почти как обычно, со следующими отличиями:
    • Обязательно создать EFI-раздел и подключить его в /boot/efi. Поскольку мы в Legacy-режиме, контроля этого шага со стороны инсталлятора не будет.
    • Если у вас таблица разделов GPT (что настоятельно рекомендуется делать для UEFI), инсталлятор предупредит, что на этот диск невозможно будет установить Legacy-загрузчик. Это нормально, просто жмём «Далее» («Next»).
    • На этапе установки загрузчика нажимаем «Пропустить» («Skip»).
  • После завершения установки перезагружаемся, включаем UEFI и грузимся в Live-сессию 64-битного дистрибутива.
  • Открываем консоль, переходим командой su в режим суперпользователя и устанавливаем загрузчик нижеприведёнными командами. Здесь используются следующие обозначения:
    • /dev/sdXY — корневой раздел раздел 32-битной системы;
    • /dev/sdXZ — EFI-раздел (для команды efibootmgr имя диска и номер раздела задаются раздельно; скажем, если ваш EFI-раздел — /dev/sda3, то параметры будут выглядеть как -d /dev/sda -p 3).
mount /dev/sdXY /mnt
mount /dev/sdXZ /mnt/boot/efi
cp -R /boot/efi/* /mnt
cp /mnt/EFI/rosa/grub2-efi/grub.efi /mnt/EFI/rosa/grubx64.efi
efibootmgr -c -L rosa -l \\EFI\\rosa\\grubx64.efi -d /dev/sdX -p Z
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
update-grub2
exit
umount /mnt/{dev,proc,sys,boot/efi,}
sync
Если у вас отдельные разделы для других системных каталогов (таких как /usr или /var), то в вышеприведённом списке команд их тоже необходимо подмонтировать в соответствующие подкаталоги в /mnt.
  • Теперь можем перезагружаться в нашу 32-битную систему.
  • После загрузки необходимо зайти в консоль и, получив привилегии суперпользователя, снова выполнить команду
update-grub2
чтобы в загрузочное меню прописались своп-разделы для корректного восстановления системы из гибернации.

Работа с 32-битной системой:

  • Не рекомендуется устанавливать в систему пакет grub2-efi, поскольку он перезатрёт собой 64-битный загрузчик, и вы можете потерять возможность загружать систему.
  • Для переустановки или обновления загрузчика необходимо взять пакет grub2-efi из 64-битного репозитория, распаковать его и вручную скопировать файлы в /boot/efi по аналогии с тем, как это делалось в инструкции выше.
  • Если вы хотите использовать Secure Boot, то в вышеприведённой инструкции необходимо команде efibootmgr передавать имя загрузчика не grubx64.efi, а BOOTx64.efi. В дальнейшем потребуется также следить за обновлениями пакета shim и устанавливать его 64-битную версию вручную, аналогично пакету grub2-efi.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.