rEFInd (Русский) - ArchWiki

# rEFInd (Русский)

Ссылки по теме

- Процесс загрузки Arch
- Загрузчики
- Unified Extensible Firmware Interface (Русский)
- EFISTUB (Русский)

Состояние перевода: На этой странице представлен перевод статьи REFInd. Дата последней синхронизации: 2015-07-29. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

rEFInd - это менеджер загрузки для UEFI. Является форком более неподдерживаемого rEFIt и исправляет многие проблемы, связанные с UEFI загрузкой на не-Mac системах. Он является платформонезависимым и облегчает загрузку нескольких ОС.

Примечание: В этой статье под `$esp` будем подразумевать точку монтирования системного раздела EFI также называемого ESP.

## Установка

Установите refind-efi из официальных репозиториев.

### Настройка с помощью скрипта

Пакет rEFInd содержит скрипт `/usr/bin/refind-install`, который упрощает процесс настройки rEFInd в качестве вашей загрузочной EFI записи по умолчанию. У скрипта есть несколько вариаций для обработки различных установок и реализаций UEFI, но для большинства систем подойдёт обычная команда

    # refind-install

Он попытается найти и смонтировать ваш ESP раздел, скопировать файлы rEFInd'а в `/EFI/refind/` на ESP и добавить rEFInd как загрузочную EFI запись по умолчанию с помощью UEFI#efibootmgr.

Примечание: По умолчанию `refind-install` устанавливает только драйвер для вашей корневой файловой системы, если вы хотите установить дополнительные драйвера, перейдите к разделу #Драйвера файловых систем.

Вы также можете установить rEFInd в загрузочный путь по умолчанию/аварийный `/EFI/BOOT/BOOT*.EFI`. Это может пригодиться для загрузочных USB flash накопителей или для систем, у которых наблюдаются проблемы с изменениеми NVRAM при использовании утилиты efibootmgr:

    # refind-install --usedefault /dev/sdXY

Где /dev/sdXY - это ваш раздел ESP.

Для разъяснения каждой опции можете прочитать комментарии в установочном скрипте.

После установки файлов rEFInd'а на ESP, проверьте, что rEFInd создал `refind_linux.conf`, содержащий необходимые параметры ядра (например, `root=`) в той же директории, где находится ваше ядро. Если он не создал этот файл, вам необходимо будет установить #Передача параметров ядру вручную иначе скорее всего вы получите панику ядра при следующей загрузке.

По умолчанию rEFInd будет сканировать все ваши носители (для которых у него есть драйвера) и добавит загрузочную запись для каждого EFI загрузчика, что он найдёт, то есть он должен добавить и ваше ядро (так как в Arch используется EFISTUB по умолчанию). Поэтому на данный момент у вас уже может быть загружаемая система.

Совет: Хорошей идеей будет правка конфигурации по умолчанию в `/EFI/refind/refind.conf` на ESP, для того, чтобы убедиться, что опции по умолчанию у вас работают.

### Настройка вручную

Совет: rEFInd может загружать Linux различными способами. Смотрите The rEFInd Boot Manager: Methods of Booting Linux для обзора различных способов.
Примечание: Для 32-битных EFI замените x64 на ia32 в нижеследующих командах.

Если у вас не работает скрипт `refind-install`, rEFInd можно установить вручную.

Сперва скопируйте исполняемый файл на ESP:

    # cp /usr/share/refind/refind_x64.efi $esp/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 $esp/EFI/refind/drivers
    # cp /usr/share/refind/drivers_x64/myrootfs_x64.efi $esp/EFI/refind/drivers

Теперь у rEFInd есть загрузочная запись с вашим ядром, но он не будет передавать необходимые параметры ядра. Следуйте инструкциям #Передача параметров ядру. Теперь вы можете загружать ваше ядро с помощью rEFInd. Если же вы всё ещё не можете загрузиться или вы хотите поиграться с настройками rEFInd'а, многие опции можно менять в конфигурационном файле:

    # cp /usr/share/refind/refind.conf-sample $esp/EFI/refind/refind.conf

Пример настройки подробно прокомментирован и не требует разъяснений.

Если вы не используете `textonly` в конфигурационном файле, вы должны скопировать иконки для rEFInd'а, чтобы избавиться от уродливых заглушек:

    # cp -r /usr/share/refind/icons $esp/EFI/refind/

Также вы можете попробовать разнообразные шрифты, скопировав их и изменив опцию `font` в `refind.conf`:

    # cp -r /usr/share/refind/fonts $esp/EFI/refind/

Совет: Нажатие F10 в rEFInd сохранит скриншот в директории верхнего уровня ESP раздела.

### Драйвера файловых систем

Примечание: rEFInd'у не требуется, чтобы ваше ядро располагалось в каком-то определённом месте, однако если оно будет не на ESP, вам понадобится использовать драйвера файловых систем, чтобы rEFInd мог читать его.

На данный момент в rEFInd есть read-only драйвера для следующих файловых систем:

- ReiserFS
- Ext2
- Ext4
- Btrfs
- ISO-9660
- HFS+
- NTFS

Совет: Чтобы найти дополнительные драйвера, смотрите The rEFInd Boot Manager: Using EFI Drivers: Finding Additional EFI Drivers.

#### Установка драйверов для rEFInd

rEFInd автоматически загружает все драйвера из поддиректорий `drivers` и `drivers_arch` (например, `drivers_x64`) в его директории установки.

    # cp /usr/share/refind/drivers_x64/drivername_x64.efi $esp/EFI/refind/drivers_x64/

Совет: Есди вы используете скрипт rEFInd'а для установки, вы можете установить все драйвера с помощью опции `--alldrivers`. Это полезно например для загрузочных USB flash накопителей.

    # refind-install --usedefault /dev/sdXY --alldrivers

#### Использование драйверов в UEFI shell

Чтобы использовать драйвера rEFInd'а в UEFI шелле, загрузите их с помощью команды `load` и обновите подключенные носители командой `map -r`.

    # load FS0:\EFI\refind\drivers\ext4_x64.efi
    # map -r

Теперь вы можете получить доступ к вашей файловой системе из UEFI шелла.

## Передача параметров ядру

Существует два метода для установки параметров ядра, которые 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`, будет добавлен в конце).

    $esp/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

Примечание: Соблюдайте советы из Windows and Arch dual boot (Русский).

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-bootAUR из 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`, чтобы выбрать, какие будут отображаться.

    $esp/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[broken link: invalid section]

### Memtest86

Установите memtest86-efiAUR из AUR и скопируйте его в `$esp/EFI/tools/`.

    # cp /usr/share/memtest86-efi/bootx64.efi $esp/EFI/tools/memtest86.efi

### iPXE

Примечание: Поддержка PXE в rEFInd является экспериментальной.

refind-efi содержит бинарники iPXE UEFI, вам просто нужно скопировать их в `$esp/EFI/tools/`.

    # cp /usr/share/refind/tools_x64/ipxe_discovery_x64.efi $esp/EFI/tools/ipxe_discovery.efi
    # cp /usr/share/refind/tools_x64/ipxe_x64.efi $esp/EFI/tools/ipxe.efi

## Смотрите также

- The rEFInd Boot Manager by Roderick W. Smith.
- `/usr/share/refind/docs/README.txt`

Categories:

- Boot loaders (Русский)
- Русский

Hidden category:

- Pages with broken section links