Установка 32-битной версии ROSA в UEFI
Официально 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.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.