Configuring Linux
UEFI
27 May 2014

Dual boot ArchLinux и Windows 8 на UEFI без GRUB c помощью rEFInd

Tutorial
Инструкция для новичков, о том, как сделать красивый dualboot windows и archlinux (и других ОС) через efi без grub и лишних заморочек.

Фото для привлечения внимания:

asus g46vw rEFInd

Можете посмотерть в google как это ещё может выглядеть.

Сразу оговорюсь.
Предполагается, что вы уже поставили windows и archlinux, понимаете как размечать диски и что куда монтировать и осталось вам только разобраться с загрузчиком. Если нет, то рекомендую посмотреть для начала вот это видео.

Я пробовал различные варианты, как описано тут, тут и тут и прочие выкрутасы с efibootmgr. Пытался добавлять опции прямо в «BIOSе» — ничего хорошего у меня не получилось, то рут раздел не находит то ещё что-то. Да и сам подход к переключению систем (жать Esc при включении ПК для выбора системы) меня не очень радовал.

Провозившись весь выходной, нашёл для себя простое и элегантное решение — пакет refind-efi (ArchWiki).
Если коротко, — достаточно установить этот пакет (pacman -S refind-efi) и выполнить refind-install, — всё.
В /boot/efi/EFI/ будет создан каталог refind и в опции загрузки добавлен новый пунк «rEFInd boot manager ».

Предупреждение

CodeRush в комментарии добавил важное замечание:
Добавлю к этой статье предупреждение: запись в NVRAM из ОС — достаточно опасная операция, которая может приводить к «кирпичу» на некоторых моделях ноутбуков с BIOSами на платформе Phoenix SCT. У автора BIOS на платформе AMI Aptio, с ним таких проблем нет.
Именно поэтому я настоятельно не рекомендую использовать на ноутбуках как саму efibootmgr, так и все, что ее вызывает, и устанавливать любые загрузчики вручную, либо заменяя имеющийся загрузчик по умолчанию (fs0:/EFI/BOOT/bootx64.efi), либо прописывая новый загрузчик из UEFI Shell командой bсfg boot add 0 fs0:/path/to/bootloader.efi «My Fancy Bootloader» — это намного безопаснее.

Всё что вы делаете, вы делаете на свой страх и риск!

Теперь подробнее об установке и конфигурировании

Для начала сверим конфигурации.
В моём случае это:
  • Windows 8.1
  • Arch Linux x86_64 Kernel Release: 3.14.4-1-ARCH

Вывод lsblk:
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 119.2G  0 disk 
├─sda1   8:1    0   300M  0 part
├─sda2   8:2    0   100M  0 part /boot/efi
├─sda3   8:3    0   128M  0 part
├─sda4   8:4    0  59.1G  0 part
├─sda5   8:5    0     9G  0 part /
└─sda6   8:6    0    50G  0 part /home


fdisk /dev/sda

Device           Start          End   Size Type
/dev/sda1         2048       616447   300M Windows recovery environment
/dev/sda2       616448       821247   100M EFI System
/dev/sda3       821248      1083391   128M Microsoft reserved
/dev/sda4      1083392    125036543  59.1G Microsoft basic data
/dev/sda5    125036544    143910911     9G Linux filesystem
/dev/sda6    143910912    248768511    50G Linux filesystem


Раздел с типом «EFI System» созданный инсталятором windows, монтируем в /boot/efi/ ( /mnt/boot/efi/ ведь мы загрузились с liveiso верно?)

mkdir -p /mnt/boot/efi
mount /dev/sdaX /mnt/boot/efi


где X это номер вашего EFI раздела ( например mount /dev/sda2 /mnt/boot/efi ).

Далее перейдя в уже установленный arch ( arch-chroot /mnt/ ) устанавливаем сам refind:

pacman -S refind-efi


Если вдруг такой пакет не найден, поищите в yaourt:

yaourt refind
1 extra/refind-efi 0.7.9-1 [installed]
    Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs


refind-install


и если не было ошибок

reboot


После перезагрузки можно поставить в «биосе» в настройках приоритета загрузки «rEFInd boot manager » на первое место.

image

И не забудьте отключить «Secure Boot».

Profit!

В каталоге /boot/efi/EFI создана дирректория refind. В ней есть refind.conf в котором можно установить время отображения списка ОС и настроить внешний вид.

Refind сам находит установленные ОС и определяет параметры их загрузки. Так же мне очень понравилось что если вставлена загрузочная флешка или диск они тоже появляются в списке.

Мне понравилась тема Next-Theme (вы можете подобрать что-то на свой вкус), положил её в /boot/efi/EFI/refind/next-theme и прописал в конфиге:

icons_dir next-theme/icons
banner next-theme/background_1200.png


Конфиг хорошо документирован и вопросов вызывать не должен.

Буду благодарен за замечания и дополнения.

+41
83.6k 472
Comments 39