rEFInd (Русский)
Ссылки по теме
rEFInd - это менеджер загрузки для UEFI. Является форком более неподдерживаемого rEFIt и исправляет многие проблемы, связанные с UEFI загрузкой на не-Mac системах. Он является платформонезависимым и облегчает загрузку нескольких ОС.
Contents
Установка
Установите refind-efi из официальных репозиториев.
Настройка с помощью скрипта
Пакет rEFInd содержит скрипт /usr/bin/refind-install
, который упрощает процесс настройки rEFInd в качестве вашей загрузочной EFI записи по умолчанию. У скрипта есть несколько вариаций для обработки различных установок и реализаций UEFI, но для большинства систем подойдёт обычная команда
# refind-install
Он попытается найти и смонтировать ваш ESP раздел, скопировать файлы rEFInd'а в /EFI/refind/
на ESP и добавить rEFInd как загрузочную EFI запись по умолчанию с помощью UEFI#efibootmgr. Вот другой вариант этой команды (установка rEFInd в расположение загрузочной записи по умолчанию /EFI/BOOT/BOOT*.EFI
), который должен работать на самых разнообразных системах:
# refind-install --usedefault /dev/sdXY --alldrivers
Где /dev/sdXY - это ваш раздел ESP.
Для разъяснения каждой опции можете прочитать комментарии в установочном скрипте.
После установки файлов rEFInd'а на ESP, проверьте, что rEFInd создал refind_linux.conf
, содержащий необходимые параметры ядра (например, root=
) в той же директории, где находится ваше ядро. Если он не создал этот файл, вам необходимо будет установить #Передача параметров ядру вручную иначе скорее всего вы получите панику ядра при следующей загрузке.
По умолчанию rEFInd будет сканировать все ваши носители (для которых у него есть драйвера) и добавит загрузочную запись для каждого EFI загрузчика, что он найдёт, то есть он должен добавить и ваше ядро (так как в Arch используется EFISTUB по умолчанию). Поэтому на данный момент у вас уже может быть загружаемая система.
Настройка вручную
Если у вас не работает скрипт refind-install
, rEFInd можно установить вручную. В этом примере предполагается, что ваш ESP примонтирован в /boot/efi
и мы будем размещать файлы rEFInd'а в /boot/efi/EFI/refind
. Оба эти пути можно менять в зависимости от вашей ситуации.
Сперва скопируйте исполняемый файл на ESP:
# cp /usr/share/refind/refind_x64.efi /boot/efi/EFI/refind/
Затем используйте UEFI#efibootmgr, чтобы создать загрузочную запись в UEFI NVRAM (замените X и Y на соответствующий номер вашего носителя и раздела, где расположен ESP). Если вы устанавливаете rEFInd в расположение UEFI загрузчика по умолчанию /EFI/BOOT/BOOTX64.EFI
, возможно, вы можете пропустить данный шаг.
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L "rEFInd Boot Manager"
С этого момента вы сможете загрузиться в rEFInd, но он пока не сможет загружать ваше ядро. Если ваше ядро расположено не на ESP, rEFInd может смонтировать ваши разделы, чтобы найти его, при условии что у него есть нужные драйвера:
# mkdir /boot/efi/EFI/refind/drivers # cp /usr/share/refind/drivers_x64/myrootfs_x64.efi /boot/efi/EFI/refind/drivers
Теперь у rEFInd есть загрузочная запись с вашим ядром, но он не будет передавать необходимые параметры ядра. Следуйте инструкциям #Передача параметров ядру. Теперь вы можете загружать ваше ядро с помощью rEFInd. Если же вы всё ещё не можете загрузиться или вы хотите поиграться с настройками rEFInd'а, многие опции можно менять в конфигурационном файле:
# cp /usr/share/refind/refind.conf-sample /boot/efi/EFI/refind/refind.conf
Пример настройкм подробно прокомментирован и не требует разъяснений.
Если вы не используете textonly
в конфигурационном файле, вы должны скопировать иконки для rEFInd'а, чтобы избавиться от уродливых заглушек:
# cp -r /usr/share/refind/icons /boot/efi/EFI/refind/
Также вы можете попробовать разнообразные прилагающиеся шрифты, скопировав их и прописав font myfont.png
в refind.conf
:
# cp -r /usr/share/refind/fonts /boot/efi/EFI/refind/
Передача параметров ядру
Существует два метода для установки параметров ядра, которые rEFInd передаст ядру.
Для ядер, автоматически обнаруженных rEFInd'ом
Если rEFInd автоматически обнаружил ваше ядро, вы можете положить файл refind_linux.conf
, содержащий параметры ядра в ту же директорию, где находится ядро. В качестве шаблона вы можете взять /usr/share/refind/refind_linux.conf-sample
. Первой незакомментированной строкой файла refind_linux.conf
и будет параметры ядра по умолчанию. Остальные строки будут задавать параметры, которые вы сможете выбрать в подменю с помощью +
, F2
или Insert
.
Также вы можете попробовать:
# refind-mkrlconf
Эта команда попытается найти ваше ядро в /boot
и автоматически сгенерирует refind_linux.conf
. Скрипт установит только самые базовые параметры ядра, поэтому лучше проверьте, что созданный файл корректен.
Если вы не зададите параметр initrd=
, rEFInd автоматически добавит его, увидя стандартное название файлов RAM disk в директории с ядром. Если вам нужно несколько initrd=
параметров (например для Микрокода), вы должны задать их вручную в файле refind_linux.conf
.
Ручные загрузочные блоки
Если ваше ядро не обнаружилось автоматически, или же вы просто хотите получить больше контроля над опциями для меню загрузки, вы можете вручную создать загрузочные записи, используя блоки в файле refind.conf
. Убедитесь, что scanfor
содержит manual
, иначе эти записи не появятся в меню rEFInd'а. Параметры ядра передаются с помощью ключевого слова options
. rEFInd добавит параметр initrd=
, используя файл, заданный ключевым словом initrd
в блоке. Если вам нужны дополнительные initrd (например, для микрокода), вы можете задать их в options
(а тот, который задан ключевым словом initrd
, будет добавлен в конце).
/boot/efi/EFI/refind/refind.conf
... menuentry "Arch Linux" { icon /EFI/refind/icons/os_arch.png volume Boot loader /boot/vmlinuz-linux initrd /boot/initramfs-linux.img options "root=PARTUUID=XXXXXXXX rootfstype=XXXX rw add_efi_memmap" submenuentry "Boot using fallback initramfs" { initrd /boot/initramfs-linux-fallback.img } }
Возможно, вам понадобится изменить volume
на соответствующий либо метке тома файловой сисьтемы, либо названию раздела, либо UUID раздела, либо же номеру раздела (например, 0:
), в котором находится образ ядра. Смотрите Ext3#Assigning a label в качестве примера назначения метки тома.
Установка rEFInd при установленном UEFI Windows
rEFInd совместим с системным разделом EFI, созданным при установке UEFI Windows, поэтому нет необходимости создавать или форматировать другой FAT32 раздел, если вы устанавливаете Arch рядом с Windows. Просто смонтируйте Windows'овый ESP и установите rEFInd как обычно. По умолчанию, функция автообнаружения rEFInd'а должна распознать любые существующие Windows/recovery загрузчики.
Обновление rEFInd
Pacman обновляет rEFInd файлы в /usr/share/refind
, но не копирует эти новые файлы на ESP за вас. Если при установке rEFInd вы использовали refind-install
, вы можете выполнить эту команду заново, чтобы скопировались новые файлы. Новый конфигурационный файл скопируется как refind.conf-sample
, так что вы сможете интегрировать изменения в ваш конфигурационный файл, воспользовавшись утилитой diff. Если вы использовали ручную установку rEFInd, вам нужно будет скопировать новые файлы самостоятельно.
Автоматизация с помощью Systemd
Чтобы автоматизировать данный процесс, вам понадобится .path файл для наблюдения за обновлениями rEFInd и .service файл для копирования новых файлов и обновления nvram.
/etc/systemd/system/refind_update.path
[Unit] Description=path monitor for rEFInd updates [Path] PathChanged=/usr/share/refind [Install] WantedBy=multi-user.target
/etc/systemd/system/refind_update.service
[Unit] Description=rEFInd boot manager update [Service] Type=oneshot ExecStart=/usr/bin/refind-install
Затем включите refind_update.path
.
Apple Маки
mactel-boot из AUR - это экспериментальная "благословительная" утилита для Linux. Если она не работает, используйте "благословление" изнутри OSX, чтобы установить rEFInd в качестве загрузочной записи по умолчанию. Предполагая, что ваш UEFISYS раздел смонтирован в /mnt/efi
, находясь в OSX выполните:
# bless --setBoot --folder /mnt/efi/EFI/refind --file /mnt/efi/EFI/refind/refind_x64.efi
VirtualBox
На данный момент VirtualBox умеет загружать только запись по умолчанию, расположенную в /EFI/BOOT/BOOT*.EFI
, поэтому refind-install
нужно как минимум использовать с опцией --usedefault
. Смотрите VirtualBox (Русский)#Установка в режиме EFI для дополнительной информации.
Утилиты
rEFInd поддерживает запуск некоторых сторонних утилит. Утилиты нужно устанавливать отдельно. Отредактируйте showtools
в refind.conf
, чтобы выбрать, какие будут отображаться.
/boot/efi/EFI/refind/refind.conf
... # Какие внешние не относящиеся к загрузчику утилиты будут показаны в строке с утилитами # и в каком порядке отображать их: # shell - EFI shell (требуется внешняя программа; смотрите документацию rEFInd # для подробностей) # memtest - программа memtest86, в EFI/tools, EFI/memtest86, # EFI/memtest, EFI/tools/memtest86 или EFI/tools/memtest # gptsync - утилита gptsync.efi (опасная) (требуется внешняя программа; # смотрите документацию rEFInd для подробностей) # gdisk - программа gdisk для управления разделами # apple_recovery - загружает раздел Apple Recovery HD, если такой есть # windows_recovery - загружает OEM утилиту восстановления Windows, если такая есть # (смотрите также опцию windows_recovery_files) # mok_tool - активирует возможность управления утилитой Machine Owner Key (MOK), # MokManager.efi, использующейся на Secure Boot системах # about - опция отображения "об этой программе" # exit - тег для выхода из rEFInd # shutdown - выключает компьютер (она ошибочно может приводить к перезагрузке # на многих UEFI системах) # reboot - тег для перезагрузки компьютера # firmware - тег для перезагрузки компьютера и входа в интерфейс прошивки # (игнорируется на старых компьютерах) # netboot - запускает утилиту ipxe.efi для сетевой (PXE) загрузки # По умолчанию включены shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,shutdown,reboot,firmware # showtools shell, memtest, netboot, about, reboot, firmware ...
UEFI shell
Смотрите UEFI shell.
Скопируйте shellx64.efi
в корень Системного Раздела EFI
Memtest86
Установите memtest86-efi из AUR и скопируйте его в tools/
.
# cp /usr/share/memtest86-efi/bootx64.efi /boot/efi/EFI/tools/memtest86.efi
iPXE
refind-efi содержит бинарники iPXE UEFI, вам просто нужно скопировать их в tools/
.
# cp /usr/share/refind/tools_x64/ipxe_discovery_x64.efi /boot/efi/EFI/tools/ipxe_discovery.efi # cp /usr/share/refind/tools_x64/ipxe_x64.efi /boot/efi/EFI/tools/ipxe.efi
Смотрите также
- The rEFInd Boot Manager by Roderick W. Smith.
-
/usr/share/refind/docs/README.txt